mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-11-05 12:47:43 +00:00
With an in-app purchase key configured in [apple], the service reads a subscription's status by its original transaction id from Get All Subscription Statuses, authenticated by an ES256 token reused until near expiry. Each signed transaction and renewal info is verified against the pinned Apple root through the same chain check as one-time purchases, now a separate function, and a body that fails it is a verifier failure, never a refusal. Statuses map to renewing, cancelled, billing retry and ended; family-shared transactions are refused; 401 and 403 are this service's failure, other errors and timeouts unreachable. A verifier failure thrown by a store check is answered internal, and a test subscription is refused in one place for first purchases and renewals. Without the key, Apple one-time purchases verify as before and subscriptions are not configured. Run: 001-badge-subscriptions, slice 6