Это связано с тем, что Express Checkout и Standard 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. useraction=commit
заменит кнопку «Продолжить» на странице «Просмотр платежа» PayPal на кнопку «Оплатить сейчас».
--
Причина такой существенной разницы между Express Checkout и Стандартом платежей через веб-сайт заключается в том, что Стандарт платежей через веб-сайт предназначен для использования в качестве рабочего решения, в котором PayPal обрабатывает весь поток транзакций. Express Checkout — это более гибкое решение, которое позволяет глубоко интегрировать его с существующим потоком оформления заказа на веб-сайте или в корзине покупок.
Для вашего варианта использования; посмотрите с помощью кнопок 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.
** PayerID также добавляется в GET вашего RETURNURL. Таким образом, вы можете пропустить вызов GetExpressCheckoutDetails, если хотите.
person
Robert
schedule
02.11.2011
DoExpressCheckoutPayment
требуется (или даже доступен) только для API Express Checkout и Website Payments Pro. - person Kenny Evitt   schedule 19.07.2012