diff --git a/InAppUtils/InAppUtils.m b/InAppUtils/InAppUtils.m index d726603..cbd1e5b 100644 --- a/InAppUtils/InAppUtils.m +++ b/InAppUtils/InAppUtils.m @@ -35,7 +35,15 @@ - (void)paymentQueue:(SKPaymentQueue *)queue NSString *key = RCTKeyForInstance(transaction.payment.productIdentifier); RCTResponseSenderBlock callback = _callbacks[key]; if (callback) { - callback(@[RCTJSErrorFromNSError(transaction.error)]); + switch (transaction.error.code) + { + case SKErrorPaymentCancelled: + callback(@[@"user_cancelled"]); + break; + default: + callback(@[RCTJSErrorFromNSError(transaction.error)]); + break; + } [_callbacks removeObjectForKey:key]; } else { RCTLogWarn(@"No callback registered for transaction with state failed.");