PayPal API错误 - 处理付款时出错

时间:2011-02-23 11:58:10

标签: php paypal

我知道这是一个非常具体的问题,但我之前得到了一些很好的帮助。我已经在PayPal的开发者网站(www.x.com)上发布了这个,但还没有回应。

我一直试图通过NVP使用BMCreateButton API创建一个PayNow按钮。我收到成功消息和按钮代码,但无论何时任何人点击按钮,他们都会立即显示消息:

“处理付款时出错 您的付款无法处理。请使用此代码直接与商家联系。“

我用来生成按钮的代码如下:

$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);

我真正想要的结果是,我可以为我们的每个用户发票创建一个按钮,金额可能会有所不同(即延迟收费,添加等)。

只是想知道是否有任何具有PayPal NVP API经验的人都能发现问题。

谢谢:)

2 个答案:

答案 0 :(得分:4)

我实际上通过弄乱数小时的数值来找到答案,直到最后一个工作。这最终由PayPal在www.x.com上确认。

进行了以下更改:

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

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

显然我使用的选项是他们托管的付款/购物车付款方式(并不是在文档中的任何地方都提到这些)。

没关系,最后到达那里。

答案 1 :(得分:0)

我自己正在研究这个问题,经过大量搜索,我遇到了类似于此的脚本。我找不到原帖,但脚本似乎做了同样的事情。

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

希望这有帮助。