Skip to content

Instantly share code, notes, and snippets.

@ademcan
Last active June 21, 2020 20:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ademcan/6dd706e9debeedff5ef45ff7343e6d87 to your computer and use it in GitHub Desktop.
Save ademcan/6dd706e9debeedff5ef45ff7343e6d87 to your computer and use it in GitHub Desktop.
// createPaymentIntent
RCT_EXPORT_METHOD(createSetupIntent:(NSString*)intent whitCc:(NSString*)cc withMo:(NSString*)month withYe:(NSString*)year withCvc:(NSString*)cvc withEmail:(NSString*)email withName:(NSString*)name callback:(RCTResponseSenderBlock)callback ){
// convert the month and year values to NSNumber
NSNumber *num1 = @([month intValue]);
NSNumber *num2 = @([year intValue]);
STPPaymentMethodCardParams *cardParams = [STPPaymentMethodCardParams new];
cardParams.number = cc;
cardParams.expMonth = num1;
cardParams.expYear = num2;
cardParams.cvc = cvc;
STPPaymentMethodBillingDetails *billingDetails = [STPPaymentMethodBillingDetails new];
// optional: add info to your user
billingDetails.email = email;
billingDetails.name = name;
// Fill in card, billing details
STPPaymentMethodParams *paymentMethodParams = [STPPaymentMethodParams paramsWithCard:cardParams billingDetails:billingDetails metadata:nil];
[[STPAPIClient sharedClient] createPaymentMethodWithParams:paymentMethodParams completion:^(STPPaymentMethod *paymentMethod, NSError *error) {
STPSetupIntentConfirmParams *setupIntentParams = [[STPSetupIntentConfirmParams alloc] initWithClientSecret:intent];
setupIntentParams.paymentMethodID = paymentMethod.stripeId;
MyCheckoutViewController *authContext = [[MyCheckoutViewController alloc] init];
[[STPPaymentHandler sharedHandler] confirmSetupIntent:setupIntentParams withAuthenticationContext:authContext completion:^(STPPaymentHandlerActionStatus status, STPSetupIntent * setupIntent, NSError * error) {
switch (status) {
case STPPaymentHandlerActionStatusSucceeded:
// Setup succeeded and returns a paymentIntent to use when creating your customer in the back-end
callback(@[[NSNull null], @"SUCCESS", paymentMethod.stripeId ]);
break;
case STPPaymentHandlerActionStatusCanceled:
// Handle cancel
callback(@[[NSNull null], @"CANCEL" ]);
break;
case STPPaymentHandlerActionStatusFailed:
// Handle error
NSLog(@"ERROR: %@", error);
callback(@[[NSNull null], @"ERROR" ]);
break;
}
}];
}];
}
@hamzaDv
Copy link

hamzaDv commented Jun 21, 2020

YES, exactly what I did!

Thank you we agree about that, thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment