spaced4ndy
eee013dfcb
core: credit store receipts from a standard work queue
2026-10-06 17:10:05 +04:00
spaced4ndy
0d7efd0bc3
ios, android: tell the buyer of a refusal without relying on the store echoing the invoice
2026-10-06 16:18:40 +04:00
spaced4ndy
110aa53c35
ios, android: hand store receipts to core, finish what it settles, and show why a held purchase is not credited yet
2026-10-06 13:34:17 +04:00
spaced4ndy
3696ec1d7f
ios, android: drop the body text from the checking screen; core: clarify the unpaid record bound
2026-10-05 13:49:47 +04:00
spaced4ndy
c3629d0266
core, ios, android: drop the store purchase checking state, and hide unpaid records after a week
2026-10-05 13:39:16 +04:00
spaced4ndy
bdc7c64f97
core, ios, android: state the real reason in the badge purchase comments
2026-10-05 13:10:30 +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
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
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
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
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
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
spaced4ndy
6245bfb206
badge service: only a store's verdict about a purchase is terminal
2026-09-30 17:31:57 +04:00
spaced4ndy
f50cbb6eaf
Merge branch 'badge-in-app-checkout' into f/badge-store-receipts
2026-09-29 18:21:57 +04:00
spaced4ndy
f65d4a69a9
badge service: name what makes accepting unverified receipts safe
2026-09-29 18:20:28 +04:00
spaced4ndy
1b0e165b67
badge service: accept unverified store receipts behind a dev option, for testing the store lanes on devices
2026-09-29 17:39:31 +04:00
spaced4ndy
36da024394
ui: buy a badge in the browser, with a deep link back on mobile ( #7592 )
2026-09-29 10:30:57 +00:00
spaced4ndy
6b57302885
badge service: credit a store receipt only when the verified transaction is the one claimed; answer internal when a request throws
2026-09-28 18:18:37 +04:00
spaced4ndy
6fb0d453df
badge service: refuse a store with no verifier as terminal; keep answering requests after one throws
2026-09-28 15:49:43 +04:00
spaced4ndy
aa8e8271ae
core: don't reveal another profile when delivering a store purchase; bound store checks and restrict Play ids
2026-09-25 19:13:04 +04:00
spaced4ndy
a329f51620
core: deliver a store purchase to the profile it was bought under; verify store receipts safely
2026-09-25 18:39:39 +04:00
spaced4ndy
e244d2e446
Merge branch 'badge-in-app-checkout' into f/badge-store-receipts
2026-09-25 17:42:04 +04:00
spaced4ndy
3e2d40447a
docs: mark upgradeBadgeSubscription's badgeRequest as to be dropped; trim store purchase comments
2026-09-25 17:30:59 +04:00
spaced4ndy
0dc85d3311
badges: page ends an app purchase with a link instead of the code ( #7589 )
2026-09-25 13:23:28 +00:00
spaced4ndy
d2b3e823d0
core: buy a badge with an App Store or Google Play purchase
2026-09-25 16:30:53 +04:00
spaced4ndy
c171008229
docs: wireframes and plan for buying a badge in the app; ios, android: align the badge screens ( #7572 )
2026-09-25 09:59:13 +00:00