payment_status = "PS" 时,说明连连创单成功且支付完成,商家可以更新自己的订单状态;payment_status = "WP" 时,说明连连创单成功并等待用户付款,支付结果会以开放消息方式通知给商家指定的notification_url服务地址;- (void)createPaymentRequest {
// 创建支付请求
PKPaymentRequest *request = [[PKPaymentRequest alloc] init];
// applePay 的 id
request.merchantIdentifier = @"merchant.-testing";
request.supportedNetworks = @[PKPaymentNetworkVisa, PKPaymentNetworkMasterCard, PKPaymentNetworkChinaUnionPay, PKPaymentNetworkAmex];
request.merchantCapabilities = PKMerchantCapability3DS | PKMerchantCapabilityEMV;
request.countryCode = @"CN";
request.currencyCode = self.currencyTextField.text ?: @"CNY";
// 创建支付项
PKPaymentSummaryItem *item = [PKPaymentSummaryItem summaryItemWithLabel:@"订单金额" amount:[NSDecimalNumber decimalNumberWithString:self.amountTextField.text]];
PKPaymentSummaryItem *total = [PKPaymentSummaryItem summaryItemWithLabel:@"总计" amount:[NSDecimalNumber decimalNumberWithString:self.amountTextField.text]];
request.paymentSummaryItems = @[item, total];
// 显示支付授权界面
PKPaymentAuthorizationViewController *authVC = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request];
authVC.delegate = self;
if (authVC) {
[self presentViewController:authVC animated:YES completion:nil];
}
}@interface ViewController : UIViewController<PKPaymentAuthorizationViewControllerDelegate>
#pragma mark - PKPaymentAuthorizationViewControllerDelegate
- (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller didAuthorizePayment:(PKPayment *)payment completion:(void (^)(PKPaymentAuthorizationStatus))completion {
// 处理支付授权
[self processPaymentWithToken:payment.token completion:completion];
}
- (void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller {
[controller dismissViewControllerAnimated:YES completion:nil];
}
//模拟后端支付请求
- (void)processPaymentWithToken:(PKPaymentToken *)paymentToken completion:(void (^)(PKPaymentAuthorizationStatus))completion {
//返回 apple pay 支付失败
completion(PKPaymentAuthorizationStatusFailure);
//返回 apple pay 支付成功
completion(PKPaymentAuthorizationStatusSuccess);
}//apple pay 回调方法
- (void)processPaymentWithToken:(PKPaymentToken *)paymentToken completion:(void (^)(PKPaymentAuthorizationStatus))completion {
//失败通知
completion(PKPaymentAuthorizationStatusFailure);
//成功通知
completion(PKPaymentAuthorizationStatusSuccess);
}