Commit Graph
6658 Commits
Author SHA1 Message Date
spaced4ndy 4b5b239fdb tests: refuse a key that loses the store claim race as receipt_used, and show no badge after receipt_used 2026-10-02 19:09:31 +04:00
spaced4ndy 26e519f50c tests: credit a store purchase that loses the claim race, and drop the client's keys on receipt_used 2026-10-02 18:45:10 +04:00
spaced4ndy c53f560e2d presentUnfinished comment 2026-10-02 18:42:00 +04:00
spaced4ndy db8755ec8d ios: let the purchase state screen scroll, so Dismiss stays reachable at large text sizes 2026-10-02 18:32:51 +04:00
spaced4ndy e80e885aac ios, android: catch a failed purchase presentation, word store purchase errors, and sweep abandoned purchases on a profile switch 2026-10-02 18:28:12 +04:00
spaced4ndy 7da11f71fd comment 2026-10-02 17:29:42 +04:00
spaced4ndy c74e313d02 android: close the badge purchase screens in one step; ios, android: drop the order screen spinner 2026-10-02 17:22:52 +04:00
spaced4ndy 3edeb3be02 android, desktop: offer the badge store lane when test products stand in for a store 2026-10-02 15:53:34 +04:00
spaced4ndy 7844706f01 ios, android: title both issuing screens alike, and let the purchase screens be dismissed 2026-10-02 15:22:24 +04:00
spaced4ndy e9fae20118 use dev service 2026-10-02 14:56:09 +04:00
spaced4ndy 5549471f48 ios, android: show the order spinner only after a second, without a backdrop 2026-10-02 14:41:58 +04:00
spaced4ndy 59668a5f44 ios, android: lighten the order summary rows, keeping the values a step bolder 2026-10-02 14:33:35 +04:00
spaced4ndy 8524bcefe5 fix kotlin build 2026-10-02 14:24:41 +04:00
spaced4ndy 62fc897cca ios, android: show the order spinner only while a purchase is issued, and shorten the tier cards 2026-10-02 14:20:26 +04:00
spaced4ndy ba4da8db74 ios, android: lead the badge cards with their price, and set the order card on a grouped background 2026-10-02 14:06:00 +04:00
spaced4ndy e33a06fc32 ios, android: show progress while a badge is bought, and say the payment is complete while it is issued 2026-10-02 13:47:39 +04:00
spaced4ndy a70ab3bac5 ios, android: show the real end date and full price at badge checkout, and disable subscriptions 2026-10-02 13:39:36 +04:00
spaced4ndy 172f70a0e6 postgres schema 2026-10-01 19:32:15 +04:00
spaced4ndy a3609d731b drop redundant import 2026-10-01 19:11:24 +04:00
spaced4ndy 0dbf3b0ef1 fix StoreTransactionRef comments 2026-10-01 19:09:22 +04:00
spaced4ndy 9711251afa core: rename badgeServiceTarget to requireBadgeService and requestStashedBadge to redeemBadgeStash; clarify its comment 2026-10-01 19:00:21 +04:00
spaced4ndy 406ee114a7 core: simplify the ledger entry rebuild comment 2026-10-01 18:28:22 +04:00
spaced4ndy 4bb8a5e0e6 explain the nullable store receipt columns 2026-10-01 18:18:44 +04:00
spaced4ndy f0a28859b1 clarify the deferred payment_id draft 2026-10-01 18:12:28 +04:00
spaced4ndy e143d0bbe1 badge service: say which payment funds no purchase when the claim is lost 2026-10-01 18:05:29 +04:00
spaced4ndy 84c6397175 badge service: name a funding's state by whether it was credited, not claimed 2026-10-01 17:04:15 +04:00
spaced4ndy f495e8b8c0 badge service: say why store products are not in the seeded catalog 2026-10-01 16:48:15 +04:00
spaced4ndy 2f878af8a7 scripts: list both dev switches in the deployment template 2026-10-01 16:37:31 +04:00
spaced4ndy 730562a17d badge service: rename storeReceipt to toStoreReceipt 2026-10-01 16:18:16 +04:00
spaced4ndy 9a973af057 badge service: refuse a store quantity other than one, rather than multiply by it 2026-10-01 16:11:01 +04:00
spaced4ndy 039bf2e0f7 core, badge service: say how a verified transaction and a stored payment differ 2026-10-01 16:01:26 +04:00
spaced4ndy dc392994bf core, badge service: share one store transaction reference, and mark a verified transaction as such 2026-10-01 15:53:20 +04:00
spaced4ndy 6df330e232 core: say why a store purchase may arrive without an invoice id 2026-10-01 14:41:58 +04:00
spaced4ndy bebb8ef094 ios, android: don't promise a purchase that may not exist 2026-10-01 14:24:59 +04:00
spaced4ndy 7473e7a61c android: no badge can be bought where there is no platform store 2026-10-01 14:12:28 +04:00
spaced4ndy 8448bc28b5 ios, android: word purchase errors for a purchase, not a code 2026-10-01 14:12:05 +04:00
spaced4ndy 94675cda8c core, ios, android: rename BadgeStorePurchase to OpenStorePurchase, and drop a dead canBuy clause 2026-10-01 13:57:12 +04:00
spaced4ndy abf775020f core, ios, android: rename BadgeStorePurchase to OpenStorePurchase 2026-10-01 13:56:29 +04:00
spaced4ndy 75e990f120 ios, android: show a pending badge purchase only on the profile that made it, and keep the buyer's alert 2026-10-01 13:46:19 +04:00
spaced4ndy 688dba47d9 tests: expect the badge error prefix the view now uses 2026-10-01 13:01:31 +04:00
spaced4ndy e3e4709381 ui: buy a badge in the app through the App Store or Google Play (#7608)
* ui: buy a badge in the app through the App Store or Google Play

* core, ios, android: create the badge store purchase record before the store charges

* core, ios, android: fixes from the store lane review

* ios, android: show a store purchase's badge only on the profile it was credited to
2026-10-01 08:46:35 +00:00
spaced4ndy 0ee34926bc core: drop CRBadgePurchaseDelivered 2026-09-30 22:08:51 +04:00
spaced4ndy 1bd4544795 core: clarify the comments on the badge purchase response and errors 2026-09-30 21:49:18 +04:00
spaced4ndy 52f36a9f33 core: clarify why purchaseBadge states nothing about the credential 2026-09-30 18:41:59 +04:00
spaced4ndy e3e4866103 docs: shorten the store receipt rules in the badge service protocol 2026-09-30 18:38:13 +04:00
spaced4ndy f6c31cb8be docs: shorten the store receipt rules in the badge service protocol 2026-09-30 18:30:39 +04:00
spaced4ndy b0c572a9d7 docs: shorten the store receipt rules in the badge service protocol 2026-09-30 18:20:52 +04:00
spaced4ndy 7d1393b90c docs: only a store's verdict about a purchase is a plain refusal 2026-09-30 18:07:42 +04:00
spaced4ndy 522e0b90c4 scripts: turn chat redemption off in the deployment template 2026-09-30 17:58:10 +04:00
spaced4ndy 46bcd01dc5 badge service: do not treat a Play token the service will not send as Play's refusal 2026-09-30 17:57:42 +04:00