适用于iOS的Braintree v.zero sdk v3.5.0 - 如何保存卡

时间:2014-12-07 00:26:51

标签: ios objective-c braintree

我正在尝试在我的应用中使用最新的(2014年12月v3.5.0)Braintree(BT)iOS sdk。我能够从我的服务器获取客户端令牌并呈现BT的Drop In viewController:

Braintree *braintree = [Braintree braintreeWithClientToken:self.clientToken];
BTDropInViewController *dropInViewController = [braintree dropInViewControllerWithDelegate:self];
[self.navigationController pushViewController:dropInViewController animated:YES];

和BT生成一个nonce,我可以在BT委托方法中捕获它并发送到我的服务器进行交易。

我想解决的问题是,由于我的应用用户经常付款,我必须在应用中保存他们的卡片信息,这样他们只需选择一张已保存的卡片即可进行下一次付款;否则他们每次付款时都必须输入他们的卡信息。基本上,我无法弄清楚BT如何获得保存的支付卡列表,如右图所示:

https://github.com/braintree/braintree_ios#braintree-vzero-sdk-for-ios

指向我需要做什么(或示例代码)的任何指针,以便为将来的单触付款保存卡信息?感谢。

1 个答案:

答案 0 :(得分:1)

有两种方法可以解决这个问题:

  1. customer_id嵌入client token。在红宝石中,它看起来像这样:

    @client_token = Braintree :: ClientToken.generate(   :customer_id => a_customer_id )

  2. 此更改只会影响Drop In。手动标记化的卡仍然需要明确保存在Vault中。

    1. 或者,使用您当前收到的随机数save the payment method in the vault。在红宝石中,它看起来像这样:

      result = Braintree :: PaymentMethod.create(   :customer_id => " YOUR_CUSTOMER_ID&#34 ;,   :payment_method_nonce => " NONCE-FROM-CLIENT" )

    2. 在这两种情况下,您都可以使用令牌create transactions from the vault(不再需要随机数)。