Ошибка API PayPal — ошибка при обработке платежа

Я знаю, что это довольно специфический вопрос, но раньше мне удавалось получить большую помощь. Я уже разместил это на сайте разработчиков PayPal (www.x.com), но пока не получил ответа.

Я пытался создать кнопку PayNow с помощью API BMCreateButton через NVP. Я получаю сообщение об успехе и код кнопки, однако всякий раз, когда кто-либо нажимает кнопку, они мгновенно отображают сообщение:

"Ошибка обработки платежа
Ваш платеж не может быть обработан. Свяжитесь с продавцом напрямую и сообщите этот код."

Код, который я использую для создания кнопки, выглядит следующим образом:

$sendData = array(
    "METHOD" => "BMCreateButton",
    "VERSION" => "65.2",
    "USER" => "[username]",
    "PWD" => "[password]",
    "SIGNATURE" => "[signature]",
    "BUTTONCODE" => "ENCRYPTED",
    "BUTTONTYPE" => "PAYMENT",
    "BUTTONSUBTYPE" => "SERVICES",
    "BUTTONCOUNTRY" => "GB",
    "BUTTONIMAGE" => "reg",
    "L_BUTTONVAR1" => "item_number=$userID",
    "L_BUTTONVAR2" => "item_name=$invoiceID",
    "L_BUTTONVAR3" => "subtotal=$invoiceTotal",
    "L_BUTTONVAR4" => "currency_code=GBP",
    "L_BUTTONVAR5" => "no_shipping=1",
    "L_BUTTONVAR6" => "no_note=1",
    "L_BUTTONVAR7" => "notify_url=[full url to ipn]",
    "L_BUTTONVAR8" => "cancel_return=[full url to cancel]",
    "L_BUTTONVAR9" => "return=[full url to return]"
    );


$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_URL, 'https://api-3t.sandbox.paypal.com/nvp?'.http_build_query($sendData));

$nvpReturn = curl_exec($curl);
curl_close($curl);

Результат, которого я действительно хочу, заключается в том, чтобы я мог создать кнопку «на лету» для каждого из наших счетов-фактур пользователей, которые могут различаться по сумме (например, с просроченными платежами, надстройками и т. д.).

Просто интересно, может ли кто-нибудь, у кого есть опыт API PayPal NVP, обнаружить проблему.

Спасибо :)


person lethalMango    schedule 23.02.2011    source источник


Ответы (2)


На самом деле я нашел ответ, часами возясь со значениями, пока, наконец, не сработало. В конечном итоге это было подтверждено PayPal на сайте www.x.com.

Были внесены следующие изменения:

"BUTTONTYPE" => "PAYMENT", to "BUTTONTYPE" => "BUYNOW",

и

"L_BUTTONVAR3" => "subtotal=$invoiceTotal", to "L_BUTTONVAR3" => "amount=$invoiceTotal",

По-видимому, варианты, которые я использовал, были для их размещенных способов оплаты / корзины (не то, чтобы они упоминались где-либо в их документации).

Ничего себе, добрался до конца.

person lethalMango    schedule 01.03.2011

Я сам изучал эту проблему, после долгих поисков я наткнулся на скрипт, похожий на этот. Я не могу найти исходный пост, но скрипт, похоже, делает то же самое.

https://www.x.com/blogs/magarvin/2011/02/25/bmcreatebutton-api-example--create-buttons-on-the-fly

Надеюсь это поможет.

person quidpro    schedule 25.02.2011