From 9a21b0b58adee47941ff768a3931ebce5fc48721 Mon Sep 17 00:00:00 2001 From: Kefah BADER Date: Wed, 14 Sep 2022 17:33:54 +0200 Subject: [PATCH 1/3] Fixe payment result handler --- packages/nativescript-stripe/standard/index.ios.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/nativescript-stripe/standard/index.ios.ts b/packages/nativescript-stripe/standard/index.ios.ts index 19763f17..48a52cf5 100644 --- a/packages/nativescript-stripe/standard/index.ios.ts +++ b/packages/nativescript-stripe/standard/index.ios.ts @@ -211,11 +211,15 @@ class StripePaymentDelegate extends NSObject implements STPPaymentContextDelegat paymentContextDidCreatePaymentResultCompletion(paymentContext: STPPaymentContext, paymentResult: STPPaymentResult, completion: (p1: STPPaymentStatus, p2: NSError) => void): void { StripeStandardConfig.shared.backendAPI .capturePayment(paymentResult.paymentMethod.stripeId, paymentContext.paymentAmount, createShippingMethod(paymentContext), createAddress(paymentContext.shippingAddress)) - .then((value) => { - completion(STPPaymentStatus.Success, null); + .then((value: any) => { + if(!value._native.lastPaymentError || value._native.lastPaymentError == "undefined") { + completion(STPPaymentStatus.Success, null); + return + } + completion(STPPaymentStatus.UserCancellation, null); }) .catch((e) => { - completion(null, createError('PaymentError', 100, e)); + completion(STPPaymentStatus.Error, createError('PaymentError', 100, e)); }); } From 9afbfa58b2fd61fac928278fcb64853b4b59187b Mon Sep 17 00:00:00 2001 From: Kefah BADER Date: Wed, 14 Sep 2022 17:34:34 +0200 Subject: [PATCH 2/3] Fixe getting top view controller --- packages/nativescript-stripe/index.ios.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/nativescript-stripe/index.ios.ts b/packages/nativescript-stripe/index.ios.ts index 187b9df3..189bb17f 100644 --- a/packages/nativescript-stripe/index.ios.ts +++ b/packages/nativescript-stripe/index.ios.ts @@ -328,7 +328,11 @@ export class Stripe { } return this.findTopViewController(selected); } else { - return root; + if(presented == root.presentedViewController) { + return UIWindow.visibleViewController; + } else { + return root; + } } } From 6c7e1a89d10a626aec8e04225e93e9bf47f909b3 Mon Sep 17 00:00:00 2001 From: Kefah BADER Date: Wed, 14 Sep 2022 17:53:29 +0200 Subject: [PATCH 3/3] fixe android #135 --- packages/nativescript-stripe/standard/index.android.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/nativescript-stripe/standard/index.android.ts b/packages/nativescript-stripe/standard/index.android.ts index bb2fe021..3452f0e3 100644 --- a/packages/nativescript-stripe/standard/index.android.ts +++ b/packages/nativescript-stripe/standard/index.android.ts @@ -61,14 +61,14 @@ export class StripeStandardConfig implements IStripeStandardConfig { export class StripeStandardCustomerSession { readonly native: com.stripe.android.CustomerSession; - constructor() { + constructor(shouldPrefetchEphemeralKey: boolean = false) { StripeStandardConfig.shared.initPaymentConfiguration(); - com.stripe.android.CustomerSession.initCustomerSession(StripeStandardCustomerSession.context, createKeyProvider()); + com.stripe.android.CustomerSession.initCustomerSession(StripeStandardCustomerSession.context, createKeyProvider(), shouldPrefetchEphemeralKey); this.native = com.stripe.android.CustomerSession.getInstance(); } private static get context(): android.content.Context { - return Application.android.context; + return Utils.android.getApplicationContext(); } }