如何使用现有的customerId处理Braintree付款

协奏曲

尝试使用Braintree设置iOS和PHP付款系统。

我可以用设置一个clientToken

$clientToken["client_token"] = Braintree_ClientToken::generate());
return ($clientToken);

我可以通过以下方式处理第一笔付款:

$result = Braintree_Transaction::sale(array(
        'amount' => '1',
        'paymentMethodNonce' => $nonce,
        'customer' => array(
            'id' => 'testId',
            'firstName' => 'John',
            'lastName' => 'Doe',
            'email' => '[email protected]',
        ),
        'options' => array(
            'submitForSettlement' => true,
            'storeInVaultOnSuccess' => true,
        )
      ));

但是,当我尝试处理第二笔付款时,出现错误:

91609 – Customer ID has already been taken.

如何处理具有相同customerId('testId')的同一客户的第二笔付款-为什么当我尝试通过现有客户ID进行付款时,为什么会出错?当然,它应该只将付款附加给同一位客户吗?那不是吗?

编辑:因此,在四处查看之后,我发现了另一个可以在Braintree_Transaction :: sale中包含的字段,如下所示:

'customerId' => 'testId',

因此,这将允许我重复使用Braintree库中存储的customerId。但是第一次交易我得到了错误:

91510 – Customer ID is invalid.

因此,我遇到了一个难题22-我可以将第一组代码用于新客户,但不能用于回头客,而我可以将第二组代码用于回头客户,但不能用于新客户。我不能一起使用。因此,我的解决方案是创建自己的本地数据库条目,该条目确定用户之前是否已经通过braintree进行了付款,并相应地替换了代码。有没有更简化的方法?

f

我在Braintree工作。如果您需要更多帮助,可以随时与我们的支持团队联系

您有正确的主意。您需要一边跟踪Braintree是否存在客户ID。

还有一种选择,但我不建议这样做,因为它需要额外的API调用。

您可以先尝试使用Braintree创建客户,如果错误代码为,则忽略错误91510

$result = Braintree_Customer::create(array(
        'id' => 'testId',
        'firstName' => 'John',
        'lastName' => 'Doe',
        'email' => '[email protected]',
));

然后,您知道该客户已经存在,或者您刚刚创建了该客户,就可以使用第二种方法来创建交易

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用现有的 NodeJS Bot 处理网络聊天

来自分类Dev

域更新为使用HTTPS(SSL)时,Google如何处理现有的索引HTTP链接〜

来自分类Dev

如何在Dockerfile中使用现有的Docker Volume

来自分类Dev

如何使用现有的fork更新我的github库?

来自分类Dev

如何使用Eclipse打开现有的C ++项目?

来自分类Dev

如何快速使用现有的SQLite数据库?

来自分类Dev

随着SBT的发展,如何使用现有的Intellij项目?

来自分类Dev

如何在Eclipse中使用现有的.target文件?

来自分类Dev

如何使用JMX监视现有的Java类?

来自分类Dev

如何对现有的API使用Amazon API网关?

来自分类Dev

如何使用VueJS增强现有的Laravel项目?

来自分类Dev

如何使用计算目标获取现有的AKS

来自分类Dev

如何使用AWS CDK查找现有的ApiGateway

来自分类Dev

如何使用AWS CDK查找现有的ApiGateway

来自分类Dev

如何为kafka用户使用现有的avro模式?

来自分类Dev

如何使Netcat使用现有的HTTP代理

来自分类Dev

如何使用和运行现有的yeoman项目?

来自分类Dev

如何识别和使用现有的光纤安装?

来自分类Dev

如何对现有的API使用Amazon API网关?

来自分类Dev

如何使用PowerShell更新现有的AzureRm虚拟网络?

来自分类Dev

如何使Android Studio使用现有的.idea文件?

来自分类Dev

如何使用现有的 jmeter 脚本创建 jmeter 脚本

来自分类Dev

如何使用现有的 json 文件创建 tmTheme 文件?

来自分类Dev

如何使用 Python 打包现有的 C++ 项目?

来自分类Dev

如何使用 terraform 部署现有的 azure 函数

来自分类Dev

如何让 Alien 使用现有的 tarball 而不是下载?

来自分类Dev

如何在iOS中使用Braintree实施付款应用

来自分类Dev

Libre Office如何处理现有的Excel工作表以使其膨胀?

来自分类Dev

如何在 AngularJS 中处理现有的服务实例并注入新的服务实例?

Related 相关文章

  1. 1

    使用现有的 NodeJS Bot 处理网络聊天

  2. 2

    域更新为使用HTTPS(SSL)时,Google如何处理现有的索引HTTP链接〜

  3. 3

    如何在Dockerfile中使用现有的Docker Volume

  4. 4

    如何使用现有的fork更新我的github库?

  5. 5

    如何使用Eclipse打开现有的C ++项目?

  6. 6

    如何快速使用现有的SQLite数据库?

  7. 7

    随着SBT的发展,如何使用现有的Intellij项目?

  8. 8

    如何在Eclipse中使用现有的.target文件?

  9. 9

    如何使用JMX监视现有的Java类?

  10. 10

    如何对现有的API使用Amazon API网关?

  11. 11

    如何使用VueJS增强现有的Laravel项目?

  12. 12

    如何使用计算目标获取现有的AKS

  13. 13

    如何使用AWS CDK查找现有的ApiGateway

  14. 14

    如何使用AWS CDK查找现有的ApiGateway

  15. 15

    如何为kafka用户使用现有的avro模式?

  16. 16

    如何使Netcat使用现有的HTTP代理

  17. 17

    如何使用和运行现有的yeoman项目?

  18. 18

    如何识别和使用现有的光纤安装?

  19. 19

    如何对现有的API使用Amazon API网关?

  20. 20

    如何使用PowerShell更新现有的AzureRm虚拟网络?

  21. 21

    如何使Android Studio使用现有的.idea文件?

  22. 22

    如何使用现有的 jmeter 脚本创建 jmeter 脚本

  23. 23

    如何使用现有的 json 文件创建 tmTheme 文件?

  24. 24

    如何使用 Python 打包现有的 C++ 项目?

  25. 25

    如何使用 terraform 部署现有的 azure 函数

  26. 26

    如何让 Alien 使用现有的 tarball 而不是下载?

  27. 27

    如何在iOS中使用Braintree实施付款应用

  28. 28

    Libre Office如何处理现有的Excel工作表以使其膨胀?

  29. 29

    如何在 AngularJS 中处理现有的服务实例并注入新的服务实例?

热门标签

归档