2015-04-09 2 views
1

Я включил Express Checkout на свой сайт и, похоже, работает отлично с кодом, который я получил с веб-сайта PayPal.Сумма не отображается в корзине Paypal в режиме Sole

Однако попытка изменить его, чтобы сделать Paypal необязательным, вызывает странную проблему.

Сумма платежа, кажется, не переходит на страницу.

У меня есть две версии одного и того же процесса.

http://coupons.exaget.com/paypal/expresscheckout.php?price=20 и http://coupons.exaget.com/paypal-sole/expresscheckout.php?price=20

Единственное различие между ними состоит в две строки в paypalfunctions.php, которые комментируются в 1-ом месте. Это показано ниже, где прокомментированы последние две строки.

Цены (по URL) передаются правильно в первом случае, но не во втором.

Любые предложения?

function CallShortcutExpressCheckout($paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL) 
{ 
//------------------------------------------------------------------------------------------------------------------------------------ 
// Construct the parameter string that describes the SetExpressCheckout API call in the shortcut implementation 

$nvpstr="&PAYMENTREQUEST_0_AMT=". $paymentAmount; 
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_PAYMENTACTION=" . $paymentType; 
$nvpstr = $nvpstr . "&RETURNURL=" . $returnURL; 
$nvpstr = $nvpstr . "&CANCELURL=" . $cancelURL; 
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_CURRENCYCODE=" . $currencyCodeType; 
// $nvpstr = $nvpstr . "&SOLUTIONTYPE=" ."Sole"; //Buyer does not need to create a PayPal account to check out. This is referred to as PayPal Account Optional. 
// $nvpstr = $nvpstr . "&LANDINGPAGE=Billing"; //Type of PayPal page to display. It is one of the following values:Billing – Non-PayPal account 

ответ

0

ли или не установлен вы SOLUTIONTYPE=Sole не должны иметь ничего общего с ним.

Экспресс заказ будет отображать сумму покупки на покупателя, когда один (или оба) из следующих условий:

  • Вы поставляете строки сведений об элементе (PAYMENTREQUEST_0_ITEMAMT, L_PAYMENTREQUEST_0_NAMEn, L_PAYMENTREQUEST_0_AMTn, L_PAYMENTREQUEST_0_QTYn и т.д.) в в этом случае покупателю будет показана полная информация о позиции, которую вы передадите.
  • Вы указываете параметр useraction=commit в URL-адресе при перенаправлении покупателя на PayPal (например, https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=...&useraction=commit). В этом случае покупателю будет показана сумма, которую вы передаете (PAYMENTREQUEST_0_AMT). Если вы передадите данные позиции, они также будут показаны покупателю.
0

Спасибо, Мэтт. Да, передача данных позиции решает это. И от поддержки PayPal: Похоже, что для отображения итогового итога на экране платежа отображаются позиции (amt, qty). Paypal вводит новый поток, который не имеет обязательного требования к позициям. Итак, причина, по которой работала одна из моих реализаций, заключалась в том, что она всегда высаживалась в новом потоке, а другая - в том, что PayPal имеет в виду как Legacy Flow.

Смежные вопросы