iOS
1.Create a Customer
Pass a customerId to MoneyCollect to attach to the customer.
// Use your customerId
var customerId = "cus_1452880617225281538"
2.Construct data, and pay in PaymentSheet model
When creating a payment method, you can specify customer parameters and automatically attach the payment method to an existing customer.
/** Merchant ID */
@property (nonatomic,copy) NSString *customerID;
/** Billing details */
@property (nonatomic,strong) MCBillingDetails *billingDetails;
/** Create payment parameter object */
@property (nonatomic,strong) MCCreatePaymentParams *createPaymentParams;
// Initiate controller
MCSelectPaymentCardVC *selectPaymentCardVC = [[MCSelectPaymentCardVC alloc] init];
selectPaymentCardVC.delegate = self;
// Build request parameters
selectPaymentCardVC.customerID = [MCConfigurationFile getCustomerID];
selectPaymentCardVC.billingDetails = [MCConfigurationFile getBillingDetailsModel];
selectPaymentCardVC.createPaymentParams = [self constructMCCreatePaymentParams];
// Display view
[selectPaymentCardVC present:self];
3.Start Hosted Payment Page mode
Tap “Checkout” button to pay in Hosted Payment Page mode.
In Hosted payment page,select the previously saved card or add a new card.
Finally, tap the PayNow button to complete the payment.
4.Customer selects "save this card" during payment
4.1 Select "Save this card for your future use" on the Add a card page.
NSString *setupFutureUsage = isSelected ? @"on" : @"off";
_createPaymentParams.setupFutureUsage = setupFutureUsage;
Select the payment card in the future, when using setupFutureUsage set to "on", otherwise to "off"
4.2 Click "Add a card.
4.3 After create a payment method and attach the payment method to customer will save the card details to customer.
5.Return the payment result
@protocol MCSelectPaymentCardVCDelegate <NSObject>
/** Agent method for successful transaction */
- (void)successfulTransactionWithResponseObject:(NSDictionary *_Nullable)responseObject;
@end;
#pragma mark - MCSelectPaymentCardVCDelegate
- (void)successfulTransactionWithResponseObject:(NSDictionary *)responseObject
{
// Transaction status
NSString *status = [[responseObject objectForKey:@"data"] objectForKey:@"status"];
if ([status isEqualToString:@"succeeded"]) {
NSLog(@"success");
}else if ([status isEqualToString:@"failed"]) {
NSLog(@"%@",[[responseObject objectForKey:@"data"] objectForKey:@"errorMessage"]);
}else if ([status isEqualToString:@"pending"]) {
NSLog(@"pending");
}else if ([status isEqualToString:@"uncaptured"]) {
NSLog(@"uncaptured");
}else if ([status isEqualToString:@"canceled"]) {
NSLog(@"canceled");
}else {
NSLog(@"pending");
}
}
Last updated