如何从Braintree iOs SDK获取nonce

时间:2016-02-04 10:59:04

标签: ios paypal braintree paypal-rest-sdk

我试图从布伦特里获得nonce。我没有找到任何文档Braintree提供了如何从以下文档中的Braintree SDK获取nonce。

https://developers.braintreepayments.com/start/hello-client/ios/v4

请告诉我如何从Braintree iOs SDK

获取nonce

2 个答案:

答案 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一旦获得它。