Amazon Pay разрешает доставку только в определенную страну

Я хотел бы реализовать amazon pay. Кнопка работает нормально, но я хотел бы ограничить каждую страну, КРОМЕ, например. Германия

Вот мой фрагмент кода. Я пробовал несколько форматов 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'];

Оно работает...

Любые подсказки?


person Christian    schedule 18.11.2020    source источник


Ответы (1)


Ограничения адресов имеют формат, который немного отличается от ожидаемого. Возможно, вы захотите попробовать это:

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

Страна — это не значение массива, а ключ массива.

person marcus.kreusch    schedule 18.11.2020
comment
Вот так, большое спасибо! У вас есть скайп или слабина? :) - person Christian; 18.11.2020
comment
Отлично ???? - рад, у вас работает. Как насчет того, чтобы начать со старой доброй электронной почты — подробности вы найдете здесь: amazon-pay-sw5. onlineshop.consulting/impressum - person marcus.kreusch; 19.11.2020