Question

App crashes with PurchaseCancelledError

  • 22 September 2021
  • 5 replies
  • 228 views

Badge +1

 

Above is the error message I get when cancelling the purchase (I cancel either pressing back button or by clicking anywhere else to dismiss the pop up). I am not sure why app crashes here. It is within the try catch statement and I have catch statement to handle error cases. Help would be appreciated. Thanks!


5 replies

I am facing the same issue in React Native Android

Hi @naturelle @sharif  , Can you please help resolve this issue?

 

my package version is

"react-native-purchases": "^7.26.1"

Badge

Hello,

I also have the same problem but with React Native and iOS. The error is not caught on catch.

Any news on this ?

Thanks in advance,

Telmo Dias

 

More info :

"expo": "~49.0.13",
"react-native-purchases": "^7.24.0",

 

DEBUG: ℹ️ StoreKit1Wrapper (0x00000003002e9620) removedTransaction: app_full_access (The operation couldn’t be completed. (SKErrorDomain error 2.)) ["NSUnderlyingError": Error Domain=ASDErrorDomain Code=907 "(null)" UserInfo={NSUnderlyingError=0x3028e77b0 {Error Domain=AMSErrorDomain Code=6 "Payment Sheet Failed" UserInfo={NSLocalizedDescription=Payment Sheet Failed, AMSURL=https://sandbox.itunes.apple.com/WebObjects/MZBuy.woa/wa/inAppBuy?guid=00008110-001204181AEB801E, AMSStatusCode=200, AMSServerPayload={
"cancel-purchase-batch" = 1;
customerMessage = "Sign in with Apple ID";
dialog = {
cancelButtonString = Cancel;
defaultButton = Buy;
explanation = "Enter the password for %%appleId%% to authorise this transaction.\n\n[Environment: Sandbox]";
initialCheckboxValue = 1;
kind = authorization;
"m-allowed" = 0;
message = "Sign in with Apple ID";
okButtonAction = {
buyParams = "hasFailedTouchIDChallenge=true&offrd-free-trial=false&salableAdamId=6478834706&showIAPExtraDialog=false&applicationUsername=%24RCAnonymousID%3A025955c7d5bc44c28f2fac502ee3f511&offerName=app_full_access&productType=A&hasBeenAuthedForBuy=true&quantity=1&price=19990&ageCheck=true&pricingParameters=STDQ&vid=21115114-A5F6-48C3-86A7-207076F92088&bvrs=1&pg=default&hasConfirmedPaymentSheet=true&bid=xxx.xxx.xxx&hasWebOptIn=false";
itemName = "app_full_access";
kind = Buy;
};
okButtonString = Buy;
paymentSheetInfo = {
caseControl = true;
confirmationTitle = Pay;
countryCode = DE;
currency = EUR;
designVersion = 2;
flexList = (
{
value = (
{
style = priceMain;
value = "19,99\U00a0\U20ac";
},
{
style = priceSub;
value = "One-time charge";
}
);
},
{
header = DETAILS;
value = "For testing purposes only. You will not be charged for confirming this purchase.";
},
{
style = account;
value = "Account: %%appleId%%";
}
);
images = (
{
type = itunesgames;
value = Unrated;
}
);
price = "19.99";
requestor = AppStore;
salableIcon = "https://is4-ssl.mzstatic.com/image/thumb/Features113/v4/b3/f6/f5/b3f6f530-6b2f-df22-9618-6fbb0a9e2ca2/mza_7020272080795277011.png/144x144bb.png";
salableIconType = app;
salableInfo = (
"Lifetime Full Access",
"AAA %%image_0%%",
"In-App Purchase"
);
styles = (
{
bold = true;
name = priceMain;
size = large;
},
{
color = gray;
name = priceSub;
},
{
color = gray;
name = account;
}
);
suppressPrice = true;
title = {
type = text;
value = Sandbox;
};
};
};
failureType = "";
"m-allowed" = 0;
metrics = {
actionUrl = "sandbox.itunes.apple.com/WebObjects/MZBuy.woa/wa/inAppBuy";
dialogId = "MZCommerceInAppBuy.ConfirmationNeededForBuyOneItem.CPS.Auth";
eventType = dialog;
message = "Sign in with Apple ID";
mtEventTime = "2024-03-21 16:28:03 Etc/GMT";
mtTopic = "xp_its_main";
osloTitleType = text;
osloTitleValue = "AbstractSalableInfoModule.SandboxTitle";
topic = "xp_its_main";
};
pings = (
"https://xp.apple.com/report/2/xp_its_main?code=MZCommerceInAppBuy.ConfirmationNeededForBuyOneItem.CPS.Auth&buttons=Buy%3ACancel&baseVersion=1&dsId=21603461045&eventVersion=1&storeFrontHeader=143443-2%2C29&eventTime=1711038484445&eventType=dialog&message=Sign%20in%20with%20Apple%20ID"
);
}, NSLocalizedFailureReason=Payment sheet dismissed with neither an error nor a result}}}] 2
Type: Debug | Timestamp: 2024-03-21 16:28:07.572059Z | Process: AAA | Library: AAA | Subsystem: xxx.xxx.xxx | Category: purchases | TID: 0x8698a1

 

Badge +1

Hello @sharif , forgot to link your name and as I couldn’t edit my reply, please find my below copied response from previous reply.


Hello Sharif, thank you for looking into this issue.

Yes, indeed. I was excepting the same scenario to catch this error by catch statement.

With respect to your question, I am currently testing on an android device, which is based on Flutter.

For the app itself, minSdkVersion is 21 and compileSdkVersion is 30.

Please let me know if you need any additional information from my end.

Thanks! 

Badge +1

Hello Sharif, thank you for looking into this issue.

Yes, indeed. I was excepting the same scenario to catch this error by catch statement.

With respect to your question, I am currently testing on an android device, which is based on Flutter.

For the app itself, minSdkVersion is 21 and compileSdkVersion is 30.

Please let me know if you need any additional information from my end.

Thanks! 

Userlevel 5
Badge +9

What SDK, version, and platform are you using? Cancelled purchases do show up as errors but I would expect the catch statement to catch it. I’ll forward this to our mobile engineers once you share that extra info.

Reply