Skip to main content

2.1.2 Mở màn hình đăng ký thanh toán tự động

Lưu ý

Để dùng được tính năng thanh toán tự động, đối tác cần thông tin về tài khoản chuyên thu để đội vận hành MBBANK cấu hình.

Thông tin chung

  • Sau khi Backend của Đối tác đã khởi tạo thành công giao dịch (bằng việc gọi sang API của MB Payment Hub) thì Đối tác cần truyền dữ liệu giao dịch này cho MB App để người dùng có thể bắt đầu thực hiện đăng kí thanh toán giao dịch tự động.

Phương thức kết nối

  • Ứng dụng WEB của Đối tác thực hiện gọi hàm Javascript để truyền dữ liệu giao dịch cho MB App.

  • Cú pháp khởi tạo:

        window['ReactNativeWebView'].postMessage(JSON.stringify({
    type: 'PAYMENT_HUB_AUTODEBIT',
    data: {
    cif: '407322',
    requestType: 'REGISTER',
    merchant: {
    code: 'BAL',
    name: 'Bảo hiểm Nhân thọ MB Ageas Life'
    },
    autoDebitId: 'AT1A84F97D1D',
    amount: null,
    description: 'Đăng ký thanh toán tự động BH định kỳ',
    frequencyUnit: null,
    schedulerPattern: null,
    dayOfAutoDebit: null,
    contractCode: '216000017085',
    successMessage: 'Đăng ký thanh toán tự động thành công',
    metadata: '',
    paymentTransactionType: {
    name: 'Thanh toán Phí bảo hiểm định kỳ',
    code: 'TTBHDK',
    allowCard: true
    },
    autoDebitStatus: 'REGISTER_PENDING',
    billerCustomerId: '216000017085',
    billerCustomerCode: '216000017085',
    createdDate: '2024-06-21T10:02:15',
    requestId: '5531a68a-6740-447c-be58-ebd47c9d8466',
    payment: {
    firstPaymentAmount: null,
    firstPaymentDescription: null,
    paymentTransactionStatus: null
    },
    autoDebitType: 'BILLING_RECEIVE_BILLS',
    retryDay: null
    }}))
  • Cú pháp hủy đăng kí

        window['ReactNativeWebView'].postMessage(JSON.stringify({
    type: 'PAYMENT_HUB_AUTODEBIT',
    data: {
    cif: '407322',
    requestType: 'CANCEL',
    merchant: {
    code: 'BAL',
    name: 'Bảo hiểm Nhân thọ MB Ageas Life'
    },
    autoDebitId: 'AT1A84F97D1D',
    amount: null,
    description: 'Đăng ký thanh toán tự động BH định kỳ',
    frequencyUnit: null,
    schedulerPattern: null,
    dayOfAutoDebit: null,
    contractCode: '216000017085',
    successMessage: 'Đăng ký thanh toán tự động thành công',
    metadata: '',
    paymentTransactionType: {
    name: 'Thanh toán Phí bảo hiểm định kỳ',
    code: 'TTBHDK',
    allowCard: true
    },
    autoDebitStatus: 'REGISTER_PENDING',
    billerCustomerId: '216000017085',
    billerCustomerCode: '216000017085',
    createdDate: '2024-06-21T10:02:15',
    requestId: '5531a68a-6740-447c-be58-ebd47c9d8466',
    payment: {
    firstPaymentAmount: null,
    firstPaymentDescription: null,
    paymentTransactionStatus: null
    },
    autoDebitType: 'BILLING_RECEIVE_BILLS',
    retryDay: null
    }}))
  • Cú pháp chỉnh sửa đăng kí tự động

        window['ReactNativeWebView'].postMessage(JSON.stringify({
    type: 'PAYMENT_HUB_AUTODEBIT',
    data: {
    cif: '407322',
    requestType: 'UPDATE',
    merchant: {
    code: 'BAL',
    name: 'Bảo hiểm Nhân thọ MB Ageas Life'
    },
    autoDebitId: 'AT1A84F97D1D',
    amount: null,
    description: 'Đăng ký thanh toán tự động BH định kỳ',
    frequencyUnit: null,
    schedulerPattern: null,
    dayOfAutoDebit: null,
    contractCode: '216000017085',
    successMessage: 'Đăng ký thanh toán tự động thành công',
    metadata: '',
    paymentTransactionType: {
    name: 'Thanh toán Phí bảo hiểm định kỳ',
    code: 'TTBHDK',
    allowCard: true
    },
    autoDebitStatus: 'REGISTER_PENDING',
    billerCustomerId: '216000017085',
    billerCustomerCode: '216000017085',
    createdDate: '2024-06-21T10:02:15',
    requestId: '5531a68a-6740-447c-be58-ebd47c9d8466',
    payment: {
    firstPaymentAmount: null,
    firstPaymentDescription: null,
    paymentTransactionStatus: null
    },
    autoDebitType: 'BILLING_RECEIVE_BILLS',
    retryDay: null
    }}))

Dữ liệu truyền lên

