【发布时间】: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