В настоящее время у нас есть два независимых от magento сайта. Один ведет себя как витрина, а другой как бэкэнд. Пользователь может разместить заказ на переднем конце.
Такой же порядок я пытаюсь создать программно на бэкэнде. Когда пользователь платит через checkmo
способ оплаты, это работает. Но когда пользователь платит через PayPal, он не работает. Кто-нибудь знает, как мы можем создать заказ программно, используя способы оплаты PayPal? Это возможно или нет?
$quote->getPayment()->importData(array(3) {
[method] => paypal_express
[last_trans_id] => 65Y31421KL2753028
[additional_information] => Array
(
[paypal_express_checkout_shipping_method] =>
[paypal_payer_id] => 5LX84SUFY39L4
[paypal_payer_email] => abbas-buyer-2@bluewisesoft.com
[paypal_payer_status] => verified
[paypal_address_status] => Confirmed
[paypal_correlation_id] => b78b4e5e6e527
[paypal_express_checkout_payer_id] => 5LX84SUFY39L4
[paypal_express_checkout_token] => EC-7P402752023166448
[paypal_express_checkout_redirect_required] =>
[paypal_protection_eligibility] => Eligible
[paypal_payment_status] => pending
[paypal_pending_reason] => authorization
)
});
Ошибка: шлюз PayPal отклонил запрос. Для этого токена уже завершена успешная транзакция (# 10415: транзакция отклонена из-за неверного аргумента. Дополнительные сведения см. В дополнительных сообщениях об ошибках).
Ответы:
Создание заказа с использованием фактического способа оплаты PayPal невозможно, так как вам нужно будет сделать фактический платеж. Вот почему PayPal отклоняет запрос; Вам также необходимо отправить токен (чтобы инициировать запрос) в PayPal, чтобы они могли его проверить.
Поскольку на самом деле вам не нужен второй платеж, но он нужен для ведения учета (насколько я могу прочитать), было бы разумно создать поддельный метод оплаты PayPal для другого экземпляра Magento и установить его в качестве метода оплаты при передаче приказ.
Как Inchoo уже объяснил это подробно (это не так сложно, как кажется, так как вам нужно будет только реализовать часть Magento), я не буду здесь копировать / вставлять, а только дам вам ссылку; http://inchoo.net/magento/how-to-create-magento-payment-module/
Просто назовите его «paypal_proxy_payment» или что-то в этом роде, и используйте этот метод, и все готово!
источник
Я делюсь одной ссылкой в своем ответе, просмотрите ее и скопируйте, вставьте код в свой пользовательский контроллер, затем вам нужно изменить способ оплаты.
внутри
вместо
checkmo
вы можете написать свой способ оплаты.Пожалуйста, проверьте это.
источник