Получение ответа типа пакетной выплаты, но я выполнил единовременную выплату, даже не вижу успеха вместо этого все время, ожидая PENDING batch_status - PullRequest
0 голосов
/ 09 мая 2019
  1. Я использую PAYPAL-PHP-SDK и работаю на macOS с php версии 7.1.4 и laravel версии 5.6. *.
  2. Я реализовал функциональность для однократной выплаты, предоставляемой PayPal, но получаю ответпакетной выплаты (работает с учетной записью песочницы)

Я также заметил, что со счета продавца я перевел 1 доллар, и он успешно переведен на счет покупателя, но я получаю BATCH_STATUS: "PENDING"также не получен ответ в виде PayPal, отображаемого для создания единой выплаты (синхронно)

Я попытался скопировать весь код из https://paypal.github.io/PayPal-PHP-SDK/sample/doc/payouts/CreateSinglePayout.html и вставить в мою программу и внести определенные изменения, связанные с адресом электронной почтыи изменил мой клиентский ключ и секретный ключ в файле bootstrap.php, но он показывает ответ, как BATCH PAYOUT.Еще одна вещь, которую я заметил, заключается в том, что в коде нет разницы между выплатами по партиям и выплатами по одной.Я также видел https://github.com/paypal/PayPal-node-SDK/issues/264, но, несмотря на успешное перечисление денег на счет покупателя, я получил статус пакета PENDING.

Я также пытался изменить режим синхронизации с true на false, так как теперь он устарел, но получилтот же ответ.

Вот мой код, который я сделал в контроллере laravel

require 'bootstrap.php';
    // Create a new instance of Payout object
    $payouts = new \PayPal\Api\Payout();
$senderBatchHeader = new \PayPal\Api\PayoutSenderBatchHeader();

// #### Batch Header Instance
$senderBatchHeader->setSenderBatchId(uniqid())
    ->setEmailSubject("You have a Payout!");

// #### Sender Item
// Please note that if you are using single payout with sync mode, you can only pass one Item in the request
$senderItem = new \PayPal\Api\PayoutItem();
$senderItem->setRecipientType('Email')
    ->setNote('Thanks for your patronage!')
    ->setReceiver('email@address.com')
    ->setSenderItemId("2014031400023")
    ->setAmount(new \PayPal\Api\Currency({
                        "value":"0.5",
                        "currency":"USD"
                    }));

$payouts->setSenderBatchHeader($senderBatchHeader)
    ->addItem($senderItem);


// For Sample Purposes Only.
$request = clone $payouts;

// ### Create Payout
try {
    // $output = $payouts->createSynchronous($this->_api_context);
    $output = $payouts->createSynchronous($apiContext);
} catch (Exception $ex) {
    ResultPrinter::printError("Created Single Synchronous Payout", "Payout", null, $request, $ex);
    exit(1);
}

 // ResultPrinter::printResult("Created Single Synchronous Payout", "Payout", $output->getBatchHeader()->getPayoutBatchId(), $request, $output);
return $output;

Мой ожидаемый результат примерно такой:

{
batch_header: {
payout_batch_id: "3975UQGFRGFPQ",
batch_status: "SUCCESS",
sender_batch_header: {
sender_batch_id: "5cd3cfdb8ca8f",
email_subject: "You have a Payout!"
}
},
items: {}
links: [
{
href: "https://api.sandbox.paypal.com/v1/payments/payouts/3975UQGFRGFPQ",
rel: "self",
method: "GET",
enctype: "application/json"
}
]
}

И мой фактический результатis

{batch_header: {payout_batch_id: "3975UQGFRGFPQ", batch_status: "PENDING", sender_batch_header: {sender_batch_id: "5cd3cfdb8ca8f", email_subject! "}}, ссылки: [{href: "https://api.sandbox.paypal.com/v1/payments/payouts/3975UQGFRGFPQ", rel:" self ", метод:" GET ", enctype:" application / json "}]}

...