我们有 PayPal Payments Advanced,但我无法通过第一个网关集成步骤。也许我错过了一些应该很明显的简单东西。
我能够找到的所有用于集成高级网关的官方 PayPal 文档都说第一步是获取安全令牌。 例如https://developer.paypal.com/webapps/developer/docs/classic/payflow/gs_ppa_hosted_pages/上的页面 。
我在下面发布我的测试脚本(修改了敏感信息)。
每次运行测试脚本时,我都会收到“错误:您的交易无法再处理。请返回商家网站或联系商家。错误:160”错误消息。
根据 PayPal Gateway 开发人员指南和参考,错误 160 是“安全令牌已被使用。表示安全令牌由于交易成功或尝试成功处理交易时已使用 3 次而过期。您必须生成一个新的安全令牌。”
然而,尚未使用安全令牌。每次运行脚本时都会生成一个新脚本。
“启用安全令牌”在 PayPal 管理器中设置为“是”。
这是脚本。我究竟做错了什么?
<?php
$url = 'https://payflowlink.paypal.com';
#$url = 'https://pilot-payflowlink.paypal.com';
$token = md5( 'Will Bontrager' . time() );
/* $info assignment is all one line. Multi-line here for readability */
$info = "PARTNER=PayPal&
VENDOR=CertainReservations&
USER=ABC123&
PWD=321cba&
TRXTYPE=S&
AMT=23.45&
CREATESECURETOKEN=Y&
SECURETOKENID=$token";
echo "<pre>Value:$info</pre>";
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_VERBOSE => false,
CURLOPT_SSL_VERIFYHOST => 0,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $info
);
$ch = curl_init($url);
curl_setopt_array($ch,$options);
$content = curl_exec($ch);
$err = curl_errno($ch);
$errmsg = curl_error($ch) ;
$info = curl_getinfo($ch);
curl_close($ch);
if( $err )
{
echo "<pre>Error. $err\n$errmsg\n";
print_r($info);
echo '</pre>';
}
echo $content;
?>
非常感谢您的任何指导。
我想我一定错过了一些关键信息。
将要