Иметь описание товара и налоги на Paypal

В настоящее время я работаю над интернет-магазином, и я хотел добавить Paypal в качестве способа оплаты. Я начал с Экспресс-оплаты, которая работала нормально, пока я не попытался добавить налоги. Проблема с Express Checkout заключается в том, что мне нужно будет рассчитать сумму налогов и отправить ее вместе с остальной информацией. Моя проблема в том, что мне нужно знать, откуда клиент, чтобы я мог скорректировать сумму налога. Я пытался использовать Adaptive Payments, но когда дело доходит до описания заказа, он показывает только получателей (например, [email protected]), поэтому я не могу добавить несколько элементов, как в Express. Оформить заказ, так как это не сработало, я не пытался проверить, работает ли налог с этим методом.

Итак, я хотел бы знать...

  1. Как я могу получить адрес клиента, чтобы показать ему налоги в деталях заказа с помощью экспресс-оплаты?

  2. Если это невозможно, могу ли я изменить детали заказа адаптивного платежа?

Предполагается, что есть способ получить адрес перед выполнением DoExpressCheckout и изменить там сумму налога, используя MAXAMT в SetExpressCheckout, но клиент увидит сумму налога только на моем веб-сайте, а не на странице Paypal, что, на мой взгляд, довольно странно.

Изменить 1

Теперь, когда я добавил обратный вызов, у меня запрашивается фиксированная ставка за доставку.

Вот строка моего запроса...

'&METHOD=SetExpressCheckout'.
'&AMT='.$subTotal.
'&MAXAMT='.round($subTotal*1.13, 2,PHP_ROUND_HALF_EVEN).
'&RETURNURL='.$returnUrl.
'&CANCELURL='.$cancelUrl.
'&CALLBACK='.$callbackUrl.
'&CALLBACKTIMEOUT=10'.
'&L_SHIPPINGOPTIONISDEFAULT0=true'.
'&L_SHIPPINGOPTIONNAME0=FreeShipping'.
'&l_shippingOptionLabel0=FreeShipping'.
'&L_SHIPPINGOPTIONAMOUNT0=0.00'.
'&SHIPPINGAMT=0.00'.
'&CURRENCYCODE='.$currencyCode.
 $desc. //Contains every item description
'&TAXAMT=0.00'.
'&ITEMAMT='.$subTotal.
'&LOCALECODE=EN';

Изменить 2

Итак, теперь SetExpressCheckout работает, но мой запрос обратного вызова не...

'&METHOD=Callback'.
'&L_AMT0='.
'&PAYMENT_0_REQUESTAMT='.round($subTotal*1.13, 2,PHP_ROUND_HALF_EVEN).
'&CURRENCYCODE='.$_SESSION['Currency'].
'&L_TAXAMT0='.round($subTotal*0.13, 2,PHP_ROUND_HALF_EVEN).
'&ITEMAMT='.round($subTotal*1.13, 2,PHP_ROUND_HALF_EVEN).
'&LOCALECODE=EN';

Я попробовал Callback и CallbackRequest для метода, и когда я захожу на саму страницу, я всегда получаю "Указанный метод не поддерживается".

Я действительно не знаю, что попробовать на данный момент.


person Gabriel Paquet-St-Onge    schedule 07.08.2013    source источник


Ответы (1)


Вы можете использовать CallBack API, чтобы правильно обновить это на странице оплаты PayPal. Вы перешли бы первоначальную сумму на налоги/доставку. Затем, как только покупатель введет свой адрес или войдет в свою учетную запись, CallBack API отправит информацию для расчета расходов и отображения их покупателю. Подробнее об этом можно узнать в руководстве для разработчиков. на странице 59.

person PP_MTS_Chad    schedule 07.08.2013
comment
Я не мог заставить это работать раньше, но с документацией, которую вы мне дали, я думаю, что сделал это, но теперь я получаю отсутствуют варианты доставки с фиксированной ставкой. Фиксированные варианты доставки отсутствуют; вы должны указать варианты доставки с фиксированной ставкой, когда вы указываете URL-адрес обратного вызова. Я зашел в свой профиль PayPal и прямо сейчас добавил некоторые тарифы для Канады (тестирование) с Канадой, но я все еще получаю сообщение, есть идеи, почему? - person Gabriel Paquet-St-Onge; 08.08.2013
comment
Вам нужно будет передать доставку в запросе API SetExpressCheckout. - person PP_MTS_Chad; 09.08.2013
comment
Я передаю доставку через запрос... Я отредактировал вопрос со строкой запроса. Я пробовал с 0 $ и больше, всегда одна и та же ошибка. - person Gabriel Paquet-St-Onge; 09.08.2013
comment
Ну у меня заработало! Я отмечу это как ответ, так как именно это заставило меня найти решение! Спасибо! - person Gabriel Paquet-St-Onge; 12.08.2013
comment
Ну, я просто понимаю, что обратный вызов ничего не делает. Я отредактировал вопрос во второй раз, чтобы добавить запрос обратного вызова. - person Gabriel Paquet-St-Onge; 13.08.2013