We have an App Store Server Notification endpoint. Our app offers an in app subscription. Most notifications have all of the expected fields, but in a small number of cases the decoded signedTransactionInfo and signedRenewalInfo fields are empty.
I can't see anything about these fields being optional in the documentation, and without the transaction information I can't get the transaction id of the user, so I can't tell how this notification relates to others for the same original transaction id.
Are these notifications expected? Should I be handling them in a special way? Or should I just ignore them?
For example, a normal transaction will have the following fields:
responseBodyV2DecodedPayload (
[notificationType] => DID_RENEW
[notificationUUID] => …
[version] => 2.0
[signedDate] => 1660947328849
[data] => (
[bundleId] => com.playpokpok.playroom
[bundleVersion] => 9
[environment] => Sandbox
[signedTransactionInfo] => JWSTransactionInfo
[signedRenewalInfo] => JWSRenewalInfo
)
)
But one of these unexpected requests will have the following form:
responseBodyV2DecodedPayload (
[notificationType] => EXPIRED
[subtype] => VOLUNTARY
[notificationUUID] => …
[version] => 2.0
[signedDate] => 1662661854606
[data] => (
[appAppleId] => 1550204730
[bundleId] => com.playpokpok.playroom
[bundleVersion] => 6
[environment] => Production
)
)