php 亚马逊支付只允许特定国家的航运

beq87vna  于 2023-02-18  发布在  PHP
关注(0)|答案(1)|浏览(101)

我想实施亚马逊支付。按钮工作正常,但我想restric每个国家,除了eidogg.德国
下面是我的代码片段。我尝试了几种addressRestriction格式:

$client = new Client($amazonPayConfig);
$amazonPayPayload['storeId'] = $amazonPayStoreId;
$amazonPayPayload['webCheckoutDetails']['checkoutReviewReturnUrl'] = $checkoutReviewReturnUrl;
$amazonPayPayload['deliverySpecifications']['addressRestrictions']['type'] = 'Allowed';
$amazonPayPayload['deliverySpecifications']['addressRestrictions']['restrictions'][] = ['DE'];
$amazonPayPayloadJson = json_encode($amazonPayPayload);
$amazonPaySignature = $client->generateButtonSignature($amazonPayPayloadJson);

我点击按钮时收到错误Error Code: InvalidRequestFormat Error Message: Invalid request format, check fields are in correct format.。如果我删除行:

$amazonPayPayload['deliverySpecifications']['addressRestrictions']['type'] = 'Allowed';
$amazonPayPayload['deliverySpecifications']['addressRestrictions']['restrictions'][] = ['DE'];

它工作...
有什么线索吗?

jaql4c8m

jaql4c8m1#

地址限制的格式与预期的格式略有不同。您可能需要尝试以下操作:

$amazonPayPayload['deliverySpecifications']['addressRestrictions']['restrictions'] = ['DE'=>new \stdClass()];

国家不是数组值,而是数组键。

相关问题