首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取PayPal Payments高级网关集成的安全令牌?

如何获取PayPal Payments高级网关集成的安全令牌?
EN

Stack Overflow用户
提问于 2013-06-07 23:43:29
回答 3查看 5.4K关注 0票数 1

我们有PayPal Payments高级版,我无法通过网关集成的第一步。也许我遗漏了一些简单的东西,这些东西应该是显而易见的。

我所能找到的所有用于集成高级网关的官方PayPal文档都说,第一步是获得一个安全令牌。例如,https://developer.paypal.com/webapps/developer/docs/classic/payflow/gs_ppa_hosted_pages/的页面。

我在下面发布了我的测试脚本(修改了敏感信息)。

每次运行测试脚本时,我都会收到“错误:无法再处理您的交易。请返回商家的网站或联系商家。错误: 160”的错误消息。

根据PayPal网关开发人员指南和参考,错误160是“已使用安全令牌。表示安全令牌已因成功的交易而过期,或在尝试成功处理交易时使用了三次令牌。您必须生成新的安全令牌。”

然而,安全令牌还没有被使用。每次运行脚本时都会生成一个新的脚本。

在PayPal管理器中,“启用安全令牌”设置为“是”。

这是脚本。我做错了什么?

代码语言:javascript
复制
<?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;
?>

非常感谢您的指导。

我想我一定是漏掉了一些关键信息。

将要

EN

回答 3

Stack Overflow用户

发布于 2013-08-02 10:39:38

我只想补充一点,当没有安全令牌传递到步骤2时,也会抛出错误160。

发生这种情况:主机阻止了curl调用,因此在没有安全令牌的情况下请求了Paypal iframe,这导致了错误160。

票数 1
EN

Stack Overflow用户

发布于 2013-06-08 01:18:18

根据Page 31 of this Payflow Gateway documentation的说法,这可能会起作用。我已经在这里复制了内容,以防他的PDF在没有适当的301重定向的情况下被删除或移动。

要创建安全令牌,请传递处理交易所需的所有参数,但信用卡号码、到期日期和支票号码等付款详细信息参数除外。

此外,传递以下Payflow参数以创建安全令牌。

  1. 将SECURETOKENID设置为最多36个字符的唯一字母数字值。SECURETOKENID=9a9ea8208de1413abc3d60c86cb1f4c5

  1. 将CREATESECURETOKEN设置为值Y,以请求网关服务器返回令牌。CREATESECURETOKEN=Y

  1. 将SILENTTRAN值设置为TRUE以禁止显示宿主页面。SILENTTRAN=TRUE

成功的事务将返回RESULT=0。从33页开始。

支付流安全令牌将过期:

如果将相同的安全令牌传递给Payflow总共3次,则成功交易。在安全令牌被成功使用20分钟后,generated.

  • When
  • is
  • in a

很可能是格式化...下面是您正在传递的参数的一些信息(来自第51页):

由于与号(&)和等号(=)字符具有特殊含义,因此它们在名称-值对值中无效。

以下内容无效:

COMPANYNAME=Ruff & Johnson COMMENT1=Level=5

要在名称-值对的值部分包含特殊字符,请使用length标记。length标记指定出现在值中的字符和空格的确切数量。以下内容是有效的。

COMPANYNAME14=Ruff & Johnson公司

COMMENT17=Level=5

注意:即使使用长度标记,也不要使用引号("")。

票数 0
EN

Stack Overflow用户

发布于 2013-12-12 07:40:21

据我所知(我通过this is helpful发现,这没有明确的文档)你不能从https://pilot-payflowlink.paypal.com得到一个安全的令牌,但是https://pilot-payflowpro.paypal.com似乎工作得很好。一旦你有了令牌,你就可以把它和payflowlink一起使用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16988021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档