Отправка аутентифицированной информации о клиенте
Чтобы аутентифицировать профиль клиента, ваш сервер должен выполнить два независимых API-вызова, которые мы рекомендуем выполнять параллельно для повышения производительности:
-
createCart: Генерирует корзину Zonos. Для получения подробных инструкций обратитесь к разделу Настройка Zonos Checkout в документации по пользовательской интеграции. -
checkoutCustomerProfileAuthenticate: Отправляет и проверяет информацию о клиенте.
Мутация
mutation checkoutCustomerProfileAuthenticate(
$input: CheckoutCustomerProfileAuthenticateInput!
) {
checkoutCustomerProfileAuthenticate(input: $input) {
email
customerId
organizationId
name
phone
locations {
administrativeArea
countryCode
locality
line1
line2
postalCode
}
oneTimePassword
}
}
Переменная
{
"input": {
"email": "test@zonos.com",
"locations": [
{
"administrativeArea": "BC",
"countryCode": "CA",
"line1": "411-1033 Davie Street",
"line2": "123 testAddress2",
"locality": "Vancouver",
"name": "TestCanada TestCanada",
"postalCode": "V6E1M7"
},
{
"administrativeArea": "UT",
"countryCode": "US",
"line1": "411-1033 Davie Street",
"line2": "123 testAddress2",
"locality": "Saint George",
"name": "TestUS TestLastName",
"postalCode": "84770"
}
],
"customerId": "1234567",
"name": "testFirstName1 testLastName",
"phone": "7022920000"
}
}
При валидации сессии клиента убедитесь, что customerId, который вы передаете в запросе, соответствует правильному профилю для отображения точной информации о клиенте в checkout. Имейте в виду, что при создании корзины не следует включать customerId в метаданные, так как он будет перезаписан.
После аутентификации клиента и размещения заказа customerId будет доступен в order.references при получении деталей заказа через запрос заказа, что позволит вам ассоциировать заказ с правильным клиентом.
Создание корзины с профилем клиента
После того как вы вызовете обе мутации, вы получите следующее:
-
cartIdиз мутацииcreateCartдля генерации корзины. -
oneTimePasswordиз мутацииcheckoutCustomerProfileAuthenticateдля аутентификации клиента.
Вы можете передать оба этих значения в обратном вызове createCartId в функции Zonos.init, чтобы загрузить предоставленную информацию о профиле клиента в Checkout.
Zonos.init
Zonos.init({
...
checkoutSettings: {
...
createCartId: async () => {
const result = await fetch(
'https://api.merchant.com/api/get-cart-info',
{
body: JSON.stringify(payload),
method: 'POST',
},
);
const json =
await result.json();
return {
cartId: json.cartId,
customerAuthenticationToken:
json.customerProfileAuthenticate
?.checkoutCustomerProfileAuthenticate.oneTimePassword ||
'',
};
}
},
}
Управление профилями клиентов
В первый раз, когда вы отправляете информацию о клиенте, Zonos сохранит предоставленную информацию о клиенте. Способы оплаты будут храниться безопасно в Stripe. Каждый раз, когда новые данные адреса или способа оплаты передаются, они будут добавлены в профиль клиента.
В настоящее время профили клиентов можно обновлять только дополнительной информацией — существующие данные нельзя редактировать или удалять.
Профили клиентов
Предварительная загрузка информации о постоянных покупателях в Zonos Checkout.
Профили клиентов упрощают ваш checkout опыт, позволяя клиентам с аккаунтом заранее загрузить свои адрес и платежные данные.
Эта функция в настоящее время доступна только для пользовательских интеграций API. Эта функция еще не доступна для торговцев, использующих плагины Checkout.