在iOS + php中使用braintree生成客户端令牌

时间:2015-04-01 04:45:39

标签: php ios braintree

我第一次在Brain树上工作,并在第一步就遇到了问题。我无法使用iOS + php

访问drop-in功能

我需要创建客户端令牌,而不使用这些代码,我真的不明白什么是问题。请告诉我如何生成客户端令牌。

$clientToken = Braintree_ClientToken::generate(array(
"customerId" => $aCustomerId
));

1 个答案:

答案 0 :(得分:1)

我在iOS中遇到了同样的错误 - xCode告诉我,client_token的格式错误,它期待一个关联数组,但上面的代码只返回一个对象。试试这个 - 为我工作:

$aCustomerId = '';

$clientToken["client_token"] = Braintree_ClientToken::generate(array("customerId" => $aCustomerId));
return ($clientToken);

注意我没有在这里设置customerId - 您可以放入一个,或者您可以完全从代码中删除它,即完全删除'array(“customerId”=> $ aCustomerId)'。它应该以任何方式工作。

注意:这是服务器端PHP脚本,而不是XCode

编辑: 当您使用braintree函数(:: create或:: sale)创建客户时,您可以在“customer”数组下分配您选择的“id”,例如:

$result = Braintree_Transaction::sale(array(
        'amount' => $value,
        'customer' => array(
            'id' => $anIdOfYourChoosing,
)
));

然后,下次您创建一个:: sale时,您可以在销售数组中调用'customerId',它将使用该客户之前设置的付款详细信息,例如

$result = Braintree_Transaction::sale(array(
            'amount' => $value,
            'customerId' => $anIdOfYourChoosing,
    )
    ));

因此,在clientToken情况下,如果将值传递给$ aCustomerId,它将在Braintree保险库中搜索该customerId,并为该客户提供一个令牌(前提是该客户是先前创建的)。目前在Braintree指南中没有很好地解释。希望有所帮助