Paypal沙箱:此交易无效

时间:2015-09-01 15:30:21

标签: paypal paypal-sandbox

我正在努力整合paypal快速结账(测试)而没有运气。不知道我做错了什么。我已经按照文档但我得到了#34;此交易无效。请返回收件人的网站,使用他们的常规结账流程完成您的交易。"当我尝试重定向到浏览器到沙箱登录页面。

<form method=post action=https://api-3t.sandbox.paypal.com/nvp>
    <input type=hidden name=USER value=j***-1_api1.g*******s.com.au>
    <input type=hidden name=PWD value=Q8P*******U6>
    <input type=hidden name=SIGNATURE value=AFc************fH>
    <input type=hidden name=VERSION value=124.0>
    <input type=hidden name=PAYMENTREQUEST_0_PAYMENTACTION
        value=Sale>
    <input name=PAYMENTREQUEST_0_AMT value=19.95>
    <input type=hidden name=RETURNURL
        value=http://localhost/moes/paypal_complete.php>
    <input type=hidden name=CANCELURL
        value=http://localhost/moes/paypal_complete.php>
    <input type=submit name=METHOD id="submit_paypal" value=SetExpressCheckout>
</form>

还在我的网站上试过这个以防localhost导致麻烦,但仍然是一样的。

我回复的ACK响应是成功的:

TOKEN=EC-83V63085L7957480A
TIMESTAMP=20150901T14:14:08Z
CORRELATIONID=ffb632c840981
ACK=Success
VERSION=124.0
BUILD=000000 

但是当我在带有令牌的文档中使用redirectURL时,我得到了无效的传输错误。

https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&TOKEN=EC-83V63085L7957480A

我在尝试时登录developer.paypal.com,但每次都是无效的交易。

无效交易的网址:

//http://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_flow&SESSION=xa6gvld5X3qDZhYbt7pnz6rWMCzBdIFvAREoxohX4E5zH_3ydrzEQBnpQFW&dispatch=50a222a57771920b6a3d7b606239e4d529b525e0b7e69bf0224adecfb0124e9b61f737ba21b0819803370655d2811b9456e01fe893c80ec2

想法?

2 个答案:

答案 0 :(得分:0)

您可以从PayPal向导获取示例快速结账代码: PayPal Express Checkout Code Wizard

<form action='expresscheckout.php' METHOD='POST'>
<input type='image' name='submit' src='https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif' border='0' align='top' alt='Check out with PayPal'/>
</form>

您需要从PayPal代码向导下载expresscheckout.php和paypalfunctions.php文件。通常,您的PayPal API签名位于单独的php文件中。代码向导上的paypalfunctions.php存储了API凭据。

以下代码段来自paypal.php文件,它是沙箱端点代码的一部分。

    if ($SandboxFlag == true) 
{ 
    $API_Endpoint = "https://api-3t.sandbox.paypal.com/nvp";
    $PAYPAL_URL = "https://www.sandbox.paypal.com/webscr&cmd=_express-checkout&token=";
}

使用Express Checkout,您还需要调用Mark Express Checkout,这通常是在您的一个PHP文件中完成的。

您可以从代码向导中获取完整的PHP代码。

以下是来自PayPal开发者网站的Express Checkout的更多文档。

答案 1 :(得分:0)

对于读这篇文章的其他人,我发现如果我改变了redirectURL:

https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&TOKEN=

为:

https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&useraction=commit&token=

它会按预期重定向到paypal(沙盒)登录页面而不会出错。

希望这有帮助