apple pay

作者: bu再等 | 来源:发表于2016-02-24 09:57 被阅读184次

    本人ios初学者,为自己学习方便,复制各位大神的学习性文章放在自己简书里,仅作为自己学习方便使用,如果作者疑此行为侵权,请随时联系本人删除,如有共同学习者复制此文章,请注明原出处

    最近一个特别火的词组出现在我们的生活中Apple Pay,大家又对其了解多少呢?其实在iOS8.1之后Apple Pay功能已经开放了,只不过在大陆在今年2月才可以使用,Apple Pay是一个基于NFC的支付系统,类似于你的银行卡,走到哪刷到哪,那么作为开发人员的我们该如何去开发和使用呢?

    1、我们要去设置Merchant IDs

    Merchat IDs 设置

    在设置Identifier的时候要注意ID的格式

    Merchat IDs identifier 设置

    注册成功以后

    点击Edit

    点击Continue

    Choose File

    从证书颁发机构请求证书

    选择

    下载

    2、到目前为止我们的基本设置已经设置好了,现在我们要去Xcode里面去配置相关信息

    由于我们要在真机上测试,所以我们要选择描述文件

    屏幕快照 2016-02-23 16.16.04.png

    我们在Xcode里面把Apple pay打开

    屏幕快照 2016-02-23 16.15.46.png

    3、代码示范

    遵循PKPaymentAuthorizationViewControllerDelegate

    #pragma mark ----支付状态- (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller                      didAuthorizePayment:(PKPayment *)payment                                completion:(void (^)(PKPaymentAuthorizationStatus status))completion{   

    NSLog(@"花费: %@", payment);   

    BOOL asyncSuccessful = FALSE;

    if(asyncSuccessful) {       

    completion(PKPaymentAuthorizationStatusSuccess);       

    NSLog(@"支付成功");   

    }else{       

    completion(PKPaymentAuthorizationStatusFailure);       

    NSLog(@"支付失败");   

    }}

    #pragma mark ----支付完成

    - (void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller {

        // 支付完成后让支付页面消失   

    [controller dismissViewControllerAnimated:YES completion:nil];

    }

    支付方法

    #pragma mark -----点击支付- (IBAction)checkOut:(id)sender{

    if([PKPaymentAuthorizationViewController canMakePayments]) {       

    NSLog(@"支持支付");       

    // 我们后面创建出来的支付页面就是根据这个request       

    PKPaymentRequest *request = [[PKPaymentRequest alloc] init];       

    // 商品目录       

    PKPaymentSummaryItem *widget1 = [PKPaymentSummaryItem summaryItemWithLabel:@"大展"amount:[NSDecimalNumber decimalNumberWithString:@"0.01"]];       

    PKPaymentSummaryItem *widget2 = [PKPaymentSummaryItem summaryItemWithLabel:@"小展"amount:[NSDecimalNumber decimalNumberWithString:@"0.01"]];       

    PKPaymentSummaryItem *widget3 = [PKPaymentSummaryItem summaryItemWithLabel:@"2个大展"amount:[NSDecimalNumber decimalNumberWithString:@"0.02"]];       

    PKPaymentSummaryItem *widget4 = [PKPaymentSummaryItem summaryItemWithLabel:@"总金额"amount:[NSDecimalNumber decimalNumberWithString:@"0.01"] type:PKPaymentSummaryItemTypeFinal];        request.paymentSummaryItems = @[widget1, widget2, widget3, widget4];        request.countryCode = @"CN";       

    request.currencyCode = @"CNY";//人民币       

    request.supportedNetworks = @[PKPaymentNetworkChinaUnionPay, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa];       

    // 这里填的是就是我们创建的merchat IDs       

    request.merchantIdentifier = @"merchant.com.dazhan.applePayDemo";        request.merchantCapabilities = PKMerchantCapabilityCredit;       

    //增加邮箱及地址信息       

    request.requiredBillingAddressFields = PKAddressFieldEmail | PKAddressFieldPostalAddress;       

    // 根据request去创建支付页面       

    PKPaymentAuthorizationViewController *paymentPane = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request];        // 设置代理       

    paymentPane.delegate = self;if(!paymentPane) {           

    NSLog(@"出问题了");       

    }else{           

    // 模态推出页面           

    [self presentViewController:paymentPane animated:YES       

    completion:nil];       

    }       

    }else{       

    NSLog(@"该设备不支持支付");   

    }}

    效果图.gif

    相关文章

      网友评论

          本文标题:apple pay

          本文链接:https://www.haomeiwen.com/subject/fxcikttx.html