我遇到了paypal API和重新付款的问题。我已经在使用沙盒测试帐户:
define('API_USERNAME', 'API-USERNAME');
define('API_PASSWORD', 'API-PASSWORD');
define('API_SIGNATURE', 'API-SIGNATURE');
define('API_ENDPOINT', 'https://api-3t.sandbox.paypal.com/nvp');
define('PAYPAL_URL', 'https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&token=');
define('PAYPAL_ENVIRONMENT', 'sandbox');
但是当我尝试添加我的实时凭据时,我只能在点击结帐后看到错误:
define('API_USERNAME', 'API-Username');
define('API_PASSWORD', 'API-PASS');
define('API_SIGNATURE', 'API-Signature');
define('API_ENDPOINT', 'https://api-3t.paypal.com/nvp');
define('PAYPAL_URL', 'https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=');
define('PAYPAL_ENVIRONMENT', 'live');
当我点击结账时,网站显示错误:
SetExpressCheckout failed: Array
(
[TIMESTAMP] => 2014%2d02%2d01T11%3a53%3a32Z
[CORRELATIONID] => 4caf5dc7552f2
[ACK] => Failure
[VERSION] => 98%2e0
[BUILD] => 9285531
[L_ERRORCODE0] => 11813
[L_SHORTMESSAGE0] => Callback%20URL%20is%20wrong%20type%2e
[L_LONGMESSAGE0] => Callback%20URL%20is%20wrong%20type%3b%20you%20must%20use%20the%20HTTPS%2e
[L_SEVERITYCODE0] => Error
)
我会很乐意提供任何帮助! 非常感谢
答案 0 :(得分:0)
看起来你的PAYPAL_URL
错了。你需要重新检查一下。我认为应该如下。
https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=
<强>更新强>
如果您拥有Express选项,则会发生这种情况:Transfer Shipping Options = Yes
但您的网站没有HTTPS地址。它将运输选项传递给PayPal,以便客户可以在PayPal的网站上更改其订单的运输。这种信息传输非常正确,只能使用HTTPS完成。
如果您将该选项设置为“否”,那么您的客户将被重定向回您的网站以选择发货,从而使结帐流程不那么明确。
您可以获得SSL certificate
,以便PayPal使用HTTPS或设置Transfer shipping option to No
。
希望它可以帮到你!
答案 1 :(得分:0)
您的回调网址必须为HTTPS。这可能是指在表单中发布或在Paypal中定义的notify_url。
答案 2 :(得分:0)
使用回调网址,以便您可以构建一个PayPal的评论页面将“回拨”的网络服务,以便将实时的运费和销售计算提取到他们的评论页面中,以便用户可以在那里完成付款。
在您的SetExpressCheckout请求中,您必须设置错误的回调参数。既然你不确定它是什么,我会假设你实际上并没有尝试使用它,所以你应该完全删除它们。