来电输入异常:无效的签名亚马逊

时间:2013-06-07 06:48:03

标签: php amazon-web-services amazon payment-gateway

我正在尝试整合亚马逊支付网关。我从amazon.com下载了以下库:amazon-fps-2010-08-28-php5-library

我按照readme.html中提到的相同说明进行操作。 在CBUI文件夹下配置代码后,我尝试运行CBUISingleUsePipelineSample.php文件,然后我得到了一个网址,然后我尝试在其他页面打开。但是它引发了一个错误:

  

亚马逊付款
  无效的请求

     

由于错误,我们无法处理您的付款申请。请联系您开始此付款的网站。

     

来电者输入例外:签名无效

1 个答案:

答案 0 :(得分:0)

在形成签名/网址时,需要注意三件事情。

1.似乎参数“transactionAmount”对于有效的联合品牌UI管道是必需的,即使没有具体指示暗示该问题。

2.如果你的任何参数中都有空格,并且你试图在最新的(5.4)版本的PHP中使用html_build_query(),那么你将得到一个带有“+”标记的编码方案对于空间而不是“%20”这是亚马逊似乎喜欢的。上面的代码通过在整个参数数组上实现rawurlencode()来解决这个问题。

3.参数的排序在签名的构造中是最重要的。键(不是值)需要不区分大小写的字母顺序。值得注意的是,尽管文档对API有所说明,但在创建签名的查询字符串时,&符号(&)和等号(=)都必须存在。

请参阅Amazon Flexible Payments Exception: Caller Input Exception: Invalid Signature