Как интегрировать идентификатор брокера с WoocommercePhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как интегрировать идентификатор брокера с Woocommerce

Сообщение Anonymous »

Я написал скрипт, интегрирующий идентификатор брокера с WooCommerce.
После успешной покупки в магазине должен начаться процесс аутентификации идентификатора брокера, а ссылка на идентификатор брокера должна быть загружена и отображена в сообщении с благодарностью за покупку< /p>
page.add_action('woocommerce_before_thankyou', '');
function after_purchase_completed($order_id) {
$order = wc_get_order($order_id);
$process_id = 'AUT_' . $order->get_order_number() . '_' . uniqid();
$data = array(
'identification_channel_id' => '651d17427587d47324c683e3',
'state' => $process_id,
);

$username = 'API Client';
$password = 'API Key';
$auth_token = base64_encode($username . ':' . $password);

$response = wp_remote_post('http://i.broker.id/api/v1.0/oauth2/authorize', array(
'headers' => array(
'Content-Type' => 'application/json',
'Authorization' => 'Basic ' . $auth_token
),
'body' => json_encode($data)
));
if (!is_wp_error($response)) {
$response_code = wp_remote_retrieve_response_code($response);
$response_body = wp_remote_retrieve_body($response);
$error_message = '';
if ($response_code !== 200) {
$error_message = ' Error code: ' . $response_code . '. Error message: ' . $response_body;
}
$result = json_decode($response_body, true);
if (isset($result['link'])) {
echo '
URL: ' . $result['link'] . '
';
} else {
echo '
Sorry, the Broker ID authorization link could not be retrieved. Contact us for help.' . $error_message . '
';
}
} else {
echo '
Sorry, there was a problem retrieving your Broker ID authorization link. Contact us for help.' . $error_message . '
';
}
}

конечно, я предоставляю правильные данные вместо Api Client и Api Key. Я получаю сообщение об ошибке:
К сожалению, не удалось получить ссылку для авторизации по идентификатору брокера. Свяжитесь с нами для помощи. Код ошибки: 401. Сообщение об ошибке: {"timestamp":"2024-05-05T15:00:53.172684169+02:00[Европа/Варшава]","ExceptionId":"bad.credentials","traceId":"66378305d5ef962325c0e06ec7ca4c97 ″»,errorCode»:»66378305d5ef962325c0e06ec7ca4c97″»,message»:»Неверная авторизация»
Я использую документацию по идентификатору брокера:
https://i.broker.id/ document/documentation/resources/swagger-ui/index.html#/
Может кто-нибудь сказать мне, где я делаю ошибку?
- -- РЕДАКТИРОВАТЬ ---
Я добавил необходимые данные:
$data = array(
'identification_channel_id' => '651d17427587d47324c683e3', // Poprawny identyfikator kanału identyfikacji
'state' => $process_id,
'redirect_uri' => 'https://example.com/',
'assertions' => array(
array(
'type' => 'PERSON_GIVEN_NAME',
'value' => 'John'
),
array(
'type' => 'PERSON_FAMILY_NAME',
'value' => 'Smith'
),
),
'preliminary_verifications' => array(
"PHONE_NUMBER",
"EMAIL_ADDRESS"
),
'identification_reason' => array(
'pl' => 'W celu identyfikacji osoby na żądanie firmy X',
'en' => 'In order to identify person on demand company X'
),
'custom_consent_definitions' => array(
array(
'type' => 'CUSTOM_CONSENT_TYPE',
'texts' => array(
'pl' => 'Treść zgody niestandardowej w języku polskim',
'en' => 'Custom consent content in English'
)
),
)
);

К сожалению, проблема не исчезла, но появилась другая:
К сожалению, ссылку авторизации ID брокера получить не удалось. Свяжитесь с нами для помощи. Код ошибки: 400. Сообщение об ошибке: {"timestamp":"2024-05-05T16:55:22.646784829+02:00[Европа/Варшава]","ExceptionId":"bad.request","traceId":"66379ddaef08bd05c9ffb60e22ea9f20 ″»,errorCode»:»66379ddaef08bd05c9ffb60e22ea9f20″»,message»:»Неверный запрос. Тело запроса содержит неверные данные».
Это относится конкретно к следующим строкам:
'preliminary_verifications' => array(
"PHONE_NUMBER",
"EMAIL_ADDRESS"
),


Подробнее здесь: https://stackoverflow.com/questions/784 ... oocommerce
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»