我第一次在Brain树上工作,并在第一步就遇到了问题。我无法使用iOS + php
访问drop-in功能我需要创建客户端令牌,而不使用这些代码,我真的不明白什么是问题。请告诉我如何生成客户端令牌。
$clientToken = Braintree_ClientToken::generate(array(
"customerId" => $aCustomerId
));
答案 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指南中没有很好地解释。希望有所帮助