MRNPay-ის ინტეგრაცია
შექმენით მოთხოვნის ბმული, გადაამოწმეთ შედეგი და ქსელის შეფერხების შემდეგ უსაფრთხოდ გაიმეორეთ მოთხოვნა.
შექმენით მოთხოვნის ბმული
მოთხოვნა საკუთარი სერვერიდან გააგზავნეთ. საიტის API გასაღები გარემოს ცვლადში შეინახეთ. თანხას მომხმარებელი მოთხოვნის ეკრანზე შეიყვანს.
const response = await fetch(
'https://api.yasfinans.com/api/v1/checkout/payment-links',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Api-Key': process.env.MRNPAY_SITE_API_KEY,
},
body: JSON.stringify({
orderReference: order.reference,
idempotencyKey: order.paymentAttemptId,
currency: 'TRY',
customerReference: customer.id,
}),
signal: AbortSignal.timeout(15_000),
},
);
if (!response.ok) throw new Error(`MRNPay: ${response.status}`);
const { checkoutUrl } = await response.json();
return new Response(null, { status: 303, headers: { Location: checkoutUrl } });გამოიყენეთ საკუთარი შეკვეთისა და მომხმარებლის ჩანაწერები. მიღებული ბმული უცვლელად გამოიყენეთ და მისი ტოკენი ჟურნალებში დაფარეთ.
გადაამოწმეთ შედეგის შეტყობინება
X-Finbex-Timestamp · X-Finbex-Signature
ნედლი მოთხოვნის დამუშავებამდე შეამოწმეთ ორივე სათაური. ხელმოწერილი შიგთავსი შედგება დროის ნიშნულის, წერტილისა და ნედლი სხეულისგან.
- გადაამოწმეთ HMAC-SHA256 ხელმოწერა საიტის პარამეტრებში მითითებული გასაღებით.
- შედეგი საკუთარ შეკვეთასა და მომხმარებლის ჩანაწერებს დაუკავშირეთ.
- შეინახეთ შეტყობინების უნიკალური იდენტიფიკატორი და თითოეული განახლება ერთხელ გამოიყენეთ.
- ჩანაწერის შენახვის შემდეგ დააბრუნეთ წარმატებული HTTP პასუხი.
ქსელის შეცდომის შემდეგ გაიმეორეთ იგივე მცდელობა
იმავე მცდელობისას შეინარჩუნეთ მოთხოვნის სხეული და idempotencyKey. ახალი მცდელობისთვის შექმენით ახალი გასაღები.
გამოყავით სატესტო და სამუშაო გარემო
გამოიყენეთ სატესტო ანგარიში და ჩანაწერები. სამუშაო გარემოში მიუთითეთ შესაბამისი საიტის გასაღები და შეტყობინების მისამართი.
მოითხოვეთ დემო