【问题标题】:Caller Input Exception: Invalid Signature amazon来电者输入异常:亚马逊签名无效
【发布时间】:2013-06-07 06:48:02
【问题描述】:

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

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

亚马逊支付
无效请求

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

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

【问题讨论】:

  • 您是否从您的亚马逊帐户中插入了 api 密钥?

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


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 感谢 shreyos 的回复和热心帮助。现在我完全摆脱了无效签名异常,现在我遇到了另一个错误。
  • 感谢 shreyos 的帮助
猜你喜欢
  • 2012-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多