Я пытаюсь проверить, что клиент находится выше 20-го уровня.Klarna Оформить заказ KCO validate
Они имеют встроенную функцию для проверки, смотрите здесь https://developers.klarna.com/en/se/kco-v2/checkout/use-cases#validate-checkout-order
страница checkout.php выглядит следующим образом
Accept: application/vnd.klarna.checkout.aggregated-order-v2+json
Authorization: Klarna pwhcueUff0MmwLShJiBE9JHA==
Content-Type: application/vnd.klarna.checkout.aggregated-order-v2+json
{
"purchase_country": "se",
"purchase_currency": "sek",
"locale": "sv-se",
"cart": {
"items": [
{
"reference": "123456789",
"name": "Klarna t-shirt",
"quantity": 2,
"unit_price": 12300,
"discount": 1000,
"tax_rate": 2500
},
{
"type": "shipping_fee",
"reference": "SHIPPING",
"name": "Shipping fee",
"quantity": 1,
"unit_price": 4900,
"tax_rate": 2500
}
]
},
"merchant": {
"id": "0",
"terms_uri": "http://example.com/terms.php",
"checkout_uri": "https://example.com/checkout.php",
"confirmation_uri": "https://example.com/thankyou.php?sid=123&klarna_order={checkout.order.uri}",
"push_uri": "https://example.com/push.php?sid=123&klarna_order={checkout.order.uri}",
"validation_uri": "https://example.com/klarna_validation.php"
}
}
Когда cliks клиент «купить сейчас» сценарий klarna_validation.php запускает и отправляет возврат в Кларну с HTTP-статусом 202 OK или 303 СМ. ДРУГОЙ.
Ниже мой klarna_validation.php
<?php
$pno = $_POST['customer']['date_of_birth'];
$birthdate = new DateTime("$pno");
$today = new DateTime();
$interval = $today->diff($birthdate);
$interval2 = $interval->format('%y');
if($interval2 <= "20"){
header("Location: https://example.com/too_young.php?$pno", true, 303);
exit;
} else {
http_response_code(200);
}
?>
Согласно Klarna: запрос POST будет отправлен в merchant.validation_uri. Тело запроса будет содержать текущую информацию о заказе. Структура информации о заказе идентична результату получения заказа, как вы видели при визуализации.
Дело в том, что я не получаю данные с $ _POST [ 'клиент'] [ 'date_of_birth']; пусто.
Чтобы подтвердить это, $ _POST ['customer'] ['date_of_birth']; пуст, я включил его в URL-адрес страницы too_young.php, например this (too_young.php? $ Pno). При посадке на too_young.php $ pno пуст! (URL-адреса выглядят следующим образом: too_young.php?)
Есть ли у кого-нибудь представление о том, что я делаю неправильно?
Может у разделять полный код интеграции bcoz Я пытаюсь интегрировать ти, но я не в состоянии сделать это. –