LendMN Open Platform

LendMN Open Platform

  • Languages iconEnglish
    • Монгол

›Client API

Basic Tutorial

  • Intro
  • Access token
  • Lend login
  • Create invoice
  • Pay Invoice
  • Webhook

Mini-App

  • Intro
  • UX Design

QR Payment

  • Intro

Client API

  • Intro
  • PayInvoice
  • ReadQr
  • Location
  • OpenUri
  • JavaScript to App
  • Protocol

Server API

  • AccessToken
  • UserInfo
  • Notification
  • InvoiceDetail
  • Transaction refund
  • CreateInvoiceEmbedded
  • CancelInvoice
  • EventHook
  • Transfer
  • CreateInvoice
  • Transactions
  • CreateReceipt
  • Branches
  • Invoices
  • Error codes

Policies

  • Аюулгүй байдлын шаардлага
  • Үйлчилгээний нөхцөл

Payment API

  • Create invoice
  • Check invoice
  • Cancel invoice

JavaScript to App

injected javascript

LendMN аппаас дуудагдаж байгаа web-хуудас болгон дээр дараах үйлдлийг inject хийж байгааг анхаарна уу

ачааллах болгонд:

if (
  typeof ANDembedded !== 'undefined' &&
  !!ANDembedded &&
  !!ANDembedded.setEmbedded
) {
  ANDembedded.setEmbedded();
}

ямарваа нэг дуудагдсан API хариу өгөх үед

if(typeof ANDembedded !== 'undefined' && !!ANDembedded &&!!ANDembedded.dispatchEvent) {
  ANDembedded.dispatchEvent(${JSON.stringify(params)});
}

Үүнээс анзаарвал зөвхөн LendMN APP and-ds.js 2 хоорондоо харилцах үүднээс хийж байгаа үйлдлүүд.

isEmbedded

and-ds.js задалж харвал, setEmbedded үйлдэл нь isEmbedded эсэхийг үнэн болгож байгаа функц. Тэгэхээр redirect хэлбэрээр invoice төлөлт хийхдээ шинээр дуудагдах хуудсын html дотроо шууд дараах байдлаар хийгдэнэ:

ANDembedded.payInvoice(
  {
    invoiceNumber: '9226b721-fb98-49e2-b9e1-20c8fc833f5f',
    amount: 6000,
    description: 'Тасалбар',
  },
  (params) => {
    if (params.error) {
      alert(params.error_message);
    }
  },
);

дээрх injected javascript window load эсвэл Dom loaded үед одоогийн байдлаар дуудагдаж амжихгүй байгаа болохоор дээрх код дангаараа ажиллахгүй. Иймээс window load хийснээс хойш хэсэг хугацааны дараа, одоогийн байдлаар 200ms хангалттай гэж үзэн isEmbedded == true эсэхийг шалгаж байгаад embedded API дуудна. isEmbedded ачааллаж амжаагүй тохиолдолд workaround буюу тухайн нэхэмжлэлийг deeplink хэлбэрээр төлүүлж болно.

<html>
  <head>
    <script
      type="application/javascript"
      src="https://cdn.lend.mn/3rdparty/embedded/and-ds.js"
    ></script>
  </head>
  <body>
    <script type="application/javascript">
      let invoiceNumber = '9226b721-fb98-49e2-b9e1-20c8fc833f5f';
      window.onload = function() {
        setTimeout(function() {
          if (typeof ANDembedded !== 'undefined' && !!ANDembedded) {
            if (ANDembedded.isEmbedded && ANDembedded.payInvoice) {
              ANDembedded.payInvoice(
                {
                  invoiceNumber: invoiceNumber,
                  amount: 6000,
                  description: 'Тасалбар',
                },
                (params) => {
                  if (params.error) {
                    alert(params.error_message);
                  }
                },
              );
            } else {
              //deep link workaround
              let deep_link = 'andpay://lend.mn/i/m/';
              window.location = deep_link.concat(invoiceNumber);
            }
          }
        }, 200); //200 ms delay
      };
    </script>
  </body>
</html>
← OpenUriProtocol →
  • injected javascript
  • isEmbedded
© AND Systems LLC, All Right Reserved 2022