ApplePay开发

昨天,苹果向用户发送了关于《了解如何开始使用 Apple Pay》的邮件,指明目前中国大陆地区已经有数百万个地方可以使用这个基于 Touch ID 和 NFC 技术的支付功能。


What is ApplePay?

简单来说,Apple Pay 类似一个虚拟卡包,它可以将所有银行卡(包括借记卡和信用卡)的信息都存在在苹果设备自带的 Wallet 功能中,之后可以在支持银联云闪付功能的 POS 上使用。Apple Pay 在 2014 年发布,美国地区率先使用,使用时只要在终端读取器上轻轻一靠,一秒钟就能付费,使用的是近场通信技术。

Who is Supporting ApplePay?

目前支持的设备型号是:iPhone 6,iPhone 6 Plus,iPhone 6s, iPhone 6s Plus;iPad Air 2,iPad mini 3,iPad mini 4,iPad Pro,还有 AppleWatch。但是,iPad 只支持在 App 内进行支付,也就是说,用户是无法在麦当劳或者 7-11 掏出一个硕大的 iPad 来买单的。

对设备系统的要求是 iOS 9.2 及以上,Apple Watch 则需要至少是 OS 2.1 ,一台设备最多可以添加 8 张卡片,Apple Pay 会默认使用最后一张卡

How to use ApplePay?

密码输入: Apple Pay 是不需要额外输入任何密码的,主需要用户在 Touch ID 上输入指纹,但是一些银行在支付之后还需要在 POS 机上输入密码(和一般借记卡刷卡的流程相同),另外借记卡在超过 300 元人民币以后需要刷完手机后在输入密码,如果是加密的信用卡也需要手动输入密码.

安全问题: 用户在 Wallet 里的信息并不存储在 iPhone 中,而是一个 token code(标记代码),每次买东西发给银行的动态安全码也不一样,而这一切的钥匙则是手机上的 Touch ID 指纹装置。

昨天的苹果煽动了一下小翅膀,今天万千程序猿心潮滂湃,特此,闲暇之际,也尝试了下applePay的开发:

第一步:在Xcode里设置界面里打开applePay相关功能锁。
这里写图片描述

点开会发现这个位置需要证书。

第二步:去苹果iOS 开发者中心的位于Identifiers > Merchant ID配置证书。配置证书链接
这里写图片描述

如上生成Merchant ID配置证书,然后去以下位置生成配置证书这里写图片描述

这期间需要一个CRS电脑的钥匙串证书(此过程类似于推送证书配置). 最后下载apple_pay.cer证书,安装。

去app ID部分关联程序:这里写图片描述

现在你可以回到Xcode并刷新Merchant ID区块,如果一切正常,你应当看到刚创建的ID出现在列表上。将它选中,然后可以进入下一部分即可在第一步中看到证书信息.

第三步:直接上代码

ViewController.h

#import <UIKit/UIKit.h>
#import <PassKit/PassKit.h>
//Apple Pay使用了PassKit框架,并遵守了一个协议

@interface ViewController : UIViewController<PKPaymentAuthorizationViewControllerDelegate>

- (IBAction)payClick:(id)sender;//SB拖拽的按钮事件
@end

ViewController.m

@implementation ViewController

#pragma mark - PKPaymentAuthorizationViewControllerDelegate
//Required 支付前,判断支付状态
- (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller
                       didAuthorizePayment:(PKPayment *)payment
                                completion:(void (^)(PKPaymentAuthorizationStatus status))completion{

    NSLog(@"Payment was authorized:%@",payment);

    BOOL asyncSuccessful = FALSE;
    if (asyncSuccessful) {
        completion(PKPaymentAuthorizationStatusSuccess);
        NSLog(@"payment was successful");
    }else{
        completion(PKPaymentAuthorizationStatusFailure);
        NSLog(@"payment was failure");
    }


}

//Required 支付页面完成,收起当前controller
- (void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller{

    [controller dismissViewControllerAnimated:YES completion:nil];

}

-(void)payClick:(id)sender{

    if ([PKPaymentAuthorizationViewController canMakePayments]) {
        NSLog(@"you can make payment");

        //添加商品信息
        PKPaymentRequest * request = [[PKPaymentRequest alloc]init];

        PKPaymentSummaryItem *item1 = [PKPaymentSummaryItem summaryItemWithLabel:@"item1" amount:[NSDecimalNumber decimalNumberWithString:@"0.99"]];

         PKPaymentSummaryItem *item2 = [PKPaymentSummaryItem summaryItemWithLabel:@"item2" amount:[NSDecimalNumber decimalNumberWithString:@"0.88"]];

        PKPaymentSummaryItem *total = [PKPaymentSummaryItem summaryItemWithLabel:@"total" amount:[NSDecimalNumber decimalNumberWithString:@"0.77"]];

        request.paymentSummaryItems = @[item1,item2,total];
        request.countryCode = @"US";
        request.currencyCode = @"USD";
        request.supportedNetworks = @[PKPaymentNetworkAmex,PKPaymentNetworkVisa,PKPaymentNetworkChinaUnionPay];
        request.merchantIdentifier=@"merchant.com.certificate.demo";
        request.merchantCapabilities = PKMerchantCapabilityEMV;
        PKPaymentAuthorizationViewController * paymentPane = [[PKPaymentAuthorizationViewController alloc]initWithPaymentRequest:request];

        paymentPane.delegate = self;
        [self presentViewController:paymentPane animated:YES completion:nil];
    }else{
        NSLog(@"This device cannot make payments");
    }
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
@end
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值