2

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

我遵循了与 readme.html 中提到的相同的说明。在 CBUI 文件夹下配置代码后,我尝试运行 CBUISingleUsePipelineSample.php 文件,我得到了一个 url,然后我尝试在其他页面中打开它。但是它抛出了一个错误:

亚马逊付款
请求无效

由于出现错误,我们无法处理您的付款请求。请联系您发起此付款的网站。

调用方输入异常:无效签名

4

1 回答 1

0

在形成您的签名/网址时,需要注意三件事......

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

2.如果您的任何参数中包含/包含空格,并且您尝试在除最新 (5.4) 版本的 PHP 之外的所有参数中使用 html_build_query(),您将获得一个编码方案,其中包含空格的“+”标记的“%20”,这是亚马逊似乎喜欢的。我上面的代码通过在整个参数数组上实现 rawurlencode() 来解决这个问题。

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

请参阅亚马逊灵活付款异常:来电者输入异常:无效签名

于 2013-06-07T06:51:05.923 回答