Files
purchases-ios/Sources/Networking/HTTPClient
c6ccc5e8d8 Add the networking layer for registering external purchase tokens (#7596)
* Add the networking layer for registering external purchase tokens

Registers a StoreKit external purchase token with the backend so the
resulting identifier can be handed to the checkout page. Nothing calls
this yet.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Cover the created status of a first token registration

The backend answers 201 the first time a token is stored and 200 when
the same token is re-submitted.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Don't send an ETag when registering an external purchase token

ETag responses are cached by URL alone, and every registration posts a
different body to the same URL, so a cached response could be replayed for
a token it doesn't belong to.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Read only the identifier from the external purchase token response

The checkout page only needs the registration identifier, so the remaining
response fields have no consumer in the SDK.

Also drop the hand-written request body encoding, which the compiler
synthesizes identically, and the signature content, which this endpoint
doesn't sign.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Generating new test snapshots (#7606)

* Generating new test snapshots (#7607)

* Generating new test snapshots (#7608)

* Generating new test snapshots (#7611)

* Generating new test snapshots (#7610)

* Generating new test snapshots (#7609)

* Generating new test snapshots (#7612)

* Generating new test snapshots (#7614)

* Generating new test snapshots (#7615)

* Document what PostExternalPurchaseTokenOperation is for

Co-authored-by: Cursor <cursoragent@cursor.com>

* Drop the comment on ExternalPurchaseTokenResponse

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: RevenueCat Git Bot <72824662+RCGitBot@users.noreply.github.com>
2026-09-07 13:26:27 +02:00
..