Posts

Post not yet marked as solved
1 Replies
116 Views
Hello, I call transaction information for several apps. And I don't have environment information. That's why I'm calling the sandbox environment as an official guide. Call the endpoint using the production URL. If the call succeeds, the transaction identifier belongs to the production environment. If you receive an error code 4040010 TransactionIdNotFoundError, call the endpoint using the sandbox environment. If the call succeeds, the transaction identifier belongs to the sandbox environment. If the call fails with the same error code, the transaction identifier isn’t present in either environment. However, unlike the official guide, certain apps sometimes use production URLs to call endpoints to receive 401 status codes and successfully call endpoints using the sandbox environment. Why does this difference occur unlike the official guide? I receive a 401 status code in response from a production environment endpoint, I want to know if this status code is a real error or if I have to call it into a sandbox environment. Can I check with the key 'x-apple-request-uuid' in the response header? Please let me know the solution.
Posted
by bisu.
Last updated
.
Post not yet marked as solved
0 Replies
92 Views
I call transaction information for several apps. And I don't have environment information. So I'm calling the sandbox environment as an official guide. However, unlike the official guide, certain apps sometimes succeed by calling an endpoint using a production URL to receive an error code 401 and calling an endpoint using a sandbox environment. Why does this difference occur unlike the official guide? Because of this difference, sometimes it's a production environment and JWT hasn't expired, but I get a 401 error and call the sandbox environment. 2. Please let me know the solution.
Posted
by bisu.
Last updated
.
Post not yet marked as solved
2 Replies
404 Views
I received a refund notification for a consumable product, but the latest_receipt_info property does not exist in the unified_receipt property, or there are no transactions that match the original_transaction_id property value. Are the original_transaction_id property values really refunded? How can I check the cancelation_date_ms value and cancelation_reason value? V2 Notifications cannot be changed. I'm constantly struggling because of this phenomenon. Please reply. https://developer.apple.com/documentation/storekit/in-app_purchase/original_api_for_in-app_purchase/handling_refund_notifications
Posted
by bisu.
Last updated
.
Post not yet marked as solved
0 Replies
363 Views
I received a refund notification for a consumable product, but the latest_receipt_info property does not exist in the unified_receipt property, or there are no transactions that match the original_transaction_id property value. Are the original_transaction_id property values really refunded? How can I check the cancelation_date_ms value and cancelation_reason value? https://developer.apple.com/documentation/storekit/in-app_purchase/original_api_for_in-app_purchase/handling_refund_notifications
Posted
by bisu.
Last updated
.
Post not yet marked as solved
0 Replies
370 Views
I received a refund notification, but the latest_receipt_info property does not exist inside the unified_receipt property, or there is no transaction matching the original_transaction_id property value. How can I check the cancellation_date_ms property value?
Posted
by bisu.
Last updated
.
Post not yet marked as solved
1 Replies
369 Views
Received 'REFUND' notification from server for 'App Store Server Notification V1'. Among the 'responseBodyV1' properties, the 'original_transaction_id' value and Should I find and process transactions that match 'unified_receipt' > 'latest_receipt_info' > 'original_transaction_id'? Sometimes there are no transactions in the history of 'latest_receipt_info' that match 'original_transaction_id'.
Posted
by bisu.
Last updated
.
Post not yet marked as solved
1 Replies
569 Views
We are currently managing four root certificates. Checked the ChainVerifier class code in 'App Store Server Library'. I checked that the root certificate was excluded when I called the CertPathValidator.validate method. So the root certificate is not falsified? Is it okay if I don't even check my fingerprints?
Posted
by bisu.
Last updated
.
Post not yet marked as solved
1 Replies
769 Views
Is the Apple root certificate in the App Store Server API response always 'Apple Root CA - G3'? When isn't it? What criteria should I set for the 'performRevocationChecking' parameter value of the verifyChain method of the ChainVerifier class in the App Store Server Library? I am implementing the 'App Store Server API' call myself. Do you include the root certificate in the certificate chain verification process? Can root certificates be forged?
Posted
by bisu.
Last updated
.
Post not yet marked as solved
1 Replies
617 Views
Currently, 'Get Transaction History', 'Get Transaction Info', 'Get All Subscription Statuses' and 'Notifications V2' are being used in the App store Server API. When I decoded the JWS received in response and checked the root certificate, it was always 'AppleRootCA-G3'. Are there cases where the root certificate is not 'AppleRootCA-G3'?
Posted
by bisu.
Last updated
.
Post not yet marked as solved
0 Replies
460 Views
Hello, I have a few questions about the App Store Server API. According to the document, if 'OriginalTransactionIdNotFoundError(errorCode: 4040005)' is received as a response after calling the production environment API if there is no environment information, it is written to call the sandbox environment, but 'Get Transaction Info' / 'Get Transaction History' API call and when 'TransactionIdNotFoundError(errorCode: 4040010)' is received, can I call it in the sandbox environment? Is the root certificate of the X.509 certificate chain on x5c claim in JWSDecodedHeader always AppleRootCA-G3? If I add and recall the query parameter '?sort=DESCENDING' in the Get Transaction History API, will the first transaction information always have the largest expiration date?
Posted
by bisu.
Last updated
.