Note that there are some explanatory texts on larger screens.

plurals
  1. PORestoring In-App Purchase Transactions
    primarykey
    data
    text
    <p>The idea is whether rain or shine, wet or fine, user must get that he paid for all out.</p> <p>From Apple:</p> <pre> Store Kit provides built-in functionality to restore transactions for non-consumable products, auto-renewable subscriptions and free subscriptions </pre> <p>For these transactions Apple Store Kit has good build-in tools. I want to focus on other types (consumable in particular). One and only transaction information is an identifier and a receipt data which we receiving by Store Kit after successful purchase. Our application uses server-side model to deliver products to it. But there still much cases of losing purchase data, such as if the server lay down while user is making purchase via App Store so its not possible to send receipt to server to complete verification process.</p> <p>Current workaround is:</p> <ol> <li>Server returns a list of product identifiers</li> <li>User selects one; app saves its identifier on device (via SQLite or Core Data). Standart Apple Store transaction process goes right after that.</li> <li>In case of success application saves receipt data in conjunction with its identifier on device and send it to server. If there were failure or cancelation the identifier is immediatelly removed from device.</li> <li>If server's response is OK then app removes identifier with receipt data from device. Otherwise it will send requests to server periodically until successful response behaves.</li> </ol> <p>But this approach still has leaks. For example, user can remove application from device not waiting for transaction delivering to server, so there will not any proof about his purchase at all.</p> <p>Your suggestions?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload