Я пытаюсь оформить заказ на мою стороннюю корзину с PayPal. Я помещаю все значения точно так же, как на веб-странице PayPal «https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/cart_upload/».
Я получаю название продукта из моей базы данных. Проблема в том, что это происходит в первый раз, но когда я добавляю другой продукт в свою корзину и нажимаю кнопку «Купить», чтобы перейти на страницу магазина PayPal, он просто получает один элемент из моей базы данных. Я положил 3 предмета, чтобы проверить это.
Может ли кто-нибудь помочь мне?
Мой код:
<form action="https://www.sandbox.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="<?php echo $product; ?>" />
<input type="hidden" name="item_number_1" value="<?php echo $id; ?>" />
<input type="hidden" name="amount_1" value="<?php echo $price; ?>" />
<input type="hidden" name="quantity_1" value="<?php echo $qty; ?>" />
<input type="hidden" name="currency_code" value="USD" />
<input type="hidden" name="lc" value="US" />
<input type="hidden" name="rm" value="2" />
<input type="hidden" name="return" value="products.php" />
<input type="hidden" name="cancel_return" value="cart.php" />
<input type="hidden" name="notify_url" value="paypal.php" />
<input type="hidden" name="charset" value="utf-8" />
</form>
Я думаю, что вы путаете два различных метода / продукта интерфейса PayPal, корзину покупок PayPal (https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/paypal_shopping_cart/) и функцию сторонней корзины PayPal (на которую вы ссылаетесь в своем вопросе).
Корзина покупок PayPal просит PayPal управлять корзиной для вас и несколькими
При вызове «добавить в корзину» в PayPal будет постепенно формироваться корзина товаров, которую затем можно будет оплачивать как группу одним вызовом оформления заказа. Вы комбинируете cmd = _cart с функциями «добавить» или «просмотреть», чтобы изменить или просмотреть корзину на сайте PayPal, и с этой страницы, размещенной на PayPal, покупатель может инициировать оформление заказа.
Функция проверки третьей стороной предполагает, что у вас есть корзина на вашем сайте, и вы управляете добавлением и удалением товаров из этой корзины; в этом случае вы звоните в PayPal только тогда, когда у покупателя есть готовая корзина, и он хочет оформить заказ. В этой модели релевантна только последняя отправка формы PayPal — она перезаписывает любые предыдущие вызовы (которые будут считаться прерванными платежами). Это сделано специально: пользователь может подумать о покупке 3 вещей, но вернуться на свой сайт, решить добавить или удалить некоторые товары, а затем принять решение о покупке измененной корзины. При использовании этого способа PayPal не поддерживает состояние между несколькими вызовами команды _cart. Это использование контролируется использованием ввода «upload» в паре с командой _cart, как вы делали выше.
Если вы хотите положить что-то в корзину PayPal, затем добавить еще несколько вещей в корзину, а затем оформить заказ на все из них, вам нужно переключиться на PayPal Shopping Cart, что означает не использовать «upload» и вместо этого использовать команды «add» (плюс некоторые другие изменения, как указано в документации).
Других решений пока нет …