Intro
Embedded Client API нь JS ашиглан өөрийн хуудсан дээрээс App-ын үйлдэл дуудах үндсэн JS API юм.
Үүнд үндсэн тодорхой хэдхэн үйлдлүүд байгаагаас хамгийн их ашиглагдах нь Төлбөр хийлгэх үйлдэл. Тус API window.postMessage
функцыг ашиглан APP-тай харилцдаг. Энэ функцыг ашигласнаар гарах болзошгүй эрсдлүүдийг MDN дээрээс уншиж танилцана уу. Энэ функц дээр суурилсан protocol-ыг wrap хийж бэлтгэсэн js library and-ds.js (цаашид and-ds биш and-embedded.js болж өөрчлөхийг анхаарна уу). Энэ library татаж авч өөрийн site дээрээ байрлуулж болно эсвэл шууд
<script
type="application/javascript"
src="https://cdn.lend.mn/3rdparty/embedded/and-ds.js"
></script>
Энэ documentation нь голцуу wrap-ласан and-ds.js дээр суурилж тайлбар хийх болно, гэхдээ шууд postMessage ашиглах үүднээс protocol-ын түлхүүр үгүүдийг агуулна. postMessage-ыг ашигласан protocol-ын дэлгэрэнгүйг
and-ds.js
задалж харна уу.
and-ds.js
-ын include хийж оруулснаар тус html DOM дээр ANDembedded
object үүсэх болно.
Төлбөр хэрэглэгчээр төлүүлэх
Төлбөр төлөхийн өмнө server-to-server цаашид server-api буюу embedded server to lendmn gateway сэрвэр рүү холбоосоор тухайн төлөлтийн нэхэмжлэлийг үүсгэн, нэхэмжлэлийн дугаарыг авсан байх ёстой. Дараах жишээн дээр тус дугаарыг invoiceNumber гэе:
button
үндсэн default button
<div id="pay-and-invoice">
<script type="text/javascript">
ANDembedded.button({
container: 'pay-and-invoice',
invoiceNumber: '9226b721-fb98-49e2-b9e1-20c8fc833f5f',
amount: 10000,
description: 'Бараа #2-ын төлбөр',
callback: (params) => {
if (params.error > 0) {
alert(params.error_message);
} else {
// амжилттай төлсөн тохиолдолд ийшээ оролгүйгээр шууд server-api api-гаар үүсгэсэн нэхэмжлийн буцах хуудас дуудагдана.
}
},
});
</script>
</div>
appendPayInvoiceAction
эсвэл өөрийн design өнгө үзэмжтэй button дээр ашиглая гэвэл
<input type="button" id="test_append" value="do test" />
<script type="text/javascript">
ANDembedded.appendPayInvoiceAction({
element: document.getElementById('test_append'),
invoiceNumber: '9226b721-fb98-49e2-b9e1-20c8fc833f5f',
amount: 10000,
description: 'Бараа #2-ын төлбөр',
callback: (params) => {
if (params.error > 0) {
alert(params.error_message);
} else {
// амжилттай төлсөн тохиолдолд ийшээ оролгүйгээр шууд server-api api-гаар үүсгэсэн нэхэмжлийн буцах хуудас дуудагдана.
}
},
});
</script>
эсвэл
payInvoice
<input
type="button"
id="test_payInvoice"
value="payInvoice"
onclick="pay();"
/>
<script type="text/javascript">
function pay() {
ANDembedded.payInvoice({
invoiceNumber: '9226b721-fb98-49e2-b9e1-20c8fc833f5f',
amount: 10000,
description: 'Бараа #2-ын төлбөр'
},
callback: (params) => {
if (params.error > 0) {
alert(params.error_message);
} else {
alert('success');
}
});
}
</script>