Order Failed in StoreKit1, Succeeded in StoreKit2

We encountered some order issue in recent 3 months. We were told some orders were false, while they were found the purchase processed successfully. We use https://buy.itunes.apple.com/verifyReceipt to check the order, but we can’t find it. But when we use https://api.storekit.itunes.apple.com/inApps/v1/lookup/ to check it, it returns that the user has finished the purchase. Anyone have this problem and how to solve it?

Replies

Could you please file feedback in Feedback Assistant (https://feedbackassistant.apple.com) and post the FB number here? It is possible the receipt is malformed/incorrect but the Order ID is valid, giving this discrepancy.

Note: If the customer is providing you an order that is valid while the app receipt used with verifyReceipt is not or does not match, then they are not the same Customer Apple IDs. I would have the customer verify their device is signed in with the same Apple ID that is shown in their emailed receipt. Be sure you are including your shared secret with validating app receipts with verifyReceipt as well.

  • I have submitted the feedback with the order ID. Feedback ID: FB10491430 (In App Purchase Failed in StoreKit1, but Succeeded in StoreKit2)

  • Please include the receipts in the feedback ticket.

  • Receipts info added.

Add a Comment

Receipts info added:)

  • Hi thanks a lot for your reply. Normally we mark the transaction finished once the items delivered. When it was verified as a false transaction, we will mark it finished and items will not be delivered.

    The transaction ID in the credential doesn’t match the transaction ID in the Object. Which makes it failed to verify the transaction. The order we sent above is indeed successful in Storekit2. The problem is why is failed in the verification?

Add a Comment

You may have seen the updates in your feedback assistant ticket but I wanted to add some information to the post for clarity.

The post notes the buy failed with storeKit 1 vs StoreKit 2 but from what I can see the transaction was successful and your app marked it as finished (finishTransaction). The example order provided shows the purchase was for a consumable in-app purchase type. Consumables types are not persistent in customers transaction history. Only way to see a consumable transaction after it is finished is if you had the app receipt from that exact transaction, then verifyReceipt would return that transaction in the in_app array as that shows transactions from that receipt. But it would not be in the latest_receipt_info array.

I suspect your app may be marking the transaction as finished before its been verified and delivered. Can you confirm your app is finishing transactions only after delivering it to the customer and never before or automatically after a buy?

  • Hi thanks a lot for your reply. Normally we mark the transaction finished once the items delivered. When it was verified as a false transaction, we will mark it finished and items will not be delivered. The transaction ID in the credential doesn’t match the transaction ID in the Object. Which makes it failed to verify the transaction. The order we sent above is indeed successful in Storekit2. The problem is why is failed in the verification?

Add a Comment