Я пытаюсь реализовать финансирование escrow с помощью braintree в php. Я загрузил библиотеку отсюда . Мой код ниже: –
require_once "../braintree/lib/Braintree.php"; Braintree_Configuration::environment("sandbox"); Braintree_Configuration::merchantId("was4zgn5x6vt99h"); Braintree_Configuration::publicKey("ydjrasdwyw9npkvnw4"); Braintree_Configuration::privateKey("f197ac5a66a1fsad37d3950890b2cbda9"); $result = Braintree_Transaction::sale( array( 'amount' => "100.00", 'creditCard' => array( 'number' => "4111111111111111", 'expirationDate' => "12/2014", ), 'options' => array( 'submitForSettlement' => true, 'holdInEscrow' => true, ) ) ); echo "<pre>"; print_r("\n message: " . $result->message);
Он работает для прямой оплаты. Но он не работает на депонирование. Проверьте мой код.
Ошибка: –
"message: Transaction could not be held in escrow."
У меня есть код отсюда
Наконец, я получил реальный ответ от Брейнтри. Мне пришлось добавить еще два параметра. Один из merchantAccountId
: serviceFeeAmount
и другие – это serviceFeeAmount
. Здесь идентификатор merchantAccountId
является фактическим продавцом- merchantAccountId
. Вы получите merchantAccountId
от Braintree. После входа в систему перейдите к настройкам-> Обработка . В нижней части страницы вы получите View Merchant Account . Здесь вы получите merchantAccountId. Не используйте default merchantAccountId, он не будет работать.
require_once "../braintree/lib/Braintree.php"; Braintree_Configuration::environment("sandbox"); Braintree_Configuration::merchantId("was4zgn5x6vt99h"); Braintree_Configuration::publicKey("ydjrasdwyw9npkvnw4"); Braintree_Configuration::privateKey("f197ac5a66a1fsad37d3950890b2cbda9"); $result = Braintree_Transaction::sale( array( 'amount' => "100.00", 'merchantAccountId' => 'test_user_instant_5vcgn574', 'creditCard' => array( 'number' => "4111111111111111", 'expirationDate' => "12/2014", ), 'options' => array( 'submitForSettlement' => true, 'holdInEscrow' => true, ), 'serviceFeeAmount' =>'1' ) ); echo "<pre>"; print_r("\n message: " . $result->message);
Я думаю, что вам нужны две вещи:
Пропустите файл merchant_account_id – см. Пример на https://www.braintreepayments.com/docs/php/transactions/escrow
Вы можете делать только депонирование, если ваш торговый счет использует Marketplace. https://www.braintreepayments.com/docs/php/guide/marketplace
Я думаю, вы допустили ошибку в своем коде:
'options' => array( 'submitForSettlement' => true, 'holdInEscrow' => true, )
Должно быть:
'holdInEscrow' => true
Не должно быть запятой после 'holdInEscrow' => true