在PHP中编码Amazon Flexible Payments秘密字符串的问题
发布时间:2020-12-13 18:18:12 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试使用亚马逊支付服务,他们要求我做这样的事情: 这是完整的签名,所以你可以看到我添加了签名方法: $string_to_sign = "GETnauthorize.payments-sandbox.amazon.comncobranded-ui/actions/start?SignatureMethod=HmacSHA256SignatureVersion=2cal
我正在尝试使用亚马逊支付服务,他们要求我做这样的事情:
这是完整的签名,所以你可以看到我添加了签名方法: $string_to_sign = "GETn authorize.payments-sandbox.amazon.comn cobranded-ui/actions/start? SignatureMethod=HmacSHA256&SignatureVersion=2&callerKey=my_key&callerReference=YourCallerReference&paymentReason=donation&pipelineName=SingleUse&returnUrl=http%3A%2F%2Fyourwebsite.com%2Freturn.html&transactionAmount=4.0"; 然后我加密它如下. $encoded_string_to_sign = URLEncode(Base64_Encode(hash_hmac("sha256",$string_to_sign,'my_secret_key'))); 我这样做,但后来我从他们那里得到一个错误说: Caller Input Exception: The following input(s) are either invalid or absent:[signatureMethod] 知道这里可能出了什么问题吗? 以下是整个代码:(变量分配上面的值) <?php $string_to_sign = 'GET authorize.payments-sandbox.amazon.com/cobranded-ui/actions/startSignatureMethod=HmacSHA256&SignatureVersion=2&callerKey=AKIAJENBYSJCJX2IDWDQ&callerReference=YourCallerReference&paymentReason=donation&pipelineName=SingleUse&returnUrl=http%3A%2F%2Fproblemio.com&transactionAmount=4.0'; $encoded_string_to_sign = URLEncode(Base64_Encode(hash_hmac("sha256",'my_secret_key'))); $amazon_request_sandbox = 'https://authorize.payments-sandbox.amazon.com/cobranded-ui/actions/start?SignatureVersion=2&returnUrl='.$return_url.'&paymentReason='.$payment_reason.'&callerReference=YourCallerReference&callerKey='.$my_access_key_id.'&transactionAmount=4.0&pipelineName=SingleUse&SignatureMethod=HmacSHA256&Signature='.$encoded_string_to_sign; //echo $amazon_request_sandbox; - use this if you want to see the resulting request and paste it into the browser header('Location: '.$amazon_request_sandbox); ?> 谢谢!!
检查您是否在请求中包含& SignatureMethod = HmacSHA256
这种错误有三个基本性质: >缺少键/值 希望有所帮助! 问候 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |