Кнопка оплаты Xazna
Чтобы перенаправить покупателя на платежную страницу XAZNA, создайте на своей стороне кнопку или ссылку следующего вида:
text
https://pay.xazna.uz/billing/universal?merchantId={{$merchantID}}&amount={{$amount}}&invoice={{$invoice}}&returnURL={{$returnURL}}Параметры запроса
| Название параметра | Вид | Значение |
|---|---|---|
merchantId | UUID | Уникальный идентификатор для интеграции. Выдается через XAZNA. |
amount | Integer | Сумма платежа. Передается в сумах. |
invoice | String | Уникальный параметр для оплаты. |
returnURL | Optional | Ссылка, на которую пользователь будет перенаправлен после оплаты. |
Примеры
html
<a
class="xazna-pay"
href="https://pay.xazna.uz/billing/universal?merchantId=string&amount=125000&invoice=321657984213246&returnURL=https%3A%2F%2Fexample.uz%2Forders%2F123"
>
Оплатить через Xazna
</a>ts
type XaznaPaymentLink = {
merchantId: string
amount: number // в сумах
invoice: string
returnURL?: string
}
export function buildXaznaLink(params: XaznaPaymentLink): string {
const url = new URL('https://pay.xazna.uz/billing/universal')
url.searchParams.set('merchantId', params.merchantId)
url.searchParams.set('amount', String(params.amount))
url.searchParams.set('invoice', params.invoice)
if (params.returnURL) {
url.searchParams.set('returnURL', params.returnURL)
}
return url.toString()
}php
<?php
$query = http_build_query([
'merchantId' => $merchantId,
'amount' => $amount, // в сумах
'invoice' => $invoice,
'returnURL' => $returnURL,
]);
$link = 'https://pay.xazna.uz/billing/universal?' . $query;Кодирование returnURL
returnURL содержит символы : и /, поэтому его нужно передавать в URL-кодированном виде. Используйте encodeURIComponent в JavaScript или http_build_query в PHP — они делают это автоматически.
Что происходит дальше
После перехода по ссылке Xazna запрашивает у вашего биллинга данные инвойса методом info, показывает их пользователю, списывает средства и уведомляет вас методом pay. Статус транзакции в любой момент можно уточнить методом check.