Ответ 1
Это потому, что Express Checkout и Website Payments Standard являются принципиально разными продуктами.
Чтобы использовать Express Checkout, вы должны вызвать API SetExpressCheckout. В вызове API вы указываете детали продуктов, сумм и RETURNURL.
Как только вы разместите эти данные в конечной точке API PayPal, вы получите в ответ токен.
Затем вы перенаправите покупателя и добавите токен по следующему URL-адресу: https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-XXXXXXX
Как только покупатель согласится на вашу покупку, он перенаправляется обратно на URL-адрес, указанный вами в RETURNURL.
Теперь вы должны подтвердить подтверждение заказа и вызвать API GetExpressCheckoutDetails **.
При вызове GetExpressCheckoutDetails поставьте токен. В ответе API GetExpressCheckoutDetails вы найдете идентификатор PayerID.
Теперь вы можете позвонить в DoExpressCheckoutPayment и зарядить покупателя. Не забывайте включать токен и идентификатор плательщика при вызове DoExpressCheckoutPayment.
Примечание.. Если вы хотите сразу же зарядить покупателя, немедленно позвонив GetExpressCheckoutDetails и DoExpressCheckoutPayment, перенаправите покупателя на https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-XXXXXXX&useraction=commit.
useraction=commit
изменит кнопку "Продолжить" на странице PayPal "Просмотрите платеж" на кнопку "Оплатить сейчас".
-
Причина такой существенной разницы между Express Checkout и стандартом оплаты веб-сайтов заключается в том, что Стандарт платежей по веб-сайтам предназначен для того, чтобы быть рабочим решением, которое PayPal обрабатывает весь поток транзакций. Express Checkout - это более гибкое решение, которое позволяет вам глубоко интегрировать его с существующим потоком проверок веб-сайта/корзины покупок.
Для вашего случая использования; lookat с помощью кнопок загрузки PayPal. См. Пример https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_cart_upload
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="business" value="[email protected]">
<input type="hidden" name="item_name_1" value="Item Name 1">
<input type="hidden" name="amount_1" value="1.00">
<input type="hidden" name="item_name_2" value="Item Name 2">
<input type="hidden" name="amount_2" value="2.00">
<input type="submit" value="PayPal">
</form>
Обратите внимание, что это по умолчанию небезопасно, так как суммы, которые вы собираетесь взимать, будут явно видны в HTML.
** Плательщик добавляется в GET вашего RETURNURL. Поэтому вы можете пропустить вызов GetExpressCheckoutDetails, если хотите.