我试图从布伦特里获得nonce。我没有找到任何文档Braintree提供了如何从以下文档中的Braintree SDK获取nonce。
https://developers.braintreepayments.com/start/hello-client/ios/v4
请告诉我如何从Braintree iOs SDK
获取nonce答案 0 :(得分:2)
您可以通过使用以下方法获得付款随机数 让nonce = result.paymentMethod!.nonce
示例:-
func showDropIn(clientTokenOrTokenizationKey: String) {
let request = BTDropInRequest()
let dropIn = BTDropInController(authorization: clientTokenOrTokenizationKey, request: request)
{ (controller, result, error) in
if (error != nil) {
print("ERROR")
} else if (result?.isCancelled == true) {
print("CANCELLED")
} else if let result = result {
let nonce = result.paymentMethod!.nonce
print( nonce)
}
controller.dismiss(animated: true, completion: nil)
}
self.present(dropIn!, animated: true, completion: nil)
}
答案 1 :(得分:1)
完全披露:我在Braintree工作。如果您有任何其他问题,请随时联系support。
获取随机数将记录在您链接的页面的Presenting Drop-in UI section中。一旦您启用了Drop-in,您需要实现一个委托,以便Drop-in可以找到它所生成的nonce的发送位置。如果没有像指定的那样的委托,您将不会从Drop-in接收nonce:
然后实施BTDropInViewControllerDelegate以获取成功时的付款方式nonce,并在任何一种情况下解除Drop In UI:
- (void)dropInViewController:(BTDropInViewController *)viewController
didSucceedWithTokenization:(BTPaymentMethodNonce *)paymentMethodNonce {
// Send payment method nonce to your server for processing
[self postNonceToServer:paymentMethodNonce.nonce];
[self dismissViewControllerAnimated:YES completion:nil];
}
- (void)dropInViewControllerDidCancel:(__unused BTDropInViewController *)viewController {
[self dismissViewControllerAnimated:YES completion:nil];
}
如果查看第一个函数,您可以看到变量paymentMethodNonce
(类型:BTPaymentMethodNonce)已传递到您的应用程序中。此示例代码期望您有另一个函数(postNonceToServer
)来实际处理nonce一旦获得它。