In the documentation which you refer to, there is
Important
An applicationUsername property that isn’t a UUID isn’t guaranteed to persist between the time when you add the payment transaction to the queue and when the queue updates the transaction.
This also applies to the renewal notification when the transactionObserver is called later on. The discussion also states
Consider assigning a UUID to the applicationUsername property. When this value is a UUID, the App Store server stores it as an appAccountToken. In this scenario, the following happens:
-
In the App Store Server API, the JWSTransactionDecodedPayload object returns the applicationUsername value in the appAccountToken field.
-
In App Store Server Notifications, the JWSTransactionDecodedPayload object returns the applicationUsername value in the appAccountToken field.
-
When you call the verifyReceipt endpoint to verify an App Store receipt, the App Store server returns the applicationUsername value in the app_account_token field of the responseBody.Latest_receipt_info.
If you set the applicationUsername field with a valid UUID string, then call addPayment, the App Store Server saves that UUID with the auto-renewing subscription information and will return that value as a field "in the app_account_token field of the responseBody.Latest_receipt_info." This means that when the renewal occurs, send the appStoreReceipt to the verifyReceipt endpoint with the shared-secret, then review the contents of responseBody.Latest_receipt_info to find the appropriate auto-renewing subscription record with the app_account_token.
As I understand, this works now. If it doesn't this would be a bug report issue.
rich kubota
developer technical support CoreOS/Hardware/MFI