Как отправлять платежи нескольким получателям?

#php #laravel #paypal

#php #laravel #paypal

Вопрос:

Я ценю ваш совет по этому вопросу. Я искал способ отправлять платежи нескольким получателям из PayPal в течение нескольких дней, я разрабатываю платформу в Laravel, и я попробовал api-sdk-php, и это отлично работает для отдельных платежей, однако у меня нет соответствующего метода для создания счета, подобного этому.

2 Теннис 25 $

nike@paypal.com

1 Redmi 10 $ 150

xiami@paypal.com

Я просмотрел множество тем, в некоторых упоминаются адаптивные платежи PayPal, однако, когда я просматриваю документацию, она показывает мне, что этот формат оплаты устарел, и параметр APP_ID в настоящее время я не смог получить.

Я также прочитал и попробовал несколько руководств, но в итоге я использовал устаревший код, я нашел библиотеки с крошечной документацией, кроме официальной PayPal, с каждым днем я становлюсь все более дезориентированным, я ценю помощь и советы, которые вы можете мне дать для достижения цели, и оставляю ответ, что я могу помочь другим в будущем.

Ответ №1:

Да, адаптивные платежи устарели еще в декабре 2017 года

В настоящее время не существует решения для параллельных платежей общего назначения. Вероятно, лучше всего посмотреть, можете ли вы получить одобрение на выплаты с учетной записью, которую вы контролируете, и чтобы эта учетная запись была основным получателем: https://developer.paypal.com/docs/payouts/integrate/prerequisites /

Затем вы можете отправлять выплаты с этой учетной записи любому второму получателю (ам) с дополнительными вызовами API.

Ответ №2:

Я нашел свое решение для Laravel или PHP, адаптивные платежи все еще работают, я использовал этот старый метод и сумел создать счет-фактуру нескольких получателей и получать в своих учетных записях в изолированной среде.

Я поделюсь своим открытием, чтобы другие тоже могли извлечь выгоду, хотя я не могу поставить себе в заслугу, решение найдено на канале YouTube optikalefx и поддерживает меня с помощью API PayPal.

Вот решение, я надеюсь, оно поможет другим программистам

     $createPacket = array(
        "actionType" => "PAY", // Payment action type
        "currencyCode" => "USD", // Payment currency code
        "receiverList" => array(
            "receiver" => array(
                array(
                    "amount" => "25", // Payment amount
                    "email" => "nike@paypal.com", // Receiver's email address
                ),
                array(
                    "amount" => "150", // Payment amount
                    "email" => "xiaomi@paypal.com", // Receiver's email address
                ),

            ),
        ),
        "returnUrl" => url("/"), // Redirect URL after approval
        "cancelUrl" => url("/"), // Redirect URL after cancellation
        "requestEnvelope" => array(
            "errorLanguage" => "en_US", // Language used to display errors
            "detailLevel" => "ReturnAll", // Error detail level
        ),
    );

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://svcs.sandbox.paypal.com/AdaptivePayments/Pay');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($createPacket));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        "X-PAYPAL-SECURITY-USERID:" . "YOUR_USER_ID",
        "X-PAYPAL-SECURITY-PASSWORD:" . "YOUR_SECURITY_PASSWORD",
        "X-PAYPAL-SECURITY-SIGNATURE:" . "YOUR_SIGNATURE",
        "X-PAYPAL-APPLICATION-ID: APP-80W284485P519543T", //USE THIS Global SANDBOX APP ID 
        "X-PAYPAL-REQUEST-DATA-FORMAT: JSON",
        "X-PAYPAL-RESPONSE-DATA-FORMAT: JSON",
    ]);

    $response = json_decode(curl_exec($ch), true);
    return redirect("https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_ap-paymentamp;paykey=".$response['payKey']));