iOS开发笔记(5)---- 应用内接入Apple Pay

本文介绍了如何在iOS应用中接入Apple Pay,包括准备工作如申请MerchantID和证书,工程设置,创建支付请求,以及实现支付授权委托的步骤。文章强调了交易授权与交易处理的区分,并提示处理交易通常建议使用支付服务商。
摘要由CSDN通过智能技术生成

自2014年苹果秋季发布会至今,Apple Pay推出已将近一年时间,我们对其便利性与安全性也早有耳闻,然而时至今日其使用范围仍然只限美国、英国两地区,对于在中国区的引入,我们只能报以期望。

总体来说,在应用内集成Apple Pay需要两个部分:交易授权与交易处理。交易授权在应用内进行,通过PassKit.framework所提供的接口向用户获取支付授权(payment token);而交易处理则需要授权后调用可受理交易的服务器接口(将token传入服务器进行处理),你可以选择某个支付平台来处理交易,或者也可以自己实现交易处理过程,苹果官方比较推荐前者。
这里写图片描述

准备工作:

在接入Apple Pay之前,首先要申请MerchantID及对应证书。

  1. 申请 MerchantID
    登陆MemberCenter,选择Certificates, Identifiers & Profiles;
    在Identifiers下选择Merchant IDs,点击右上角添加按钮添加Merchant ID;
    输入描述信息和标识符(格式为merchant.com.company.productid),继续至完成即可。
    这里写图片描述
  2. 本地生成CSR文件,用于请求证书。
    打开钥匙串访问工具,在钥匙串访问下拉菜单选中证书助理-》从证书颁发机构请求证书;
    输入appId邮件地址、名称,选择存储到磁盘,勾选让我指定秘钥对信息;
    秘钥大小选择256位,算法选择ECC。
    这里写图片描述
  3. 请求证书
    进入MemberCenter,根据之前步骤找到前面申请的Merchant ID;
    在这里可以编辑该项,上传之前生成的CSR文件并生成cer证书文件;
    下载证书文件即可。
    这里写图片描述

工程设置

在应用内集成Apple Pay,还需要引用依赖库PassKit.framework,并且在Capability中启用Apple Pay权限(在这里需要配置merchantId)。
这里写图片描述

到这里我们的准备工作就完成了,接下来开始集成Apple Pay。

创建支付请求

在真正创建支付请求之前,我们应该先对当前的支付环境进行检测,看看当前设备(iPhone6以上)、系统(iOS8.0以上)及Apple Pay设置(地区美国或英国,已添加可用的支付卡片)是否满足支付条件。

//检查当前设备是否可以支付
[PKPaymentAuthorizationViewController canMakePayments]

//检查用户是否可进行某种卡的支付,目前仅支持Amex、MasterCard与Visa三种卡
[PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks: @[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard,PKPaymentNetworkVisa]]

在环境检测完成后即可创建支付请求。

  • 设置币种、国家码及merchant标识符等基本信息
PKPaymentRequest *request=[PKPaymentRequest new];
request.currencyCode = @"USD";
request.countryCode = @"US";
request.merchantIdentifier = @"merchant.com.example";
  • 设置费用项
    在这里可以设置费用的各组成部分及最后结算,包括小计、运费、折扣等项,每一项包含标签字符串和金额两个属性。
//小计
NSDecimalNumber *subtotalAmount = [NSDecimalNumber decimalNumberWithMantissa:1275 exponent:-2 isNegative:NO];
self.subtotal = [PKPaymentSummaryItem summaryItemWithLabel:@"Subtotal" amount:subtotalAmount];

//折扣
NSDecimalNumber *discountAmount = [NSDecimalNumber decimalNumberWithMantissa:200 exponent:-2 isNegative:YES];
self.discount = [PKPaymentSummaryItem summaryItemWithLabel:@"Discount" amount:discountAmount];

// 合计
NSDecimalNumber *totalAmount = [NSDecimalNumber zero];
totalAmount = [totalAmount decimalNu
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NSString类是iOS开发中非常常用的字符串类,其中substringFromIndex、substringWithRange和substringToIndex是NSString类中的三个常用方法,用于截取字符串的一部分。下面分别介绍它们的使用方法。 1. substringFromIndex方法 该方法用于截取字符串从指定位置到字符串结尾的所有字符,返回截取后的字符串。它的方法签名如下: ``` - (NSString *)substringFromIndex:(NSUInteger)from; ``` 其中,from是一个NSUInteger类型的参数,表示要截取的起始位置,从0开始计数。 示例代码: ``` NSString *str = @"Hello World"; NSString *subStr = [str substringFromIndex:6]; NSLog(@"%@", subStr); // 输出:"World" ``` 2. substringWithRange方法 该方法用于截取字符串从指定范围内的所有字符,返回截取后的字符串。它的方法签名如下: ``` - (NSString *)substringWithRange:(NSRange)range; ``` 其中,range是一个NSRange类型的结构体,用来指定要截取的字符串的范围。 示例代码: ``` NSString *str = @"Hello World"; NSRange range = NSMakeRange(6, 5); NSString *subStr = [str substringWithRange:range]; NSLog(@"%@", subStr); // 输出:"World" ``` 3. substringToIndex方法 该方法用于截取字符串从字符串开头到指定位置的所有字符,返回截取后的字符串。它的方法签名如下: ``` - (NSString *)substringToIndex:(NSUInteger)to; ``` 其中,to是一个NSUInteger类型的参数,表示要截取的结束位置,从0开始计数。 示例代码: ``` NSString *str = @"Hello World"; NSString *subStr = [str substringToIndex:5]; NSLog(@"%@", subStr); // 输出:"Hello" ``` 以上就是NSString中substringFromIndex、substringWithRange和substringToIndex方法的使用方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值