Paypal 沙箱:此交易无效
Paypal sandbox: this transaction is invalid
我正在尝试集成 paypal 快速结账(测试),但没有成功。不知道我做错了什么。我已经按照文档进行操作,但是当我尝试将浏览器重定向到沙箱登录页面时,我得到 "This transaction is invalid. Please return to the recipient's website to complete your transaction using their regular checkout flow."。
<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>
我也在我的现场试过这个,以防本地主机造成问题,但还是一样。
我返回的ACK响应是成功的:
TOKEN=EC-83V63085L7957480A
TIMESTAMP=20150901T14:14:08Z
CORRELATIONID=ffb632c840981
ACK=Success
VERSION=124.0
BUILD=000000
但是当我在文档中使用带有令牌的重定向URL时,我得到了无效交易错误。
https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&TOKEN=EC-83V63085L7957480A
我尝试登录developer.paypal.com,但每次都是无效交易。
无效交易的URL:
//http://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_flow&SESSION=xa6gvld5X3qDZhYbt7pnz6rWMCzBdIFvAREoxohX4E5zH_3ydrzEQBnpQFW&dispatch=50a222a57771920b6a3d7b606239e4d529b525e0b7e69bf0224adecfb0124e9b61f737ba21b0819803370655d2811b9456e01fe893c80ec2
想法?
您可以从 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 代码。
这里有更多关于 Express Checkout 的文档,来自 PayPal 开发者网站。
对于阅读本文的其他人,我发现如果我将 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(沙盒)登录页面,没有错误。
希望对您有所帮助
我正在尝试集成 paypal 快速结账(测试),但没有成功。不知道我做错了什么。我已经按照文档进行操作,但是当我尝试将浏览器重定向到沙箱登录页面时,我得到 "This transaction is invalid. Please return to the recipient's website to complete your transaction using their regular checkout flow."。
<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>
我也在我的现场试过这个,以防本地主机造成问题,但还是一样。
我返回的ACK响应是成功的:
TOKEN=EC-83V63085L7957480A
TIMESTAMP=20150901T14:14:08Z
CORRELATIONID=ffb632c840981
ACK=Success
VERSION=124.0
BUILD=000000
但是当我在文档中使用带有令牌的重定向URL时,我得到了无效交易错误。
https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&TOKEN=EC-83V63085L7957480A
我尝试登录developer.paypal.com,但每次都是无效交易。
无效交易的URL:
//http://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_flow&SESSION=xa6gvld5X3qDZhYbt7pnz6rWMCzBdIFvAREoxohX4E5zH_3ydrzEQBnpQFW&dispatch=50a222a57771920b6a3d7b606239e4d529b525e0b7e69bf0224adecfb0124e9b61f737ba21b0819803370655d2811b9456e01fe893c80ec2
想法?
您可以从 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 代码。
这里有更多关于 Express Checkout 的文档,来自 PayPal 开发者网站。
对于阅读本文的其他人,我发现如果我将 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(沙盒)登录页面,没有错误。
希望对您有所帮助