Я работаю над Brain tree впервые и получаю проблемы на первом этапе. Я не могу получить доступ к функциональности с помощью iOS + php
Мне нужно создать маркер клиента, который не работает с этим кодом, и я действительно не понимаю, в чем проблема. Пожалуйста, скажите мне, как генерировать клиентский токен.
$clientToken = Braintree_ClientToken::generate(array(
"customerId" => $aCustomerId
));
Я только что столкнулся с этой же ошибкой в iOS — xCode говорил мне, что client_token был в неправильном формате, он ожидал ассоциативный массив, но код выше просто возвращает один объект. Попробуйте это вместо этого — работал для меня:
$aCustomerId = '';
$clientToken["client_token"] = Braintree_ClientToken::generate(array("customerId" => $aCustomerId));
return ($clientToken);
Обратите внимание, что я не устанавливаю здесь customerId — вы можете вставить его или полностью удалить из кода, то есть полностью удалить ‘array («customerId» => $ aCustomerId). это должно работать в любом случае.
NB: Это в PHP-скрипте на стороне сервера, а не в XCode
Редактировать:
Когда вы создаете клиента с помощью функции braintree (либо: create, либо :: sale), вы можете назначить «id» по вашему выбору в массиве «customer», например:
$result = Braintree_Transaction::sale(array(
'amount' => $value,
'customer' => array(
'id' => $anIdOfYourChoosing,
)
));
Затем в следующий раз, когда вы создадите :: sale, вы можете вызвать ‘customerId’ в массиве sale, и он будет использовать ранее установленные реквизиты этого клиента, например,
$result = Braintree_Transaction::sale(array(
'amount' => $value,
'customerId' => $anIdOfYourChoosing,
)
));
Таким образом, в случае clientToken, если вы передадите значение в $ aCustomerId, он выполнит поиск хранилища Braintree для этого customerId и выдаст вам токен для этого клиента (при условии, что клиент был ранее создан). Это не очень хорошо объяснено в руководствах Брэйнтри в настоящее время. надеюсь, это поможет
Других решений пока нет …