Open gosis opened 1 month ago
We have the same issue as well
We have added a following workaround for production only
If RNIap.requestSubscription({})
returns an expired subscription, we display an alert to the user saying that he already has a subscription and he has to go to phone settings -> my subscriptions to renew it. There is a renew button there.
After the sub is renewed its expires_date
is updated
Description
We recently put an iOS app with subscriptions into App store.
We have received reports that users are unable to resubscribe after cancelling their subscription. After looking into the issue we discovered that
RNIap.requestSubscription({})
keeps returning previously cancelled subscription and no payment view is presented. WhiletransactionId
,transactionReceipt
are new with every subscription they have previous subscriptionexpiration_time
andpending_renewal_info
Meaning when calling
RNIap.requestSubscription({})
no payment screen is presented and a cancelled subscription is returned immediately. After validating the newtransactionReceipt
we see..'pending_renewal_info': [{'expiration_intent': '1',
- which means the subscription is cancelled.And the decoded
transactionReceipt
hasreceipt_creation_date
of today, but theexpires_date
in the pastExpected Behavior
RNIap.requestSubscription({})
creates a new subscription instead of returning canceled subscription without prompting for payment.Environment:
To Reproduce Steps to reproduce the behavior:
RNIap.requestSubscription({})
returns with resultresult.purchase.transactionReceipt
against apple serversexpires_date
is in the past