Я использую Paypal Express Checkout и все хорошее, за исключением того, что перевозчик не обновляется при вызове Callback.
Я могу проверить, вызван ли обратный вызов (звонок регистрируется). Когда Paypal вызывает URL-адрес обратного вызова в стране доставки клиента, я возвращаю следующие значения.
METHOD=CallbackResponse&OFFERINSURANCEOPTION=false&CURRENCYCODE=USD&TOKEN=EC-5Fsdf5523823&LOCALECODE=en_US&L_SHIPPINGOPTIONNAME0=USPS&L_SHIPPINGOPTIONLABEL0=First+Class+%283-7+Days%29&L_SHIPPINGOPTIONAMOUNT0=0.00&L_SHIPPINGOPTIONISDEFAULT0=true&L_TAXAMT0=0.00&L_INSURANCEAMOUNT0=0.00&L_SHIPPINGOPTIONNAME1=USPS&L_SHIPPINGOPTIONLABEL1=Priority+%282-3+Days%29&L_SHIPPINGOPTIONAMOUNT1=7.95&L_SHIPPINGOPTIONISDEFAULT1=false&L_TAXAMT1=0.00&L_INSURANCEAMOUNT1=0.00&L_SHIPPINGOPTIONNAME2=UPS&L_SHIPPINGOPTIONLABEL2=Next+Day+Air&L_SHIPPINGOPTIONAMOUNT2=39.95&L_SHIPPINGOPTIONISDEFAULT2=false&L_TAXAMT2=0.00&L_INSURANCEAMOUNT2=0.00
Сообщение об обратном вызове echo'd через PHP (я даже попытался сохранить это как файл txt и указать URL обратного вызова в этот файл), даже тогда Paypal не обновляет метод доставки.
Я также изменил CALLBACKTIMEOUT до 6 секунд, но это не имеет значения. Я использую HTTPS, а также пробовал его с обычным HTTP.
Я тестирую это в режиме песочницы.
Кто-нибудь может мне помочь? Я действительно застрял здесь, и я искал подобные проблемы, но не смог найти.
Для вашей информации я следовал этому руководству Paypal: https://developer.paypal.com/docs/classic/paypal-payments-pro/integration-guide/WPInstantUpdateAPI/
Я также проверил, возвращаю ли я все необходимые поля, как описано здесь: https://developer.paypal.com/docs/classic/api/merchant/Callback_API_Operation_NVP/
Надеюсь, кто-то может мне помочь, спасибо заранее!
ОБНОВИТЬ
Я пробую НЕТ ПЕРЕВОЗКИ
METHOD=CallbackResponse&NO_SHIPPING_OPTION_DETAILS=1&CALLBACKVERSION=95.0
Paypal отвечает «не отправляет товар в это место. Пожалуйста, используйте другой адрес. Таким образом, URL-адрес ответа работает, проблема в том, что при ответе на другие варианты доставки.
С уважением, Куроуду
У меня были те же проблемы, что и у вас, но затем я попробовал код примера из руководства по интеграции Instant Update PayPal и добавил его как текстовый файл на моем сервере:
METHOD=CallbackResponse&OFFERINSURANCEOPTION=true&L_SHIPPINGOPTIONNAME0=UPS+Air&L_SHIPPINGOPTIONLABEL0=UPS+Next+Day+Air+Freight&L_SHIPPINGOPTIONAMOUNT0=20.00&L_TAXAMT0=2.20&L_INSURANCEAMOUNT0=1.51&L_SHIPPINGOPTIONISDEFAULT0=false&L_SHIPPINGOPTIONNAME1=UPS+Expedited&L_SHIPPINGOPTIONLABEL1=UPS+Express+2+Days&L_SHIPPINGOPTIONAMOUNT1=10.00&L_TAXAMT1=2.00&L_INSURANCEAMOUNT1=1.35&L_SHIPPINGOPTIONISDEFAULT1=true&L_SHIPPINGOPTIONNAME2=UPS+Ground&L_SHIPPINGOPTIONLABEL2=UPS+Ground+2+to+7+Days&L_SHIPPINGOPTIONAMOUNT2=5.99&L_TAXAMT2=1.99&L_INSURANCEAMOUNT2=1.28&L_SHIPPINGOPTIONISDEFAULT2=false
Это, по крайней мере, дало мне CallbackResponse, который, наконец, работал, и затем я мог обновить его с помощью программирования, чтобы он оставался в стороне. Провел много часов, вырывая мои волосы. Поскольку PayPal на самом деле не предоставляет каких-либо средств для отладки CallbackResponses, я был счастлив иметь функциональную отправную точку.
Надеюсь, это поможет указать другим в правильном направлении.