我知道这是一个非常具体的问题,但我之前得到了一些很好的帮助。我已经在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经验的人都能发现问题。
谢谢:)
答案 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
希望这有帮助。