Tham sốMô tả
typeBắt buộc Kiểu String, tối đa 30 ký tự.
Loại dữ liệu mặc định truyền PAYMENT_HUB_AUTODEBIT
data.cifBắt buộc Kiểu String, tối đa 45 ký tự. Mã khách hàng MB, lấy thông tin từ api verify Token
data.requestTypeBắt buộc Kiểu String, loại yêu cầu:
Đăng kí: REGISTER
Đăng kí và thanh toán lần đầu: REGISTER_AND_FIRST_PAYMENT
Hủy: CANCEL
Chỉnh sửa: UPDATE
data.merchant.codeBắt buộc Kiểu String, tối đa 100 ký tự. Mã đối tác
data.merchant.nameBắt buộc Kiểu String, tối đa 256 ký tự. Tên đối tác
data.autoDebitIdKiểu String, tối đa 30 ký tự. Id bản ghi đăng kí giao dịch tự động.
Bắt buộc truyền khi requestType = UPDATE hoặc CANCEL
data.amountKiểu BigDecimal. Số tiền thực hiện giao dịch Không được âm .
Không băt buộc với Merchant có cấu hình autodebitType = BILLING_RECEIVE_BILLS.
Nếu Merchant có cấu hình autodebitType >< BILLING_RECEIVE_BILLS.
Bắt buộc truyền khi requestType = REGISTER, REGISTER_AND_FIRST_PAYMENT
data.descriptionKiểu String, tối đa 48 ký tự. Nội dung giao dịch.
Bắt buộc truyền khi requestType = REGISTER, REGISTER_AND_FIRST_PAYMENT
data.frequencyUnitKiểu String. Tần xuất thanh toán DAY, WEEK, MONTH, YEAR.
Không bắt buộc với Merchant có cấu hình autodebitType = BILLING_RECEIVE_BILLS.
Nếu Merchant có cấu hình autodebitType >< BILLING_RECEIVE_BILLS: bắt buộc truyền khi requestType = REGISTER, REGISTER_AND_FIRST_PAYMENT
data.dayOfAutoDebitKiểu String. Thời gian autodebit.
Không bắt buộc với Merchant có cấu hình autodebitType = BILLING_RECEIVE_BILLS.
Nếu Merchant có cấu hình autodebitType >< BILLING_RECEIVE_BILLS.
Trong trường hợp frequency unit = DAY có thể = null.
frequency unit = WEEK: nhận giá trị MON =>SUN.
frequency unit= MONTH: nhận giá trị 1 =>28
frequency unit= YEAR: nhận giá trị theo format: dd/MM
data.scheduledPatternBắt buộc Kiểu String, Chuỗi cron mà API MB trả ra khi khởi tạo gioa dịch
data.contractCodeBắt buộc Kiểu String, Chuỗi cron mà API MB trả ra khi khởi tạo gioa dịch
data.successMessageKhông bắt buộc. Kiểu String tối đa 2000 ký tự. Thông báo khi thanh toán thành công
data.metadataKhông bắt buộc. Kiểu String tối đa 2000 ký tự. Thông báo khi thanh toán thành công
data.paymentTransactionType.nameBắt buộc Kiểu String, tối đa 256 ký tự. Tên loại giao dịch
data.paymentTransactionType.codeBắt buộc Kiểu String. Mã giao dịch
data.paymentTransactionType.allowCardBắt buộc Kiểu boolean. Có cho phép thanh toán bằng thẻ hay không?
true: Có
false: Không
data.autoDebitStatusBắt buộc Kiểu String, trạng thái của autodebit
data.billerCustomerIdBắt buộc Kiểu String, giá trị mà api khởi tạo trả ra
data.billerCustomerCodeBắt buộc Kiểu String, giá trị mà api khởi tạo trả ra
data.createdDateBắt buộc Kiểu String. Thời điểm khởi tạo giao dịch
data.requestIdBắt buộc Kiểu String, tối đa 45 ký tự. Id của request mà api khởi tạo trả ra
data.payment.firstPaymentAmountKiểu BigDecimal. Số tiền thanh toán lần đầu.
Bắt buộc truyền khi requestType = REGISTER_AND_FIRST_PAYMENT ID giao dịch được trả về từ MB Payment Hub
data.payment.firstPaymentDescriptionKiểu String, tối đa 48 ký tự. Nội dung thanh toán lần đầu.
Bắt buộc khi requestType = REGISTER_AND_FIRST_PAYMENT
data.payment.paymentTransactionStatusKiểu String, tối đa 45 ký tự. Trạng thái của thanh toán lần đầu nếu kèm
data.autoDebitTypeBắt buộc Kiểu String, loại giao dịch autodebit.
TOPUP: Thanh toán cố định.
BILLING_RECEIVE_BILLS: Thanh toán với số tiền ko cố định (hàng kỳ nhận list bill từ đối tác để hạch toán).
BILLING_GET_BILLS: Thanh toán với số tiền ko cố định (hàng kỳ quét list bill của đối tác để hạch toán)
data.retryDayBắt buộc Kiểu int. Số ngày Retry

Tham khảo