Giới thiệu
Bạn là nhà cung cấp các giải pháp bán hàng cho các doanh nghiệp, hãy tích hợp tính năng thanh toán PayON để tăng thêm lợi ích cho khách hàng của bạn.
Tích hợp thanh toán lên Website/APP đơn giản, linh hoạt, nhanh chóng hỗ trợ hình thức thanh toán ngay và trả góp với đầy đủ các phương thức: Thẻ quốc tế, ATM nội địa, QRcode ngân hàng, Ví điện tử ...
Thanh toán online
Thông tin kết nối:
Parameter | Description |
---|---|
URL_API | Đường dẫn API |
MC_AUTH_USER | Tên Auth basic |
MC_AUTH_PASS | Mật khẩu Http Auth basic |
MC_SECRET_KEY | Khóa để thực hiện mã hóa tham số data trong các hàm nghiệp vụ |
MC_ID | ID Merchant để định danh khách hàng trên PayOn |
APP_ID | ID ứng dụng để định danh ứng dụng tích hợp |
Các bước lấy thông tin kết nối:
Bước 1: Đăng nhập PayOn bằng tài khoản bạn đã đăng ký tại đây. Nếu chưa có tài khoản, click vào đây để đăng ký
Bước 2: Chọn Tích hợp thanh toán trên Menu màn hình
Bước 3: Nhấn nút Thông tin kết nối
Bước 4:
Tại đây copy các thông tin tương ứng với các key:
Url Api: URL_API
- Đường dẫn API.
Http Auth User: MC_AUTH_USER
- Tên Auth basic.
Http Auth Pass: MC_AUTH_PASS
- Mật khẩu Http Auth basic.
Merchant ID: MC_ID
- ID Merchant.
Application ID: APP_ID - ID
- Ứng dụng để định danh ứng dụng tích hợp.
Secret Key: MC_SECRET_KEY
- Khóa để thực hiện mã hóa tham số data trong các hàm nghiệp vụ.
( Thư viện mã hoá data : https://github.com/payon-sdk/aes-everywhere. )
Bước 5: Paste các thông tin vừa Copy vào phần tích hợp thanh toán trên ứng dụng của bạn
Phương thức giao tiếp:
API_URL Môi trường Sandbox: https://dev-api-merchant.payon.vn/v1/merchant (Test). API_URL Môi trường Product: https://sdk.payon.vn/v1/merchant (Live).
Protocol | Description |
---|---|
Method | POST |
Content-Type | application/json |
Authorization | Basic Auth (Lấy Auth User & Auth Pass trong Thông tin kết nối API của PayOn gán vào link trên để lấy Basic Auth). |
Tham số chung & Payload Mẫu:
Parameter | Required | Type | Description |
---|---|---|---|
app_id | √ | String | Tên ứng dụng kết nối của merchant trên hệ thống Payon. |
data | √ | String | Request data được mã hóa bằng AES256 (mode CBC) , key mã hóa (MC_SECRET_KEY ). |
checksum | √ | String | MD5 (APP_ID + JSON_ENCODE(String data) + MC_SECRET_KEY) . |
Mẫu Request chung:
Shell
curl --location --request POST 'https://dev-api-merchant.payon.vn/v1/merchant/checkPayment' \
--header 'Authorization: Basic Y2hlY2tvdXQ6MTIzNDU2' \
--header 'Content-Type: application/json' \
--data-raw '{
"app_id": "160088PayON",
"data": "U2FsdGVkX1/owhVkRzc3jYqJ0cFiyDZ+B0VE5khBHe80jre1NsCLN4GEA+HiurZeG+nwXRBd5j+LWw0rrIpAng==",
"checksum": "59d8f1978f95ce3f67eea82d11e94712"
}
Mẫu Response chung:
Parameter | Type | Description |
---|---|---|
error_code | String | Tham chiếu mã lỗi. |
error_message | String | Mô tả lỗi. |
app_id | String | Tên ứng dụng kết nối của merchant trên hệ thống Payon. |
checksum | String | MD5 (APP_ID + JSON_ENCODE(String data) + MC_SECRET_KEY) . |
data | Json string | Dữ liệu trả về |
Thanh toán ngay:
Luồng thanh toán checkout:
Quy trình thực hiện thanh toán checkout với đẩy đủ các phương thức.
- Bước 1 :
Khách hàng sẽ đặt một yêu cầu thanh toán tới Merchant -->
Gửi yêu cầu thanh toán đến PayOn -->
Gửi trả thông tin thanh toán lại cho Merchant -->
Chuyển hướng đến khách hàng check lại giao dịch.
- Bước 2:
Khách hàng nhập thông tin thanh toán -->
Được gửi tới PayOn -->
Gửi yêu cầu trả tiền tới Bank -->
Trả lại PayOn yêu cầu nhập mã OTP đồng thời gửi mã OTP tới khách hàng. -->
Từ PayOn sẽ chuyển tới khách hàng yêu cầu nhập mã OTP.
- Bước 3:
Khách hàng nhập mã OTP vừa được gửi về từ ngân hàng được sử dụng để thanh toán -->
PayOn -->
Bank sẽ kiểm tra xác thực mã OTP. -->
Bank sẽ gửi kết quả thanh toán lại cho PayOn -->
PayOn sẽ chuyển hướng trả về URL và đồng thời Notify về Merchant -->
Merchant gọi API checkpayment để kiểm tra và xác nhận giao dịch
Hàm tạo yêu cầu thanh toán:
POST {API_URL}/createOrderPaynow
Request data:
Parameter | Required | Type | Description |
---|---|---|---|
merchant_id | √ | Int | MC_ID Mã định danh Merchant trên hệ thống Payon |
description | √ | String | Mô tả thông tin đơn hàng |
merchant_request_id | √ | String | Mã đơn hàng Merchant tự tạo và là duy nhất cho mỗi yêu cầu |
amount | √ | Int | Giá trị đơn hàng. Đơn vị: VNĐ |
time_expire | √ | Int | Thời hạn link thanh toán đơn hàng. Đơn vị: Giây |
url_redirect | √ | String | Đường link chuyển tiếp sau khi thực hiện thanh toán thành công |
url_notify | √ | String | Đường link thông báo kết quả đơn hàng |
url_cancel | √ | String | Đường link chuyển tiếp khi khách hàng hủy thanh toán |
customer_fullname | String | Họ và tên khách hàng | |
customer_email | String | Địa chỉ email khách hàng | |
customer_mobile | String | Số điện thoại khách hàng |
Response data:
Parameter | Type | Description |
---|---|---|
url_checkout | String | Đường link thanh toán được tạo |
time_expired | Int | Thời gian hết hạn link thanh toán |
merchant_request_id | String | Mã đơn hàng Merchant tự tạo và là duy nhất cho mỗi yêu cầu |
payment_id | String | Mã thanh toán của Payon |
payment_token | String | Token thanh toán |
Thanh toán QrCode:
Quy trình thực hiện thanh toán qua QrCode:
- Bước 1 :
Khách hàng sẽ đặt một yêu cầu thanh toán tới Merchant -->
Yêu cầu lấy danh sách ngân hàng sang PayOn -->
PayOn gửi lại Merchant danh sách ngân hàng -->
Merchant sẽ hiển thị danh sách ngân hàng cho khách hàng.
- Bước 2 :
Chọn ngân hàng để thanh toán QR Code gửi tới Merchant -->
Yêu cầu PayOn tạo QRCode -->
Gửi yêu cầu thanh toán QRCode tới Bank -->
Trả mã QRCode về PayOn -->
Trả tiếp QRCode về Merchant -->
Hiển thị mã QRCode cho khách hàng thanh toán.
- Bước 3 :
Khách hàng sử dụng APP quét mã QRCode để thanh toán và điền thông tin cần thiết -->
Bank sẽ thông báo kết quả giao dịch vừa rồi về PayOn -->
Merchant gọi API checkpayment để kiểm tra và xác nhận giao dịch
Hàm API lấy danh sách ngân hàng hỗ trợ QrCode:
POST {API_URL}/getQrBankCode
Request data:
Parameter | Required | Type | Description |
---|---|---|---|
service_type_code | √ | String | Loại thanh toán: PAYNOW |
service_code | √ | String | Dịch Vụ thanh toán: PAYNOW_QRLOCALBANK_DYNAMIC |
method_code | √ | String | Phương thức thanh toán: LOCALBANK |
HTTP Response:
Parameter | Type | Description |
---|---|---|
Banks | Json Object | Danh sách bank.Chi tiết |
Banks:
Parameter | Type | Description |
---|---|---|
code | String | Mã ngân hàng dùng để thanh toán. |
full_name | String | Tên ngân hàng. |
logo | String | Đường link logo ngân hàng. |
trade_name | String | Tên thương mại của ngân hàng. |
Example:
{
"error_code": "00",
"error_message": "Success",
"app_id": "appDoctor4U",
"checksum":"3c57be97f19fcb05cd0ab3142c43f88f",
"data": [
{
"Banks":{
"ABB":{
"code": "ABB",
"full_name": "NH TMCP An Bình",
"logo":"https://dev-api-merchant.payon.vn/v1/merchant/images/bank/favicon/ABB.png",
"trade_name": "ABBank",
"url": ""
},
"ACB":{
"code": "ACB",
"full_name": "NH TMCP Á Châu",
"logo":"https://dev-api-merchant.payon.vn/v1/merchant/images/bank/favicon/ACB.png",
"trade_name": "NH Á Châu",
"url": ""
},
}
}
]
}
Hàm tạo mã QR thanh toán:
POST {API_URL}/createQRCode
Request data:
Parameter | Required | Type | Description |
---|---|---|---|
service_type_code | √ | String | Loại thanh toán: PAYNOW . |
service_code | √ | String | Dịch Vụ thanh toán: PAYNOW_QRLOCALBANK_DYNAMIC |
method_code | √ | String | Phương thức thanh toán: LOCALBANK |
merchant_id | √ | Int | MC_ID Mã định danh Merchant trên hệ thống Payon |
merchant_request_id | √ | String | Mã đơn hàng Merchant tự tạo và là duy nhất cho mỗi yêu cầu |
amount | √ | Int | Giá trị đơn hàng. Đơn vị: VNĐ |
time_expire | √ | Int | Thời hạn link thanh toán đơn hàng. Đơn vị: Giây |
bank_code | √ | String | Mã ngân hàng thanh toán. |
description | √ | String | Mô tả thông tin đơn hàng |
currency | √ | String | Loại tiền tệ. Mặc định là VND. |
url_redirect | √ | String | Đường link chuyển tiếp sau khi thực hiện thanh toán thành công |
url_notify | √ | String | Đường link thông báo kết quả đơn hàng. |
url_cancel | √ | String | Đường link chuyển tiếp khi khách hàng hủy thanh toán. |
customer_fullname | String | Họ và tên khách hàng. | |
customer_email | String | Địa chỉ email khách hàng. | |
customer_mobile | String | Số điện thoại khách hàng. |
Response data:
Parameter | Type | Description |
---|---|---|
amount_payment | Int | Tổng tiền thanh toán. |
payment_id | String | Mã thanh toán của Payon |
qrcode_image | String | Ảnh QR code base64. |
qrcode_pay | String | Nội dung Qr Code. |
time_expired | Int | Thời gian hết hạn. |
payment_token | String | Token thanh toán |
Example:
{
"error_code": "00",
"error_message": "Xử lý thành công",
"app_id":"appDoctor4U",
"checksum":"c1de4492b5585c2185f7cdbe47f1804e",
"data": {
"amount_payment": 1030000,
"authorizationCode": "",
"bank_code":"ABB",
"check_order_url":"",
"checksum":"2ec6b248ac33f8e9d09171f55981ab60",
"currency":"VND",
"customer_email":"giaohangtot@gmail.com",
"customer_fullname":"Trần Văn A",
"customer_mobile":"0999999999", "cycle":0,
"description":"Thanh toán cho đơn hàng",
"id":1316,
"master_id":9999999329,
"merchant_id":10000002220,
"method_code":"LOCALBANK",
"notify_url":"",
"order_amount":1000000, "order_code":"5740b0d9-47d4-4150-adb1-9d73b61bf7ee",
"payment_id": "POUSELPWW7LO6XV",
"qrcode_image": "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAABlB MVEX///8AAABVwtN+AAACXElEQVR42uyZQW7sLBCEy2LBkiNwFC72yzbKxTgKR2DJArl+dePR2JO3N7w3LCJN8kVKC6q6uoPv+Z5/8iwkeViyrAiGZGJeEeS7aSKgAlgBw1hhyALLWAIANxXge4Vlq8FwR7AZCJZtPAAUgHmTS4hlWkDvQoCKFfMB+qKCKbCJjFIm//DkngW6eFNzsQaTV5eqj+W3uscG+rGEYwV5CHD8ttPBgYVZ1Q13WKqRVmz3y3oegM1wsaJBPf4AKlaXbN44EwCYIh/c3j+F6kla/swFeMPdssnPupFmOMK/LGgOwOaG1SbVecPGJM4ayH0gYKlShciANUB0W30kq/8pmAhgNhLVGhYx0q3IiyqA39/ynwCoMEXuyUWmJsJm1hbRXkY6BOD1HZ3xYCmo6qHXy5oCkAtJmnQk5CTLyIuRTgHoOY00GB6Oqgt7zw8PA3IXbrdUy9dnL02M9mpBcwCQ4aRsFSoJTcXw1zInAGBEARo4AS1TxOFv8n8c8NqzWLpPitGzBJle0zwAbJbhhOQu7VdT2lIC8zsxTwCoLjTWR7L5Qzw0Fvm1q7qfB6gvSi9EgkL1O0K9rziGB5i1Z5nunFsBs3x5z91TAKeOKRYELCVA2gHw31yANDWdsyzbayYnL0/ueeA1d1NsvvkDQUrBRzwYHeg7kD4Rkn3dtOnS7LYrHh0491FqVM2f+yhc88MIgGdZLfsKwUfdgWi2nxBIknR6wVrhLTbPAmgK6kaqKY0fTe1xQP52qQIIJi/s+8nPNezowPl/HN0eULN93/8ZTgR8z/f8Zef/AAAA///G2IapW0+SRwAAAABJRU5ErkJggg==",
"qrcode_pay":"0002010102122624000697042601100106393463520483585303704540410005802VN5919VIMOTECHNOLOGYJSC6005HANOI6246011003MP3262110320CTCPCN MPOS VIET NAM0704000563047E6D",
"service_code": "PAYNOW_QRLOCALBANK_DYNAMIC",
"service_type_code": "PAYNOW",
"service_type_id": 2,
"status": 1,
"time_expired": 1613982264,
"token_code": "7da7ba96-ef92-4dfd-9bca-363c7442d1cb",
"transaction_id": "POP5Z86A2XW7SWZ",
"user_id": 0,
"userfee": 1
}
}
Trả góp:
Hàm lấy danh sách ngân hàng hỗ trợ:
POST {API_URL}/getBankInstallment
Response data:
Parameter | Type | Description |
---|---|---|
Banks | Json Object | Danh sách bank.Chi tiết |
Banks:
Parameter | Type | Description |
---|---|---|
code | String | Mã ngân hàng dùng để thanh toán. |
full_name | String | Tên ngân hàng. |
logo | String | Đường link logo ngân hàng. |
trade_name | String | Tên thương mại của ngân hàng. |
installment_rule | String | Các điều kiện khi thực hiện giao dịch trả góp. |
cycle | Array | Các kỳ hỗ trợ trả góp: 3 tháng, 6 tháng, 9 tháng, 12 tháng . |
installment_card_type | Array | Loại thẻ hỗ trợ trả góp: VISA, MASTERCARD, JCB . |
Example:
{
"error_code":"00",
"error_message":"Success",
"app_id":"appDoctor4U",
"checksum":"112714fd905178ab2e383e2d26d428cd",
"data":{
"Banks":{
"ACB":{
"code":"ACB",
"trade_name":"NH Á Châu",
"full_name":"NH TMCP Á Châu",
"logo":"https://dev-api-merchant.payon.vn/v1/merchant/images/bank/favicon/ACB.png",
"installment_rule":"- Nếu KH giao dịch bằng thẻ phụ, thì chủ thẻ chính cần liên hệ thông báo với NH về GD Trả Góp qua VIMO",
"cycle":["3","6","9","12"],
"installment_card_type":["visa", "mastercard", "jcb"],
},
"VPB":{
"code":"VPB",
"trade_name":"VPBank",
"full_name":"NH TMCP Việt Nam Thịnh Vượng",
"logo":"https://dev-api-merchant.payon.vn/v1/merchant/images/bank/favicon/VPB.png",
"url":"",
"installment_rule":"- Thẻ Doanh nghiệp sẽ Không được Ngân hàng hỗ trợ Trả góp.\u003cbr\u003e\r\n- Chủ thẻ Không cần liên hệ, PayOn sẽ liên hệ Ngân hàng để chuyển đổi Trả góp.",
"cycle":["3","6","9","12"],
"installment_card_type":["visa", "mastercard"],
}
}
}
}
Hàm thông tin phí:
POST {API_URL}/getFeeInstallmentv2
Request data:
Parameter | Required | Type | Description |
---|---|---|---|
merchant_id | √ | Int | MC_ID Mã định danh Merchant trên hệ thống Payon |
amount | √ | Int | Giá trị đơn hàng. Đơn vị: VNĐ |
bank_code | √ | String | Mã ngân hàng thanh toán. |
cycles | √ | Array | Số kỳ (3-6-9 tháng) trả góp. VD: [3,6,9] |
card_type | √ | String | Loại thẻ thanh toán:VISA, MASTERCARD, JCB . |
Response data:
Parameter | Type | Description |
---|---|---|
amount_payment | Int | Số tiền đơn hàng. |
fee | Int | Phí thanh toán. |
userfee | Int | Chọn người chịu phí: 1. Người mua chịu phí thanh toán 2. Người bán chịu phí thanh toán. |
receiver_fee | Int | Phí người bán. Dùng để hiển thị trên giao diện. |
sender_fee | Int | Phí người mua. Dùng để hiển thị trên giao diện. |
Example:
{
"error_code": "00",
"error_message": "Xử lý thành công",
"app_id": "appDoctor4U",
"checksum": "4cbdaab20f6e0c8fd50d6366d118ae48",
"data": {
"3": {
"amount_payment": 10000000,
"fee": 151000,
"receiver_fee": 151000,
"sender_fee": 0,
"userfee": 2
},
"6": {
"amount_payment": 10000000,
"fee": 630000,
"receiver_fee": 630000,
"sender_fee": 0,
"userfee": 2
},
"9": {
"amount_payment": 10000000,
"fee": 730000,
"receiver_fee": 730000,
"sender_fee": 0,
"userfee": 2
}
}
}
Hàm tạo yêu cầu thanh toán:
POST {API_URL}/createOrderInstallment
Request data:
Parameter | Required | Type | Description |
---|---|---|---|
merchant_id | √ | Int | MC_ID Mã định danh Merchant trên hệ thống Payon |
merchant_request_id | √ | String | Mã đơn hàng Merchant tự tạo và là duy nhất cho mỗi yêu cầu. |
description | √ | String | Mô tả thông tin đơn hàng. |
amount | √ | Int | Giá trị đơn hàng. Đơn vị: VNĐ. |
time_expire | √ | Int | Thời hạn link thanh toán đơn hàng. Đơn vị: Giây |
bank_code | √ | String | Mã ngân hàng thanh toán. |
cycle | √ | Int | Số kỳ (tháng) trả góp. |
card_type | √ | String | Loại thẻ thanh toán:VISA, MASTERCARD, JCB . |
userfee | √ | Int | Chọn người chịu phí: 1. Người mua chịu phí thanh toán 2. Người bán chịu phí thanh toán. |
url_redirect | √ | String | Đường link chuyển tiếp sau khi thực hiện thanh toán thành công. |
url_notify | √ | String | Đường link thông báo kết quả đơn hàng. |
url_cancel | √ | String | Đường link chuyển tiếp khi khách hàng hủy thanh toán. |
customer_fullname | String | Họ và tên khách hàng. | |
customer_email | String | Địa chỉ email khách hàng. | |
customer_mobile | String | Số điện thoại khách hàng. |
Response data:
Parameter | Type | Description |
---|---|---|
url_checkout | String | Đường link thanh toán được tạo. |
time_expired | Int | Thời gian hết hạn link thanh toán. |
merchant_request_id | String | Mã đơn hàng Merchant tự tạo và là duy nhất cho mỗi yêu cầu |
payment_id | String | Mã thanh toán của Payon. |
payment_token | String | Token thanh toán. |
Example:
{
"url_checkout":"https://dev-api-merchant.payon.vn/v1/merchant/method/0b158186-d1c5-45e0-a97a745e0 1bacf52",
"time_expired":1623922287,
"merchant_request_id":"31fd1271-a7b6-4b45-a299-500e5b713d6d",
"payment_id":"POOJ93HUCFPNWUC",
"payment_token":"0b158186-d1c5-45e0-a97a-745e01bacf52",
"status":1
}
Thông báo kết quả đơn hàng:
Post from JSON data:
Parameter | Type | Description |
---|---|---|
data | Array | Data notify |
checksum | String | MD5 (APP_ID + JSON(data) + MC_SECRET_KEY) |
Data Array:
Parameter | Type | Description |
---|---|---|
merchant_id | Int | MC_ID Mã định danh Merchant trên hệ thống Payon |
merchant_request_id | String | Mã đơn hàng Merchant tự tạo và là duy nhất cho mỗi yêu cầu |
payment_id | String | Mã thanh toán của Payon |
transaction_id | String | Mã giao dịch |
payment_token | String | Token thanh toán |
time_performed | Int | Thời gian hoàn thành giao dịch |
amount | Int | Giá trị đơn hàng. Đơn vị: VNĐ |
fee | Int | Phí giao dịch merchant phải chịu. Đơn vị: VNĐ |
status | Int | Trạng thái đơn hàng. Chi tiết |
transaction_detail | Array | Chi tiết giao dịch Chi tiết |
Trạng thái đơn hàng:
Giá trị | Mô tả |
---|---|
1 | Mới tạo |
2 | Thành công |
3 | Thất bại |
4 | Đang xử lý |
5 | Được hoàn tiền |
6 | Bị từ chối |
Chi tiết giao dịch:
Parameter | Type | Description |
---|---|---|
merchant_id | Int | MC_ID Mã định danh Merchant trên hệ thống Payon |
merchant_request_id | String | Mã đơn hàng Merchant tự tạo và là duy nhất cho mỗi yêu cầu |
payment_id | String | Mã thanh toán của Payon |
transaction_id | String | Mã giao dịch |
payment_token | String | Token thanh toán |
time_performed | Int | Thời gian hoàn thành giao dịch |
amount | Int | Giá trị đơn hàng. Đơn vị: VNĐ |
fee | Int | Phí giao dịch merchant phải chịu. Đơn vị: VNĐ |
status | Int | Trạng thái đơn hàng. Chi tiết |
order_amount | Int | Giá trị thực nhận |
user_fee | Int | Người chịu phí |
description | Int | Kết quả đơn hàng |
authorization_code | String | Mã xác thực |
checksum | String | Chuỗi kiểm tra tính toàn vẹn dữ liệu |
Hàm kiểm tra giao dịch:
POST {API_URL}/checkPayment
Request data:
Parameter | Required | Type | Description |
---|---|---|---|
merchant_request_id | √ | String | Mã đơn hàng Merchant tự tạo và là duy nhất cho mỗi yêu cầu. |
Response data:
Parameter | Type | Description |
---|---|---|
merchant_id | Int | MC_ID Mã định danh Merchant trên hệ thống Payon |
merchant_request_id | String | Mã đơn hàng Merchant tự tạo và là duy nhất cho mỗi yêu cầu |
service_code | String | Dịch Vụ thanh toán: PAYNOW_QRLOCALBANK_DYNAMIC |
method_code | String | Phương thức thanh toán: LOCALBANK |
type_card_payment | String | Loại thẻ thanh toán: ATM, VISA, MASTERCARD |
bank_code | String | Mã ngân hàng thanh toán |
card_number | String | Thông tin thẻ thanh toán 424242XXXXXX4242 |
card_fullname | String | Tên chủ thẻ |
payment_id | String | Mã thanh toán của Payon |
payment_token | String | Token thanh toán |
time_performed | Int | Thời gian hoàn thành giao dịch |
amount | Int | Giá trị đơn hàng. Đơn vị: VNĐ |
fee | Int | Phí giao dịch merchant phải chịu. Đơn vị: VNĐ |
status | Int | Trạng thái giao dịch. Chi tiết |
Trạng thái giao dịch:
Giá trị | Mô tả |
---|---|
1 | Mới tạo |
2 | Thành công |
3 | Thất bại |
4 | Đang chờ duyệt |
6 | Bị từ chối |
Bảng mã lỗi:
Error Code | Mô tả mã lỗi |
---|---|
00 | Thành công |
01 | Thất bại |
02 | IP đối tác bị khóa hoặc chưa được khai báo |
03 | Phương thức HTTP không đúng |
04 | Checksum không hợp lệ |
05 | Tham số không hợp lệ |
06 | Không tìm thấy yêu cầu dịch vụ |
07 | Tham số chưa chính xác |
08 | Không tìm thấy yêu cầu |
09 | Mã Merchant không đúng |
98 | Timeout |
99 | Lỗi không xác định |
1001-02 | Mã yêu cầu thanh toán đã tồn tại |
Thông tin test:
Thông tin thẻ nội địa:
Ngân hàng | Số thẻ | Tên chủ thẻ | Ngày phát hành | OTP | Loại thanh thanh toán |
---|---|---|---|---|---|
Tất cả | 9704000000000018 | NGUYEN VAN A | 03-07 | otp | REDIRECT |
Thông tin thẻ quốc tế:
Số thẻ | Tên chủ thẻ | Ngày hết hạn | OTP/CCV | |
---|---|---|---|---|
Thẻ VISA | 4242 4242 4242 4242 | NGUYEN VAN A | 08/24 | 1234 |
Thẻ VISA | 4456 5300 0000 1005 | NGUYEN VAN A | 08/24 | 1234 |
Thẻ VISA | 4456 5300 0000 1096 | NGUYEN VAN A | 08/24 | 1234 |
Thẻ Mastercard | 5444 0000 0000 5507 | NGUYEN VAN A | 08/24 | 1234 |
Thẻ Mastercard | 5200 0000 0000 1005 | NGUYEN VAN A | 08/24 | 1234 |
Thẻ Visa (Review) | 4456 5300 0000 1021 | NGUYEN VAN A | 08/24 | 1234 |
Thẻ Mastercard | 5200 0000 0000 1021 | NGUYEN VAN A | 08/24 | 1234 |
SDK PayOn:
- SDK sử dụng cho PHP : https://github.com/nextpaygroup/payon-php-sdk. - SDK sử dụng cho Java : https://github.com/nextpaygroup/payon-java-sdk.
Plugin WordPress:
Plugin trong WordPress là một hay nhiều đoạn code được bổ sung vào mã nguồn của website. Plugin được xem là phần mở rộng của trang website giúp người dùng bổ sung thêm nhiều tính năng khác cho trang WordPress của mình. Plugin PayOn PaymentGateway hỗ trợ tích hợp cổng thanh toán PayOn vào website Wordpress dễ dàng và nhanh chóng, khách hàng có thể thanh toán bằng hình thức trả ngay hoặc trả góp 0% tiện lợi.
Link cài đặt plugin:https://wordpress.org/plugins/payon-paymentgateway/. Hướng dẫn tạo và xác thực tài khoản PayOn tại đây. Hướng dẫn liên kết thanh toán PayOn trên Woocommerce tại đây.
Thanh toán Quẹt thẻ
Mục đích tài liệu
Tài liệu mô tả và hướng dẫn thực hiện tích hợp kết nối kỹ thuật giữa hệ thống thanh toán của Đơn vị chấp nhận thẻ (ĐVCNT) với giải pháp thanh toán trên di động MPOS.
Yêu cầu thanh toán sẽ được gửi từ server của đối tác tới ứng dụng mobile MPOS một cách tự động. Sau khi tiến hành thanh toán trên ứng dụng MPOS, trạng thái của hóa đơn sẽ được cập nhật tự động về máy POS của Đơn vị chấp nhận thẻ.
Điều kiện kết nối
- Là ĐVCNT của MPOS.VN đang hoạt động .
- Cấu hình tích hợp thanh toán trên hệ thống MPOS.VN đã được MPOS.VN xác thực.
Phương thức giao tiếp
Mọi giao tiếp từ MPOS SERVER đến hệ thống của Đơn vị chấp nhận thẻ đều qua kết nối Internet, sử dụng HTTPS protocol và REST API.
API_URL Môi trường Sandbox: http://devapi.mpos.vn/supermarket/ (Test). API_URL Môi trường Product: https://api.mpos.vn/supermarket/ (Live).
Tất cả yêu cầu truy vấn API từ MPOS đến hệ thống của Đơn vị chấp nhận thẻ (ĐVCNT) đều được mã hoá:
- Sử dụng AES128 để mã hoá/giải mã.
- Độ dài key 16 bytes.
Mã hoá:
- Tạo chuỗi JSON với các thông tin cần thiết cho mỗi Request.
- Mã hoá chuỗi JSON với Key đã được cấp.
- Encode chuỗi mã hoá thành Base64 để thực hiện gửi và nhận giữa 2 hệ thống.
Giải mã:
- Decode Base64 từ dữ liệu nhận được.
- Giải mã chuỗi Decode trước đó bằng Key đã được cấp thu được chuỗi JSON.
- Key AES sẽ được MPOS cấp tại trang quản trị của Đơn vị chấp nhận thẻ.
- Key AES sẽ được MPOS cấp tại trang quản trị của ĐVCNT.
Thanh toán Push Payment
Hình bên dưới mô tả luồng giao tiếp thanh toán đơn hàng được tạo từ ứng dụng của ĐVCNT và sử dụng hình thưc quẹt thẻ trên app MPOS để xác nhận thanh toán:
BƯỚC | MÔ TẢ |
---|---|
1 | Nhân viên thu ngân (dùng giao diện web/máy POS) gửi thông tin cần thanh toán lên CRM 3rd Party. (CRMP). |
2 | CRMP gửi thông tin hoá đơn cần thanh toán sang MPOS Server (MPS). |
3 | MPS đẩy thông tin hoá đơn hiển thị lên màn hình của ứng dụng MPOS tại quầy thu ngân. |
4 | Nhân viên thu ngân đăng nhập ứng dụng MPOS nếu chưa đăng nhập và nhập mã của nhân viên thu ngân. Tại màn hình thu ngân sẽ hiển thị thông tin hoá đơn và tổng số tiền cần thanh toán của khách hàng. |
5 | Thu ngân đối chiếu số tiền hiển thị và thực hiện thanh toán đúng với số tiền hiện thị trên màn hình của ứng dụng MPOS. |
6 | MPS gửi thông tin hoá đơn cùng thông tin thanh toán sang CRMP. |
7 | CRMP gửi trạng thái thanh toán hóa đơn tới web/ máy pos của thu ngân. |
Tạo đơn hàng thanh toán
REQUEST reqData
- Các trường trong chuỗi JSON reqData sử dụng:
# | Tham số | Bắt buộc | Kiểu dữ liệu | Mô tả |
---|---|---|---|---|
1 | serviceName | ✔ | string | Giá trị “ADD_ORDER_INFOR” |
2 | orderId | ✔ | string | Thông tin hoá đơn cần thanh toán (Mã hoá đơn) |
3 | posId | ✔ | string | Mã định danh duy nhất của máy POS trên hệ thống đối tác |
4 | amount | ✔ | string | Số tiền của hoá đơn cần thanh toán |
5 | description | string | Mô tả thông tin của hoá đơn cần thu |
RESPONSE resData
- Các trường trong chuỗi JSON resData sử dụng:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | serviceName | string | Giá trị “ADD_ORDER_INFOR” |
2 | orderId | string | Thông tin hoá đơn cần thanh toán (Mã hoá đơn) |
3 | posId | string | Mã định danh duy nhất của máy POS trên hệ thống đối tác |
4 | amount | string | Số tiền thanh toán |
5 | description | string | Mô tả thông tin của hoá đơn cần thu |
Hủy/Xóa hóa đơn
REQUEST reqData
- Các trường trong chuỗi JSON reqData sử dụng:
# | Tham số | Bắt buộc | Kiểu dữ liệu | Mô tả |
---|---|---|---|---|
1 | serviceName | ✔ | string | Giá trị “REMOVE_ORDER_INFOR” |
2 | orderId | ✔ | string | Thông tin hoá đơn cần thanh toán (Mã hoá đơn) |
3 | posId | ✔ | string | Mã định danh duy nhất của máy POS trên hệ thống đối tác |
4 | amount | ✔ | string | Số tiền của hoá đơn cần thanh toán |
RESPONSE resData
- Các trường trong chuỗi JSON resData sử dụng:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | serviceName | string | Giá trị “REMOVE_ORDER_INFOR” |
2 | orderId | string | Thông tin hoá đơn cần thanh toán (Mã hoá đơn) |
3 | posId | string | Mã định danh duy nhất của máy POS trên hệ thống đối tác |
4 | amount | string | Số tiền thanh toán |
Nhận thông tin thanh toán và cập nhật trạng thái giao dịch
ĐVCNT cung cấp API cho phép MPOS gửi dữ liệu thanh toán cùng mã hoá đơn cho ĐVCNT khi thay đổi trạng thái của giao dịch. ĐVCNT cung cấp endpoint này để MPOS cấu hình trên hệ thống.
# | Tham số | Bắt buộc | Kiểu dữ liệu | Mô tả |
---|---|---|---|---|
1 | serviceName | ✔ | string | Giá trị SERVICE_UPDATE_TRANSACTION |
2 | transStatus | ✔ | long | Trạng thái giao dịch: 100: Thành công 101: Đảo 102: Hủy 104: Kết toán |
3 | transCode | ✔ | string | Mã giao dịch đối soát với MPOS |
4 | transDate | ✔ | timestamp | Ngày/Giờ giao dịch |
5 | transAmount | ✔ | long | Số tiền giao dịch |
6 | issuerCode | ✔ | string | Loại thẻ: VISA MASTER DOMESTIC |
7 | muid | ✔ | string | Mã user thực hiện thanh toán |
8 | orderId | ✔ | string | Thông tin hoá đơn cần thanh toán (Mã hoá đơn) |
9 | posId | ✔ | string | Mã nhân viên thu ngân |
Api kiểm tra giao dịch
API cho phép đối tác kiểm tra trạng thái thanh toán của hóa đơn
REQUEST reqData
- Các trường trong chuỗi JSON reqData sử dụng:
# | Tham số | Bắt buộc | Kiểu dữ liệu | Mô tả |
---|---|---|---|---|
1 | serviceName | ✔ | string | Giá trị “GET_TRANSACTION_STATUS” |
2 | orderId | ✔ | string | Thông tin hoá đơn cần thanh toán (Mã hoá đơn) |
3 | posId | ✔ | string | Mã định danh duy nhất của máy POS trên hệ thống đối tác |
4 | amount | ✔ | string | Số tiền của hoá đơn cần thanh toán |
RESPONSE resData
- Các trường trong chuỗi JSON resData sử dụng:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | serviceName | string | Giá trị “REMOVE_ORDER_INFOR” |
2 | orderId | string | Thông tin hoá đơn cần thanh toán (Mã hoá đơn) |
3 | posId | string | Mã định danh duy nhất của máy POS trên hệ thống đối tác |
4 | amount | string | Số tiền thanh toán |
5 | transStatus | string | Trạng thái giao dịch: -1: Giao dịch không tồn tại 100: Thành công 101: Đảo 102: Hủy 103: Chờ chữ kí chủ thẻ 104: Kết toán |
6 | pan | string | 6 số đầu và 4 số cuối của thẻ thanh toán |
7 | authCode | string | Mã chuẩn chi cho giao dịch |
8 | rrn | string | Mã định danh của ngân hàng phát hành |
9 | transCode | string | Mã giao dịch đối soát với MPOS |
10 | paymentIdentifier | string | Mã định danh của giao dịch trên MPOS |
11 | transDate | timestamp | Ngày/Giờ giao dịch |
Kết nối dịch vụ VAS
Billing ( điện, nước, tài chính.. ) , Topup ( Telco, Game, Data, ...) , Pincode , Ticket ( Tàu, xe, xem phim ..)
Thông tin kết nối VAS
- Phương thức Restful
- Thông tin kết nối
- URL_API
- MC_CODE
- MC_AUTH_USER
- MC_AUTH_PASS
- MC_ENCRYPT_KEY
- MC_CHECKSUM_KEY
Request Payload
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | func | string | Tên hàm |
2 | Merchantcode | string | Mã Merchant (cung cấp bởi Vimo.vn) |
3 | data | JSON string | Mã hóa bằng AES 256, key mã hóa (MC_ENCRYPT_KEY) được cung cấp bởi Vimo |
4 | checksum | string | MD5 (MC_CODE + data + MC_CHECKSUM_KEY), key tạo checksum được cung cấp bởi Vimo |
Response Payload
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | error_code | string | Mã lỗi |
2 | error_message | string | Mô tả lỗi |
3 | merchant_code | string | Mã merchant |
4 | checksum | string | checksum |
5 | data | object | Dữ liệu trả về |
Kiểm tra số dư tài khoản đối tác
Request data
# | Tham số | Bắt buộc | Kiểu dữ liệu | Mô tả |
---|---|---|---|---|
1 | mc_request_id | ✔ | string | Mã yêu cầu dịch vụ của merchant |
Response data là object chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | balance | string | Token thanh Số dư khả dụng |
2 | balance_holding | string | Số dư chờ chuyển |
Kiểm tra thông tin kết nối
Đang cập nhật
Thanh toán hóa đơn
Truy vấn hóa đơn - Hàm querybill
Request data
# | Tham số | Bắt buộc | Kiểu dữ liệu | Mô tả |
---|---|---|---|---|
1 | mc_request_id | ✔ | string | Mã yêu cầu dịch vụ của merchant |
2 | service_code | ✔ | string | Mã dịch vụ |
3 | publisher | ✔ | string | Mã nhà cung cấp/phát hành |
4 | customer_code | ✔ | string | Mã khách hàng |
Response data là object chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | transaction_id | string | Mã giao dịch |
2 | billDetail | array | Mảng dữ liệu |
3 | customerInfo | object | Thông tin khách hàng |
billDetail là array chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | billNumber | string | Mã hóa đơn |
2 | period | string | Kỳ thanh toán |
3 | amount | int | Số tiền hóa đơn |
4 | billType | string | Loại hóa đơn |
5 | otherInfo | JSON string | creationDate: Ngày tạo expirationDate: Ngày đến hạn payDate: Ngày thanh toán addFee: Phụ phí (thu hộ nhà cung cấp) partial: Thanh toán * true: thanh toán 1 phần * false: thanh toán toàn phần minAmount: Số tiền thanh toán tối thiểu * 0: yêu cầu thanh toán toàn bộ * 0 < value ≤ amount: cho phép thanh toán ≥ minAmount |
customerInfo là object chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | customerCode | string | Mã khách hàng |
2 | customerName | string | Tên khách hàng |
3 | customerAddress | string | Địa chỉ khách hàng |
4 | customerOtherInfo | string | Thông tin khác:* customer_phone * tax_code |
Chú ý: Ở API truy vấn trả về thông tin otherInfo có giá trị addFee thì khi gọi thanh toán 1 phần cần phải truyền lên addFee được tính toán theo chính sách từng thời điểm (giá trị này MC tự tính toán)
Thanh toán hóa đơn - Hàm paybillv2
Request data
# | Tham số | Bắt buộc | Kiểu dữ liệu | Mô tả |
---|---|---|---|---|
1 | mc_request_id | ✔ | string | Mã yêu cầu dịch vụ của merchant |
2 | service_code | ✔ | string | Mã dịch vụ |
3 | publisher | ✔ | string | Mã nhà cung cấp/phát hành |
4 | customer_code | ✔ | string | Mã khách hàng |
5 | bill_payment | ✔ | array | Thông tin hóa đơn truyền vào được truy vấn ở bước query |
6 | billNumber | ✔ | string | Mã hóa đơn |
7 | period | string | Kỳ thanh toán | |
8 | amount | ✔ | int | Số tiền hóa đơn |
9 | billType | string | Loại hóa đơn | |
10 | otherInfo | ✔ | JSON string | creationDate: Ngày tạo expirationDate: Ngày đến hạn payDate: Ngày thanh toán addFee: Phụ phí (yêu cầu truyền đúng giá trị từ hàm truy vấn) partial: Thanh toán * true: thanh toán 1 phần * false: thanh toán toàn phần minAmount: Số tiền thanh toán tối thiểu * 0: yêu cầu thanh toán toàn bộ * 0 < value ≤ amount: cho phép thanh toán ≥ minAmount channel_source: Kênh giao dịch |
Response data là object chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | transaction_id | string | Mã giao dịch |
2 | billDetail | array | Mảng dữ liệu |
3 | customerInfo | object | Thông tin khách hàng |
billDetail là array chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | billNumber | string | Mã hóa đơn |
2 | period | string | Kỳ thanh toán |
3 | amount | int | Số tiền hóa đơn |
4 | billType | string | Loại hóa đơn |
5 | billOtherInfo | JSON string | Thông tin khác |
customerInfo là object chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | customerCode | string | Mã khách hàng |
2 | customerName | string | Tên khách hàng |
3 | customerAddress | string | Địa chỉ khách hàng |
4 | customerOtherInfo | string | Thông tin khác |
Thanh toán hóa đơn – Hàm paybillpartial
Chú ý: Chỉ áp dụng với các trường hợp thanh toán một phần – hóa đơn tài chính
Request data
# | Tham số | Bắt buộc | Kiểu dữ liệu | Mô tả |
---|---|---|---|---|
1 | mc_request_id | ✔ | string | Mã yêu cầu dịch vụ của merchant |
2 | service_code | ✔ | string | Mã dịch vụ |
3 | publisher | ✔ | string | Mã nhà cung cấp/phát hành |
4 | customer_code | ✔ | string | Mã khách hàng |
5 | bill_payment | ✔ | array | Thông tin hóa đơn truyền vào được truy vấn ở bước query |
6 | billNumber | ✔ | string | Mã hóa đơn |
7 | period | string | Kỳ thanh toán | |
8 | amount | ✔ | int | Số tiền hóa đơn |
9 | billType | string | Loại hóa đơn | |
10 | otherInfo | ✔ | JSON string | creationDate: Ngày tạo expirationDate: Ngày đến hạn payDate: Ngày thanh toán addFee: Phụ phí (thu hộ nhà cung cấp, lấy addfee qua hàm getaddfee) partial: Thanh toán * true: thanh toán 1 phần * false: thanh toán toàn phần minAmount: Số tiền thanh toán tối thiểu * 0: yêu cầu thanh toán toàn bộ * 0 < value ≤ amount: cho phép thanh toán ≥ minAmount channel_source: Kênh giao dịch |
Response data là object chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | transaction_id | string | Mã giao dịch |
2 | billDetail | array | Mảng dữ liệu |
3 | customerInfo | object | Thông tin khách hàng |
billDetail là array chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | billNumber | string | Mã hóa đơn |
2 | period | string | Kỳ thanh toán |
3 | amount | int | Số tiền hóa đơn |
4 | billType | string | Loại hóa đơn |
5 | billOtherInfo | JSON string | Thông tin khác |
customerInfo là object chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | customerCode | string | Mã khách hàng |
2 | customerName | string | Tên khách hàng |
3 | customerAddress | string | Địa chỉ khách hàng |
4 | customerOtherInfo | string | Thông tin khác |
Truy vấn phụ phí – Hàm getaddfee
Request data
# | Tham số | Bắt buộc | Kiểu dữ liệu | Mô tả |
---|---|---|---|---|
1 | mc_request_id | ✔ | string | Mã yêu cầu dịch vụ của merchant |
2 | service_code | ✔ | string | Mã dịch vụ |
3 | publisher | ✔ | string | Mã nhà cung cấp/phát hành |
4 | customer_code | string | Mã khách hàng | |
5 | amount | ✔ | int | Số tiền hóa đơn |
Response data
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | data | JSON string | addfee: Số tiền addfee |
Kiểm tra giao dịch – Hàm checkbilltransaction
Request data
# | Tham số | Bắt buộc | Kiểu dữ liệu | Mô tả |
---|---|---|---|---|
1 | mc_request_id | ✔ | string | Mã yêu cầu dịch vụ của merchant |
2 | service_code | ✔ | string | Mã dịch vụ |
Response data là array chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | transaction_id | string | Mã giao dịch |
Kiểm hủy giao dịch – hàm revertbill
- Áp dụng hàm reverbill với giao dịch : thời gian paybill < 15 phút, giao dịch chưa gạch nợ bởi đơn vị điện lực
- Áp dụng với dịch vụ FE, thời gian xử lý giao dịch hoàn khoản 3 ngày từ khi nhà cung cấp nhận được lệnh reverbill
Request data
# | Tham số | Bắt buộc | Kiểu dữ liệu | Mô tả |
---|---|---|---|---|
1 | mc_request_id | ✔ | string | Mã yêu cầu dịch vụ của merchant |
2 | mc_transaction_id | ✔ | string | Mã giao dịch đã thanh toán |
3 | service_code | ✔ | string | Mã dịch vụ |
4 | publisher | ✔ | string | Mã nhà cung cấp/phát hành |
5 | customer_code | ✔ | string | Mã khách hàng |
6 | bill_payment | ✔ | array | Chứa thông tin hóa đơn truyền vào được truy vấn ở bước query |
7 | billNumber | ✔ | string | Mã hóa đơn |
8 | period | string | Kỳ thanh toán | |
9 | amount | ✔ | string | Số tiền hóa đơn |
10 | billType | string | Loại hóa đơn | |
11 | otherInfo | JSON string | creationDate: Ngày tạo expirationDate: Ngày đến hạn payDate: Ngày thanh toán addFee: Phụ phí (thu hộ nhà cung cấp) minAmount: Số tiền thanh toán tối thiểu * 0: yêu cầu thanh toán toàn bộ * 0 < value ≤ amount: cho phép thanh toán ≥ minAmount channel_source: Kênh giao dịch |
Response data là object chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | transaction_id | string | Mã giao dịch |
2 | billDetail | array | Mảng dữ liệu |
3 | customerInfo | object | Thông tin khách hàng |
billDetail là array chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | billNumber | string | Mã hóa đơn |
2 | period | string | Kỳ thanh toán |
3 | amount | int | Số tiền hóa đơn |
4 | billType | string | Loại hóa đơn |
5 | billOtherInfo | JSON string | Thông tin khác |
customerInfo là object chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | customerCode | string | Mã khách hàng |
2 | customerName | string | Tên khách hàng |
3 | customerAddress | string | Địa chỉ khách hàng |
4 | customerOtherInfo | string | Thông tin khác |
Một số lưu ý
Thanh toán hóa đơn điện
Các loại hóa đơn điện
Loại bill (billType) | Mô tả |
---|---|
TD | Hóa đơn loại TD – Tiền điện (Nếu là EVN Hồ Chí Minh thì là loại Tiền điện – Thấp điểm) |
CD | Hóa đơn loại CD – Cấp điện (Nếu là EVN Hồ Chí Minh thì là loại Tiền điện – Cao điểm) |
BT | Hóa đơn loại Tiền điện – Bình thường |
DC | Hóa đơn loại DC – Đóng cắt |
DD | Hóa đơn loại DD – Di dời |
TC | Hóa đơn loại TC – Thay đổi công suất |
VC | Hóa đơn loại VC – Vô công |
LS | Lãi suất do trả chậm |
Đối với EVN Miền Bắc
Một KH có thể có nhiều hóa đơn các kỳ khác nhau, KH phải thanh toán kỳ xa nhất trước. (hóa đơn kỳ xa là hóa đơn có billID nhỏ nhất)
KH có thể có nhiều hóa đơn cùng 1 kỳ, cho phép KH lựa chọn hóa đơn thanh toán
Áp dụng hàm reverbill với giao dịch : thời gian paybill < 15 phút, giao dịch chưa gạch nợ bởi đơn vị điện lực
Đối với EVN Hồ Chí Minh
- Khi thanh toán không truyền bill_id, thực hiện thanh toán theo thứ tự bill HCM trả về
Đối với EVN Miền Trung
otherService coi như 1 bill cần thanh toán và không ràng buộc
Cho phép thanh toán từng bill, ưu tiên thanh toán bill ở billDetails trước otherService
Đối với EVN Miền Nam
Một KH có thể có nhiều hóa đơn các kỳ khác nhau, KH phải thanh toán kỳ xa nhất trước. (hóa đơn kỳ xa là hóa đơn có billID nhỏ nhất)
Một KH 1 kỳ có nhiều hóa đơn : TD, VC… Thì thanh toán hóa đơn có loại TD trước
Áp dụng hàm reverbill với giao dịch : thời gian paybill < 15 phút, giao dịch chưa gạch nợ bởi đơn vị điện lực
Thanh toán hóa đơn nước
Đang cập nhật...
Thanh toán hóa đơn tài chính
- Bill tài chính giới hạn 1 gd/bill/ngày và 2 gd/bill/tháng (với case thanh toán hóa đơn từng phần)
- Số tiền thanh toán tối thiểu: 50.000đ / tối đa 50.000.000
- FECREDIT , HOME, Mcredit, Mirae Asset, CASH24 là cho thanh toán từng phần
Với những dịch vụ được refund: FEC, CASH24 thời gian phản hồi là 3 ngày làm việc kể từ khi nhận được yêu cầu, sẽ phối hợp với đối tác tài chính để có kết quả sớm nhất
Nạp tiền tài khoản điện thoại/game/data
Mua dịch vụ topup điện thoại/ game – Hàm topup
Request data
# | Tham số | Bắt buộc | Kiểu dữ liệu | Mô tả |
---|---|---|---|---|
1 | mc_request_id | ✔ | string | Mã yêu cầu dịch vụ của merchant |
2 | service_code | ✔ | string | Mã dịch vụ |
3 | publisher | string | Mã nhà cung cấp/phát hành | |
4 | receiver | ✔ | string | SĐT/Tài khoản người nhận |
5 | amount | ✔ | int | Số tiền hóa đơn |
Response data là object chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | transaction_id | string | Mã giao dịch |
Mua dịch vụ topupdata – hàm topupdata
Request data
# | Tham số | Bắt buộc | Kiểu dữ liệu | Mô tả |
---|---|---|---|---|
1 | mc_request_id | ✔ | string | Mã yêu cầu dịch vụ của merchant |
2 | service_code | ✔ | string | Mã dịch vụ |
3 | publisher | string | Mã nhà cung cấp/phát hành | |
4 | receiver | ✔ | string | SĐT/Tài khoản người nhận |
5 | amount | ✔ | int | Số tiền hóa đơn |
Response data là object chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | transaction_id | string | Mã giao dịch |
Kiểm tra giao dịch – hàm checktopuptransaction
Request data
# | Tham số | Bắt buộc | Kiểu dữ liệu | Mô tả |
---|---|---|---|---|
1 | mc_request_id | ✔ | string | Mã yêu cầu dịch vụ của merchant |
2 | service_code | ✔ | string | Mã dịch vụ |
Response data là array chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | transaction_id | string | Mã giao dịch |
Mua mã thẻ điện thoại/game
Mua dịch vụ mã thẻ – hàm pincode
Request data
# | Tham số | Bắt buộc | Kiểu dữ liệu | Mô tả |
---|---|---|---|---|
1 | mc_request_id | ✔ | string | Mã yêu cầu dịch vụ của merchant |
2 | service_code | ✔ | string | Mã dịch vụ |
3 | publisher | ✔ | string | Mã nhà cung cấp/phát hành |
4 | quantity | ✔ | int | Số lượng |
5 | amount | ✔ | int | Số tiền hóa đơn |
Response data là object chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | transaction_id | string | Mã giao dịch |
2 | cards | Thông tin thẻ |
cards là chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | cardCode | string | Mã thẻ |
2 | cardSerial | string | Số serial thẻ |
3 | expiryDate | string | Ngày hết hạn (format dd/mm/yyyy) |
4 | cardValue | string | Mệnh giá |
Kiểm tra giao dịch – hàm getpincodetransaction
Request data
# | Tham số | Bắt buộc | Kiểu dữ liệu | Mô tả |
---|---|---|---|---|
1 | mc_request_id | ✔ | string | Mã yêu cầu dịch vụ của merchant |
2 | service_code | ✔ | string | Mã dịch vụ |
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | error_code | string | Mã lỗi |
2 | error_message | string | Mô tả lỗi |
3 | merchant_code | string | Mã merchant |
4 | checksum | string | Mã checksum |
4 | data | array | Dữ liệu trả về |
Response data là array chứa các tham số:
# | Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1 | transaction_id | string | Mã giao dịch |
Bảng mã lỗi VAS
Mã lỗi | Mô tả |
---|---|
00 | Thành công |
01 | Thất bại |
02 | Tham số không hợp lệ |
03 | Checksum không hợp lệ |
04 | IP đối tác bị khóa hoặc chưa được khai báo |
05 | Đối tác bị khóa hoặc chưa được khai báo |
06 | Tham số chưa chính xác |
07 | Dịch vụ chưa được khai báo |
08 | Sản phẩm chưa được khai báo |
09 | Thuộc tính/Mệnh giá sản phẩm chưa được khai báo |
20 | Kênh chưa được khai báo |
21 | Dịch vụ Nhà cung cấp không hợp lệ |
22 | Mã giao dịch đối tác không được trùng nhau |
23 | Không tìm thấy yêu cầu dịch vụ |
24 | Mã yêu cầu thanh toán không được trùng nhau |
25 | Số dư không đủ để thanh toán |
26 | Mã hóa đơn không chính xác hoặc chưa đến kỳ thanh toán |
27 | Hết thời gian thanh toán |