如何解决用于生产的 ApplePay 集成
在生产中,ApplePay 不从真卡中扣款,应用程序已上线,仍然像沙盒一样工作,我们应该如何生产?
let request = PKPaymentRequest()
request.merchantIdentifier = MerchantIdentifier
request.supportednetworks = [PKPaymentNetwork.visa,PKPaymentNetwork.masterCard,PKPaymentNetwork.amex]
request.merchantCapabilities = PKMerchantCapability.capability3DS
request.countryCode = "SA"
request.currencyCode = "SAR"
request.paymentSummaryItems = [
PKPaymentSummaryItem(label: "Wallet",amount: NSDecimalNumber(value: amount))
]
let applePayController = PKPaymentAuthorizationViewController(paymentRequest: request)
applePayController?.delegate = self
self.present(applePayController!,animated: true,completion: nil)
extension WalletAmountTopupVC: PKPaymentAuthorizationViewControllerDelegate {
func paymentAuthorizationViewController(_ controller: PKPaymentAuthorizationViewController,didAuthorizePayment payment: PKPayment,completion: (@escaping (PKPaymentAuthorizationStatus) -> Void)) {
let pkPaymentToken = payment.token
//pkPaymentToken.paymentData //base64 encoded,applepay.data
print(pkPaymentToken)
let json = try? JSONSerialization.jsonObject(with: pkPaymentToken.paymentData,options: JSONSerialization.ReadingOptions.allowFragments) as? [String:AnyObject]
print(json)
paymentStatus = .success
completion(paymentStatus)
if paymentStatus == .success {
}
//Todo: Handle error condition
completion(PKPaymentAuthorizationStatus.success)
}
func paymentAuthorizationViewControllerDidFinish(_ controller: PKPaymentAuthorizationViewController) {
// controller.dismiss(animated: true,completion: nil)
controller.dismiss(animated: true) {
dispatchQueue.main.async {
if self.paymentStatus == .success {
// self.completionHandler!(true)
Alerts.createAutoHideAlert(title: "",message: "Success")
} else {
// self.completionHandler!(false)
}
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。