【问题标题】:Amazon Pay SDK InvalidSignatureError PHPAmazon Pay SDK InvalidSignatureError PHP
【发布时间】:2022-08-07 22:04:32
【问题描述】:

我想使用包amazon-pay-api-sdk-php 将 Amazon Pay 支付网关添加到我的 Laravel 应用程序中。

根据文档,我编写了这些代码。但是会显示以下错误:

this guide 没有解决我的问题,因为在新版本的包中进行了更改。

控制器方法代码:

public function pay()
{
    $merchant = \'A2NLZCVN7XU3TT\';
    $public_key = \'SANDBOX-AG7E76X2NTPYJUHR2EFGRSTB\';
    $store_id = \'amzn1.application-oa2-client.xxxxxx\';

    $amazonpay_config = array(
        \'public_key_id\' => $public_key,
        \'private_key\'   => base_path(\'amazonpay-private.pem\'),
        \'region\'        => \'eu\',
        \'sandbox\'       => true
    );

    $client = new Client($amazonpay_config);

    $payload = [
        \'storeId\' => $store_id,
        \'webCheckoutDetails\' => [
            \'checkoutReviewReturnUrl\' => route(\'payment.amazonpay\')
        ]
    ];
    $payload = json_encode($payload);

    $signature = $client->generateButtonSignature($payload);

    return view(
        \'front.amazonpay\',
        compact(\'merchant\', \'public_key\', \'payload\', \'signature\'),
    );
}

amazonpay刀片文件:

<!DOCTYPE html>
<html lang=\"en\">
<head>
    <meta charset=\"UTF-8\">
    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">
    <meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\">
    <title>Document</title>
</head>
<body>
    <div id=\"AmazonPayButton\"></div>
        <script src=\"https://static-eu.payments-amazon.com/checkout.js\"></script>
        <script type=\"text/javascript\" charset=\"utf-8\">
            amazon.Pay.renderButton(\'#AmazonPayButton\', {
                // set checkout environment
                merchantId: \'{!! $merchant !!}\',
                publicKeyId: \'{!! $public_key !!}\',
                ledgerCurrency: \'EUR\',     
                // customize the buyer experience
                checkoutLanguage: \'en_GB\',
                productType: \'PayOnly\',
                placement: \'Cart\',
                buttonColor: \'Gold\',
                sandbox: true,
                // configure Create Checkout Session request
                createCheckoutSessionConfig: {
                    payloadJSON: \'{!! $payload !!}\', // string generated in step 2
                    signature: \'{!! $signature !!}\' // signature generated in step 3
                }
            });
      </script>
</body>
</html>

    标签: php laravel amazon-pay


    【解决方案1】:

    你解决了这个问题吗?我面临同样的问题......根据文档做了所有事情,但得到了 InvalidSignatureError。

    【讨论】:

      猜你喜欢
      • 2022-01-19
      • 2021-11-26
      • 2021-04-08
      • 2020-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多