#if OBJC
#import <PassKit/PassKit.h>
- (NSString*)createPaymentRequest:(NSString*)itemName :(NSString*)itemAmount :(NSString*)merchantID {
NSString* iReturnValue = @"OK";
NSArray* paymentNetworks = @[PKPaymentNetworkMasterCard, PKPaymentNetworkVisa, PKPaymentNetworkQuicPay];
if ([PKPaymentAuthorizationViewController canMakePayments]) {
if ([PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:paymentNetworks]) {
NSString* iAmount = [NSString stringWithFormat:@"%.02f", itemAmount];
PKPaymentSummaryItem* paymentSummaryItem = [PKPaymentSummaryItem summaryItemWithLabel:itemName amount:[NSDecimalNumber decimalNumberWithString:itemAmount locale:NSLocale.currentLocale]];
PKPaymentRequest* paymentRequest = [[PKPaymentRequest alloc] init];
paymentRequest.countryCode = @"US";
paymentRequest.currencyCode = @"USD";
paymentRequest.supportedNetworks = paymentNetworks;
paymentRequest.merchantIdentifier = merchantID;
paymentRequest.merchantCapabilities = PKMerchantCapability3DS;
paymentRequest.paymentSummaryItems = @[paymentSummaryItem];
PKPaymentAuthorizationViewController* paymentViewController = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:paymentRequest];
paymentViewController.delegate = self;
UIViewController* topRootViewController = [UIApplication sharedApplication].keyWindow.rootViewController;
[topRootViewController presentViewController:paymentViewController animated:TRUE completion:nil];
} else {
iReturnValue = @"CardNotSupported";
}
} else {
iReturnValue = @"CannotMakePayments";
}
return iReturnValue;
}
-(void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller {
[(self._page1).object dismissViewControllerAnimated:YES completion:^{
B4I* bi = [b4i_main new].bi;
[bi raiseEvent:nil event:@"applepaypayment_closed" params:nil];
}];
}
- (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller didAuthorizePayment:(PKPayment *)payment completion:(void (^)(PKPaymentAuthorizationStatus))completion {
B4I* bi = [b4i_main new].bi;
NSString* lVerified = @"Success";
NSString* verifyResult = [self _applepaypaymentinfo:payment];
//NSLog(@"%@", [payment.token description]);
if ([verifyResult isEqualToString:lVerified]) {
[bi raiseEvent:nil event:@"applepaypayment_done:" params:@[lVerified]];
completion(PKPaymentAuthorizationStatusSuccess);
} else {
[bi raiseEvent:nil event:@"applepaypayment_done:" params:@[verifyResult]];
completion(PKPaymentAuthorizationStatusFailure);
}
};
#End If