浅谈Apple Pay开发

Apple Pay是一个基于NFC的支付系统,几乎所有的银行都支持。现在我大致说下开发



首先需要大家了解一个叫做merchant ID的东西,这是一个id,需要在官网上进行配置。就和真机调试的时候配置证书一样。注册过后,就相当于有了一个商人的身份。这样你就可以使用这个商人的身份来接受付款。

1)注册一个merchant ID

1.在Member Center,选择Certificates, Identifiers & Profiles。

2.在Identifiers下面,选择“Merchant IDs”。

3.单击右上角的“添加”按钮(+)。

4.输入描述和标识符,然后单击“继续”。

5.完成

2)为你的merchant ID配置一个证书

1.在Member Center,选择Certificates, Identifiers & Profiles。

2.在Identifiers下面,选择“Merchant IDs”。

3.单击“编辑”。

4.上传CSR文件。(和真机调试一样,通过钥匙串生成)

5.下载证书通过点击下载,并点击完成。

添加项目对Apple Pay的支持

1)导入PassKit框架

 #import <PassKit/PassKit.h>  

2)创建付款请求

付款请求是 PKPaymentRequest 类的实例。付款请求包括所购买的商品,用户信息等等。

在创建付款请求之前,确定用户是否可以使用网络,通过调用 PKPaymentAuthorizationViewController 类中的 canMakePaymentsUsingNetworks: 的方法。确定用户设备是否允许使用Apple Pay,通过调用 PKPaymentAuthorizationViewController 类中的 canMakePayments 方法

如果 canMakePayments 返回 NO,那么说明该设备不支持Apple Pay。

如果 canMakePayments 返回 YES,但 canMakePaymentsUsingNetworks:返回 NO,设备支持苹果支付,但用户未添加任何所要求的银行卡。

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

2.1)创建相关商品信息

商品信息的关键类是 PKPaymentSummaryItem,每一个item对象都是一个商品信息,描述了一个商品和它的价格。通过 PKPaymentSummaryItem 的类方法 summaryItemWithLabel:(NSString )label amount:(NSDecimalNumber )amount,可以创建出一个商品信息的实例。

然后放入 request.paymentSummaryItems 数组当中。数组中,最后的对象是总价。

 PKPaymentSummaryItem *good1 = [PKPaymentSummaryItem summaryItemWithLabel:@" professional 2" amount:[NSDecimalNumber decimalNumberWithString:@"1992"]];  PKPaymentSummaryItem *good2 = [PKPaymentSummaryItem summaryItemWithLabel:@"哇哈哈" amount:[NSDecimalNumber decimalNumberWithString:@"4"]];  PKPaymentSummaryItem *total = [PKPaymentSummaryItem summaryItemWithLabel:@"LOL" amount:[NSDecimalNumber decimalNumberWithString:@"1392"]];  request.paymentSummaryItems = @[ good1, good2, total ];  

2.2)货币单位

货币单位需要使用

 request.currencyCode = @"CNY”;(人民币)  

2.3)Wallet所绑定的卡的类型

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

2.4)merchant ID

 request.merchantIdentifier = @"merchant.cn.Warren.PayDemo";  

2.5)支付处理标准

通过指定merchantCapabilities属性来指定你支持的支付处理标准,3DS支付方式是必须支持的,EMV方式是可选的。 request.merchantCapabilities = PKMerchantCapabilityEMV;

2.6)配送信息

设置后,如果用户之前没有填写过,那么会要求用户必须填写才能够使用Apple Pay。

 request.requiredShippingAddressFields = PKAddressFieldPostalAddress | PKAddressFieldPhone | PKAddressFieldEmail | PKAddressFieldName;  

3)创建用来显示支付信息的控制器

这个专门用来显示支付’息的控制器是 PKPaymentAuthorizationViewController 类的实例。可以在初始化方法中传入一个付款请求。然后使用modal的方式显示出来即可。

 PKPaymentAuthorizationViewController *paymentPane     = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request]; [self presentViewController:paymentPane animated:YES completion:nil];  

3.1)为显示支付信息的控制器设置代理

遵守 PKPaymentAuthorizationViewControllerDelegate 协议,然后设置代理。

 paymentPane.delegate = self;  

这个协议中与两个required的方法。

 - (void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller { [self dismissViewControllerAnimated:YES completion:nil]; }  

这个方法在支付结束和点击取消的时候调用,所有直接写上dismiss就可以了。

 - (void) paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller                     didAuthorizePayment:(PKPayment *)payment                              completion:(void (^)(PKPaymentAuthorizationStatus))completion { completion(PKPaymentAuthorizationStatusSuccess); }  


weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值