#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']));