我直接从 Amazon 的暂存器 ( https://webservices.amazon.com/paapi5/scratchpad/index.html )获取了以下 PHP 代码,他们在其中提供了样板代码来查询其产品 API。我只对其进行了一点点修改以显示 HTTP 错误 - 其他所有内容都是直接复制和粘贴。
我输入了自己的凭据(访问密钥、密钥和合作伙伴标签),代码在我自己的 macOS 笔记本电脑上完美运行,运行(常规)PHP 7.1.23。
我将代码移至我的个人服务器,它运行完美,运行 PHP 5.3.10-1ubuntu3.26
当我将相同的代码移动到客户的服务器时,我从 Amazon 收到一条错误消息,指出请求未正确签名。错误是:
{"__type":"com.amazon.paapi5#InvalidSignatureException","Errors":[{"Code":"InvalidSignature","Message":"The request has not been correctly signed. If you are using an AWS SDK, requests are signed for you automatically; otherwise, go to https://webservices.amazon.com/paapi5/documentation/sending-request.html#signing."}]}
在该机器上, lsphp --version 返回
PHP 7.0.27 (litespeed) (built: Jan 4 2018 16:01:06)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.27, Copyright (c) 1999-2017, by Zend Technologies
lsphp 可执行文件有何不同,导致其无法生成正确签名的请求?
慕容3067478
凤凰求蛊