ApplePay 支付的简单使用

来源:互联网 发布:宏基笔记本怎么样 知乎 编辑:程序博客网 时间:2024/05/21 01:43

ApplePay支付功能出来已经很久了,看着API自己学习了一下,今天想起来总结一下,也算是在学习一下,所以写了这篇笔记,

applePay是在iphone 6以上设备才支持这个支付功能的,这一点一定要清楚,
我是简单的实现了一下功能做演示功能其他的就不说了,直接上代码,加注释

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{    //判断设备是否支持applePay功能    if (![PKPaymentAuthorizationViewController canMakePayments]) {        //设备不支持        //不让applePay的支付按钮显示        NSLog(@"设备不支持");        return;    }    //判断是否支持Visa和银联    if (![PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkChinaUnionPay,PKPaymentNetworkVisa]]) {        NSLog(@"支持visa和银联");        //进入银行卡的选择        [[[PKPassLibrary alloc]init]openPaymentSetup];        return;    }    //创建支付请求    PKPaymentRequest *requ = [[PKPaymentRequest alloc]init];    //设置商户ID。这个ID就是和支付宝的商户ID意思一样    requ.merchantIdentifier = @"merchant.www.Kensence.com.ApplePay";    //设置国家代码    requ.countryCode = @"CN"; //表示中国    //设置支持卡    requ.supportedNetworks = @[PKPaymentNetworkChinaUnionPay,PKPaymentNetworkVisa];    //商户的支付标准    requ.merchantCapabilities = PKMerchantCapability3DS;    //设置货币单位    requ.currencyCode = @"CNY";    //设置商品    NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithString:@"4"];    PKPaymentSummaryItem *item = [PKPaymentSummaryItem summaryItemWithLabel:@"毛巾" amount:number];    //多种商品最后一个item是商品的总价,这个一定要搞清楚,最后一个应该传商品的总价,    requ.paymentSummaryItems = @[item];    //设置收据必填内容    requ.requiredBillingAddressFields = PKAddressFieldAll;    //设置送货地址    requ.requiredShippingAddressFields = PKAddressFieldAll;    //设置送货方式    PKShippingMethod *meth = [PKShippingMethod summaryItemWithLabel:@"顺风" amount:[NSDecimalNumber decimalNumberWithString:@"8"]];    meth.identifier = @"shunfeng";    meth.detail =  @"24小时之内到达";    requ.shippingMethods = @[meth];    //显示支付界面    PKPaymentAuthorizationViewController *payVC = [[PKPaymentAuthorizationViewController alloc]initWithPaymentRequest:requ];    payVC.delegate = self;  [self presentViewController:payVC animated:YES completion:nil];}//使用密码支付- (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller                       didAuthorizePayment:(PKPayment *)payment                                completion:(void (^)(PKPaymentAuthorizationStatus status))completion{    //把支付信息发送给服务器处理    //支付结果,显示不同的显示(调用block,穿不同的枚举)    completion(PKPaymentAuthorizationStatusSuccess);}- (void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller{    //把支付的界面关闭    [self dismissViewControllerAnimated:YES completion:nil];}
0 0
原创粉丝点击