php 提出Amazon Flexible Payments请求时出现签名无效错误

6jygbczu  于 2023-03-07  发布在  PHP
关注(0)|答案(1)|浏览(182)

我在亚马逊的PHP中使用这些指令:http://docs.amazonwebservices.com/AmazonFPS/latest/FPSBasicGuide/APPNDX_GeneratingaSignature.html
我是这样签名的:

$string_to_sign = "GET\nauthorize.payments-sandbox.amazon.com\n/cobranded-ui/actions/start\n
SignatureMethod=HmacSHA256&SignatureVersion=2&callerKey='.$my_access_key_id.'&callerReference='.$caller_reference.'&paymentReason='.$payment_reason.'&pipelineName=SingleUse&returnUrl='.$return_url.'&transactionAmount=1.1";

$encoded_string_to_sign = URLEncode(Base64_Encode(hash_hmac("sha256", $string_to_sign, "1")));

但我不知道为什么签名编码不正确。有一点需要注意,我在hash_hmac("sha256", $string_to_sign, "1")中随机放置了“1”,因为亚马逊没有给予放置其他内容的说明。我怎么知道亚马逊需要我在该函数中放置哪个键?我在他们的说明中没有注意到。但也许是我做错了其他事情?

z31licg0

z31licg01#

用于$key参数的值是Amazon为您颁发的密钥。
正如我在answer to your last question中所解释的,您真的应该看看FPS PHP library中包含的代码。

相关问题