Receipt validation fails in sandbox environment
Since about yesterday, there has been a problem that receipt verification fails.
The program has not changed.
It also occurs even if you change your account.
Post
Replies
Boosts
Views
Activity
We are currently testing the restoration of auto-renewal subscription products (1 month) in a sandbox environment.
Restoration is implemented by executing
restoreCompletedTransaction () .
However, when a transaction is restored, it also includes items that have expired in the past, and depending on the status of contract renewal, nearly 100 transactions will be returned.
So, finishTransaction() is called for nearly 100 transactions, but it takes an enormous amount of time for all transactions to be deleted.
Until the transaction disappears, even if you make a purchase processing request, you will have to wait, which will make users feel very uncomfortable.
So I have a question.
Is there a limit to the number of transactions that can be restored?
Will expired products remain forever?
Or will it disappear in a month or half a year?
If the more I update, the more transactions I have, I have to call the finishTransaction() every time I restore, is that okay?
Why does the behavior differ between the sandbox environment and the production environment?
If the behavior is different, I don't think the test makes sense.
Please tell me the reason.
Starting this morning, I can't purchsing with sandbox.
Password is required many times.
I can't test.
please.
https://developer.apple.com/documentation/storekit/skerrorcode/skerrorpaymentinvalid?language=objc
Under what circumstances does this error occur?
How can I reproduce it?
The content of the document does not explain it !
What if I register a transaction observer when the store server is down?
In this case, isn't updateTransactions
called even if there are incomplete transactions?
Hello.
(void) paymentQueue: (SKPaymentQueue *) queue updatedTransactions: (NSArray *) transactions
When this function is called, the elements of transactions are
[[SKPaymentQueue DefaultQueue] transactions];
Is it included in this element as well?
And is the content equal (A === B)? Is it equivalent (A == B)?
https://developer.apple.com/documentation/storekit/handling_errors?language=objc
The official document says:
In case of network error as a result of request, NSURLErrorDomain is returned. However, when I tried it in airplane mode (non-communication), SKErrorDomain was returned.
restoreCompletedTransactions
The result is different from the document.
This is not intended.
Does anyone have a similar problem?
If communication is interrupted during the purchase process
The transaction will return a "failed" status
It may be "successful" on Apple servers.
As a result, the transaction status
Differences occur between Apple servers and devices.
At this time, in order to eliminate this gap immediately
I ran
restoreCompletedTransactions()
You will be asked for a password
This method gives users a sense of distrust.
It seems to be useless.
Is there another way to sync transaction differences immediately?
Thank you.