我们有PayPal Payments高级版,我无法通过网关集成的第一步。也许我遗漏了一些简单的东西,这些东西应该是显而易见的。
我所能找到的所有用于集成高级网关的官方PayPal文档都说,第一步是获得一个安全令牌。例如,https://developer.paypal.com/webapps/developer/docs/classic/payflow/gs_ppa_hosted_pages/的页面。
我在下面发布了我的测试脚本(修改了敏感信息)。
每次运行测试脚本时,我都会收到“错误:无法再处理您的交易。请返回商家的网站或联系商家。错误: 160”的错误消息。
根据PayPal网关开发人员指南和参考,错误160是“已使用安全令牌。表示安全令牌已因成功的交易而过期,或在尝试成功处理交易时使用了三次令牌。您必须生成新的安全令牌。”
然而,安全令牌还没有被使用。每次运行脚本时都会生成一个新的脚本。
在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;
?>非常感谢您的指导。
我想我一定是漏掉了一些关键信息。
将要
发布于 2013-08-02 10:39:38
我只想补充一点,当没有安全令牌传递到步骤2时,也会抛出错误160。
发生这种情况:主机阻止了curl调用,因此在没有安全令牌的情况下请求了Paypal iframe,这导致了错误160。
发布于 2013-06-08 01:18:18
根据Page 31 of this Payflow Gateway documentation的说法,这可能会起作用。我已经在这里复制了内容,以防他的PDF在没有适当的301重定向的情况下被删除或移动。
要创建安全令牌,请传递处理交易所需的所有参数,但信用卡号码、到期日期和支票号码等付款详细信息参数除外。
此外,传递以下Payflow参数以创建安全令牌。
成功的事务将返回RESULT=0。从33页开始。
支付流安全令牌将过期:
如果将相同的安全令牌传递给Payflow总共3次,则成功交易。在安全令牌被成功使用20分钟后,generated.
很可能是格式化...下面是您正在传递的参数的一些信息(来自第51页):
由于与号(&)和等号(=)字符具有特殊含义,因此它们在名称-值对值中无效。
以下内容无效:
COMPANYNAME=Ruff & Johnson COMMENT1=Level=5
要在名称-值对的值部分包含特殊字符,请使用length标记。length标记指定出现在值中的字符和空格的确切数量。以下内容是有效的。
COMPANYNAME14=Ruff & Johnson公司
COMMENT17=Level=5
注意:即使使用长度标记,也不要使用引号("")。
发布于 2013-12-12 07:40:21
据我所知(我通过this is helpful发现,这没有明确的文档)你不能从https://pilot-payflowlink.paypal.com得到一个安全的令牌,但是https://pilot-payflowpro.paypal.com似乎工作得很好。一旦你有了令牌,你就可以把它和payflowlink一起使用了。
https://stackoverflow.com/questions/16988021
复制相似问题