我在一家银行工作,并且正在从事一个项目,该项目以编程方式将用户的信用卡/银行卡添加到他们的苹果钱包中。该卡已由我们的银行发行。
我们的应用程序已具有com.apple.developer.payment-pass-provisioning权利。我能够填充配置并调用PKAddPaymentPassViewController。模态加载正确,一旦用户单击下一步,我将收到证书,随机数和nonceSignature的响应。
我现在正在尝试调用PKAddPaymentPassRequest,它要求使用字段ActivationData,encryptedPassData,wrappedKey,ephemeralPublicKey
我在这里阅读文档
https://developer.apple.com/documentation/passkit/pkaddpaymentpassrequest?language=objc
我的理解是,应用程序需要将证书,随机数和nonceSignature传递给我们的api,然后使用这些证书对信用卡信息进行加密。我们的api将以ActivationData,encryptedPassData,wrappedKey,ephemeralPublicKey进行响应,然后应用可以使用该数据调用PKAddPaymentPassRequest以完成该过程。
我不确定从api方面开始。如何使用证书正确生成所需的加密字符串?付款通行证的json格式是什么?有很多不同通行证的示例,但没有支付通行证。
是否有任何示例代码使用证书并生成加密的PassData和其他字段?我看到在developer.apple.com上有一些通行证示例代码,但是没有关于支付通行证的示例代码。
这个问题是我所能找到的最接近的问题。有一些评论询问服务器端的实现,但是答案还不清楚
答案 0 :(得分:2)
您可以通过在服务器端创建.pkpass来向苹果钱包添加信用卡
并在ios端下载该文件,它将添加到ios钱包中
这是使用完成处理程序从服务器下载.pkpass(存折文件)并显示pkpassviewcontroller以便进一步添加到苹果钱包中的代码。
import PassKit
let url : NSURL! = NSURL(string: "YOUR .pkpass URL GOES HERE")
let request: NSURLRequest = NSURLRequest(url:
url as URL)
let config = URLSessionConfiguration.default
let session = URLSession(configuration: config)
let task : URLSessionDataTask = session.dataTask(with: request as URLRequest, completionHandler: {(data, response, error) in
var error: NSError?
let pass = try? PKPass(data: data!, error: &error)
if error != nil {
DispatchQueue.main.async {
let alertView = UIAlertView(title: "Error", message: (error?.localizedDescription)!, delegate: nil, cancelButtonTitle: "OK", otherButtonTitles: "Cancel")
alertView.show()
}
}
else {
let passLibrary = PKPassLibrary()
if passLibrary.containsPass(pass!) {
DispatchQueue.main.async {
let alertView = UIAlertView(title: "Already Exist", message: "This pass already added in wallet. Thanks!", delegate: nil, cancelButtonTitle: "OK", otherButtonTitles: "Cancel")
alertView.show()
self.hideLoading()
}
} else {
let pkvc = PKAddPassesViewController(pass: pass!)
pkvc.delegate = self
self.present(pkvc, animated: true, completion: {() -> Void in
// Do any cleanup here
self.hideLoading()
})
}
}
})
task.resume()
PHP库为iOS钱包应用创建通行证
答案 1 :(得分:0)
实施细节被视为机密,您必须与苹果联系以获取适当的文档