前不久Apple Pay开始了,大家做好接入的准备了吗?今天写了个demo,悲催的是开发者账号上设备满了,只能用模拟器给大家看了。。。疑问是:在开发Apple Pay的时候,Xcode 7无法 无证书真机调试吗?求解
0、 建新工程,忽略
由于想要使用Apple Pay,需要用到Apple颁布的merchant证书,所以要从申请APP ID开始:
1、在developer.apple创建App ID,如图:
根据工程的bundle id创建App ID,其他信息不多说,注意要在App Services栏,勾选 “Apple Pay”,如下图:
当创建完成后,查找到你的app id,结果如下图:
发现Apple Pay状态是黄色“configurable”,怎么激活呢,点击“Edit”,找到“Apple Pay”,点击对应的“Edit”,结果如图:
这就是让我们选择一个Merchant 证书,图中的两个是我创建的,那么大家可能是空的,如果是空的,这就需要去创建Merchant 证书了,然后继续这一步骤,为该App ID选择绑定一个Merchant证书。
创建Merchant证书方法:从左侧栏创建App IDs那找到Merchant IDs,点进去,新增一个ID!查找到该Merchant IDs,点击“Edit”,选择“YES”:
下面就是生产证书的步骤了,不多说,根据操作continue就行啦!!!最后我们会在本地得到一个.cer文件,双击即可。
2、配置Apple Pay到工程,如图:
如图操作,打开Apple Pay的开关,添加一个Merchant ID,如果没有你创建的,刷新一下,再选择即可。如果下面steps报红,问题可能是刚刚创建的Merchant ID并没有和App ID绑定,点击fix,一般都没问题了。
3、主要代码如下
import PassKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 支付按钮
let btn = UIButton(type: UIButtonType.Custom)
btn.frame = CGRectMake(60, 100, 200, 50)
btn.center = self.view.center
btn.setBackgroundImage(UIImage(named: "ApplePayBTN_64pt__whiteLine_textLogo_"), forState: UIControlState.Normal)
btn.addTarget(self, action: "ApplePay", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(btn)
}
func ApplePay() {
// 检测是否支持ApplePay
if PKPaymentAuthorizationViewController.canMakePayments() {
print("support ApplePay")
// 创建一个支付request
let pkPayRequest = PKPaymentRequest()
// 创建3个商品item,label为商品信息,amount为价格
let pkPayItem1 = PKPaymentSummaryItem(label: "Lamborghini LP65