TÀI LIỆU ĐẶC TẢ · 2020-03-05 · Hệ thống các API trao đổi, chia sẻ dữ liệu...
Transcript of TÀI LIỆU ĐẶC TẢ · 2020-03-05 · Hệ thống các API trao đổi, chia sẻ dữ liệu...
1
VĂN PHÒNG CHÍNH PHỦ
TÀI LIỆU ĐẶC TẢ
API THANH TOÁN CHO BỘ/NGÀNH/ĐỊA PHƯƠNG
Ngày cập nhật 04/03/2020
2
MỤC LỤC
MỤC LỤC ................................................................................................................................. 2
I. Tổng quan ......................................................................................................................... 4
1.1 Mục tiêu ...................................................................................................................... 4
1.2 Quy trình thanh toán ................................................................................................... 4
1.3 Mô hình kết nối ........................................................................................................... 5
II. Đặc tả API và thông tin kết nối ...................................................................................... 6
2.1 Thông tin kết nối ......................................................................................................... 6
2.2 Giao tiếp giữa các hệ thống qua API .......................................................................... 7
2.3 Danh sách các API ...................................................................................................... 7
2.3.1 API Khởi tạo giao dịch ........................................................................................ 7
2.3.2 API Lấy biên lai thanh toán ............................................................................... 11
2.3.3 API Nhận kết quả giao dịch ............................................................................... 12
2.3.4 Nhận kết quả thanh toán trên giao diện (redirect) ............................................. 13
2.3.5 Hướng dẫn tạo chữ ký ....................................................................................... 14
III. DỮ LIỆU GIAO DỊCH .............................................................................................. 14
3.1 Mô tả ......................................................................................................................... 14
3.2 Định dạng file ........................................................................................................... 14
IV. BẢNG MÃ LỖI ........................................................................................................... 14
4.1.1 Bảng mã lỗi BNĐP trả về cho Payment Platform ............................................. 14
4.1.2 Bảng mã lỗi Payment Platform trả về cho BNĐP ............................................. 15
3
DANH MỤC CÁC TỪ VIẾT TẮT
STT VIẾT TẮT Ý NGHĨA
1. DVCQG Dịch vụ công Quốc gia
2. BNĐP Bộ/Ngành/Địa phương
3.
4.
4
I. Tổng quan
1.1 Mục tiêu
- Tài liệu hướng các Bộ/Ngành/Địa phương (BNĐP) kết nối đến hệ thống Payment
Platform của Cổng DVCQG
1.2 Quy trình thanh toán
Hình 1: Quy trình thanh toán
5
1.3 Mô hình kết nối
Hình 2: Mô hình kết nối
Hệ thống các API trao đổi, chia sẻ dữ liệu cần đi qua Nền tảng tích hợp, chia sẻ
dữ liệu (VDXP) được phát triển từ Trục liên thông văn bản quốc gia, các nội dung kỹ
thuật bao gồm:
- Các Bộ/Ngành/Địa phương cần liên hệ với VPCP để xin kết nối thông đến
mạng truyền số liệu chuyên dụng – CPNET theo mô hình như ở dưới:
6
- Thiết lập, cài đặt máy chủ bảo mật kết nối (SS – Secure Server) để kết nối với
Cổng Dịch vụ công quốc gia hoặc thiết lập máy chủ bảo mật mới theo tài liệu hướng
dẫn tại support.chinhphu.vn
- Cấu hình máy chủ bảo mật kết nối với Cổng dịch vụ công quốc gia theo hướng
dẫn của Văn phòng Chính phủ, tài liệu tại: https://dichvucong.gov.vn/p/home/huong-
dan-bo-nganh-dia-phuong.html
II. Đặc tả API và thông tin kết nối
2.1 Thông tin kết nối
Mục Diễn giải Ví dụ
Địa chỉ API khởi tạo Địa chỉ API Khởi
tạo giao dịch
http://ip-ss-
donvi:8080/XrdAdapter/RestService/forwar
d/payment-
api/rest/payment/v1.0.6/init?providerurl=htt
ps://apipc-
private.dichvucong.gov.vn&dstcode=VN:G
OV:000.00.00.G22:vpcpdvcprovider
Địa chỉ API Biên lai Địa chỉ API Biên
lai thanh toán
http://ip-ss-
donvi:8080/XrdAdapter/RestService/forwar
d/payment-
api/rest/payment/v1.0.6/get_bill??provideru
rl=https://apipc-
private.dichvucong.gov.vn&dstcode=VN:G
OV:000.00.00.G22:vpcpdvcprovider
7
Đầu mối hỗ trợ kết nối API: Nguyễn Mạnh Hùng – Phòng Giải pháp phần mềm – Công ty
Phần mềm VNPT Media, email: [email protected]
2.2 Giao tiếp giữa các hệ thống qua API
- Các API được cung cấp dưới dạng RESTful, hệ thống cung cấp các API sau:
o API Khởi tạo giao dịch
o API Lấy biên lai thanh toán
- BNĐP cần cung cấp API và return_url để nhận kết quả giao dịch từ Payment
Platform:
o API nhận kết quả giao dịch
o Return URL để chuyển hướng khách hàng sau khi thanh toán xong
2.3 Danh sách các API
2.3.1 API Khởi tạo giao dịch
URL: Xem bảng Thông tin kết nối
Request method: POST
Tham số đầu vào và đầu ra là một đối tượng JSON với các thuộc tính dưới đây:
Thuộc tính đầu vào
Mã đối tác Được cung cấp khi
kết nôi 10025
Mã bí mật Được cung cấp khi
kết nôi 8ff35a26a44e57c5e1685f90e2580a0d
Tên trường
Kiểu dữ
liệu
Độ dài
tối đa Bắt buộc Mô tả
LoaiBanTin String 50 Bắt buộc INIT
PhienBan String 50 Bắt buộc 1.0.6
MaDoiTac Number 12 Bắt buộc Mã định danh đối tác
MaThamChieu String 255 Bắt buộc Mã giao dịch phía đối tác
SoTien String 50 Bắt buộc Số tiền thanh toán
PhiChuyenPhat String 50 Không bắt
buộc Phí chuyển phát
LoaiHinhThanhToan String 50 Bắt buộc PAY
MaKenhThanhToan String 255 Bắt buộc Kênh thanh toán
1: WebApp - 2: MobileApp
8
✓ Các thông tin chi tiết trong trường ThongTinBienLai:
Tên trường
Kiểu
dữ liệu
Độ dài
tối đa
Bắt buộc Mô tả
MaDichVu Number 5 Bắt buộc
Mã dịch vụ
1: Thu phạt
2: Thu phí, lệ phí
3: Thu thuế
TKThuHuong String 255 Không bắt
buộc
Số tài khoản ngân hàng thụ
hưởng
MaNHThuHuong String 255 Không bắt
buộc Mã ngân hàng thụ hưởng
TenTKThuHuong String 255
Không bắt
buộc
Tên chủ tài khoản
LoaiPhiTTHC String 255 Không bắt
buộc Mã loại phí thủ tục hành chính
TenLoaiPhiTTHC String 255 Không bắt
buộc
Tên loại phí thủ tục hành chính
MaLoaiHinhThuPhat String
255
Không bắt
buộc
Riêng với
MaDichVu
Mã loại hình thu phạt theo quy
định của KBNN
01: Các khoản phạt của tòa án
02: Phạt vi phạm giao thông
03: Phạt VPHC lĩnh vực thuế
….
MaThietBi Number 5 Bắt buộc Mã thiết bị, mặc định truyền 1
NgonNgu String 10 Bắt buộc Ngôn ngữ: vi-VN/en-US; mặc định
là vi-VN
MaTienTe String 50 Bắt buộc Đơn vị tiền tệ VND hoặc USD
MaNganHang String 50 Bắt buộc Phương thức thanh toán, mặc định
truyền PAYMENT
ThongTinGiaoDich String 255 Bắt buộc Nội dung thanh toán
ThongTinBienLai Object Bắt buộc Thông tin để xuất biên lai và hạch
toán
ThoiGianGD String 50 Bắt buộc Thời gian giao dịch, định dạng
yyyyMMddHHmmss
Ip String 50 Bắt buộc IP của người dùng
MaXacThuc String 255 Bắt buộc Chuỗi mã hóa của bản tin
9
Tên trường
Kiểu
dữ liệu
Độ dài
tối đa
Bắt buộc Mô tả
là 1 – thu
phạt, giá trị
trường là bắt
buộc
TenLoaiHinhThuPhat String
255
Không bắt
buộc
Riêng với
MaDichVu
là 1 – thu
phạt, giá trị
trường là bắt
buộc
Tên loại hình thu phạt theo quy
định của KBNN
(Tương ứng theo bảng mô tả
trường MaLoaiHinhThuPhat)
NoiDungThanhToan String 255 Bắt buộc Nội dung phạt/Thanh toán phí, lệ
phí/Thanh toán tiền Thuế,
HoTenNguoiNop String 255 Bắt buộc Họ và tên người nộp
SoCMNDNguoiNop String 255 Bắt buộc Số CMND/MST/HC
DiaChiNguoiNop String 255 Bắt buộc Địa chỉ của người nộp
HuyenNguoiNop String 255 Không bắt
buộc Huyện của người nộp
TinhNguoiNop String 255 Không bắt
buộc Tỉnh của người nộp
MaCoQuanQD String 255
Không bắt
buộc
Riêng với
MaDichVu
là 1 – thu
phạt, giá trị
trường là bắt
buộc
Mã đơn vị ra quyết định xử
phạt/Đơn vị giải quyết thủ tục
dịch vụ công
TenCoQuanQD String 255
Không bắt
buộc
Riêng với
MaDichVu
là 1 – thu
phạt, giá trị
trường là bắt
buộc
Tên đơn vị ra quyết định xử
phạt/Đơn vị giải quyết thủ tục
dịch vụ công
KhoBac String 255
Không bắt
buộc
Riêng với
MaDichVu
Mã Kho bạc nhà nước thụ hưởng.
Danh sách do KBNN
quy định.
10
Tên trường
Kiểu
dữ liệu
Độ dài
tối đa
Bắt buộc Mô tả
là 1 – thu
phạt, giá trị
trường là bắt
buộc
NgayQD String 255
Không bắt
buộc
Riêng với
MaDichVu
là 1 – thu
phạt, giá trị
trường là bắt
buộc
Ngày ra quyết định xử phạt/Thu
phí,lệ phí
SoQD String 255
Không bắt
buộc
Riêng với
MaDichVu
là 1 – thu
phạt, giá trị
trường là bắt
buộc
Số Quyết định xử phạt/Thông
báo
ThoiGianViPham String 255
Không bắt
buộc
Riêng với
MaDichVu
là 1 – thu
phạt, giá trị
trường là bắt
buộc
Thời gian vi phạm
DiaDiemViPham String 255
Không bắt
buộc
Riêng với
MaDichVu
là 1 – thu
phạt, giá trị
trường là bắt
buộc
Địa điểm vi phạm
TenNguoiViPham String 255
Không bắt
buộc
Riêng với
MaDichVu
là 1 – thu
phạt, giá trị
Tên người vi phạm
11
Tên trường
Kiểu
dữ liệu
Độ dài
tối đa
Bắt buộc Mô tả
trường là bắt
buộc
TaiKhoanThuNSNN String 255
Không bắt
buộc
Tài khoản của đơn vị ra quyết
định/thông báo mở tại KBNN
DSKhoanNop Object Bắt buộc Danh sách các Nội dung khoản
nộp/Mã định danh hồ sơ
✓ Các trường thông tin chi tiết trong DSKhoanNop:
Tên trường
Kiểu
dữ liệu
Độ dài
tối đa
Bắt buộc Mô tả
NoiDung String 255 Bắt buộc Nội dung các khoản nộp/Mã định
danh hồ sơ
SoTien String 255 Bắt buộc Số tiền
Thuộc tính đầu ra
2.3.2 API Lấy biên lai thanh toán
URL: Xem bảng Thông tin kết nối
Request method: POST
Tham số đầu vào và đầu ra là một đối tượng JSON với các thuộc tính dưới đây:
Thuộc tính đầu vào
Tên trường
Kiểu
dữ liệu
Độ dài
tối đa Bắt buộc Mô tả
MaLoi String 10 Bắt buộc Mã lỗi
MoTaLoi String 255 Bắt buộc Mô tả lỗi
UrlThanhToan String 255 Bắt buộc URL để chuyển hướng người dung
MaXacThuc String 255 Bắt buộc Chuỗi mã hóa bản tin
Tên trường
Kiểu dữ
liệu
Độ dài
tối đa Bắt buộc Mô tả
LoaiBanTin String 50 Bắt buộc GET_BILL
PhienBan String 50 Bắt buộc 1.0.6
MaDoiTac Number 12 Bắt buộc Mã định danh đối tác
12
Thuộc tính đầu ra
2.3.3 API Nhận kết quả giao dịch
Request method: POST
Content-type: application/x-www-form-urlencoded
Parameter name: data
Bản tin thông báo kết quả giao dịch có dạng như sau:
POST /merchant/confirm HTTP/1.1
HOST: example.com
Content-type: application/x-www-form-urlencoded
Content-length: 8
data={“LoaiBanTin”:”CONFIRM”,“MaLoi”:”00”,….}
Tham số đầu vào và đầu ra là một đối tượng JSON với các thuộc tính dưới đây:
Thuộc tính đầu vào
MaThamChieu String 255 Bắt buộc Mã giao dịch phía đối tác
ThoiGianGD String 50 Bắt buộc Thời gian thực hiện giao dịch
yyyyMMddHHmmss
MaXacThuc String 255 Bắt buộc Chuỗi mã hóa của bản tin
Tên trường Kiểu Độ dài Bắt buộc Mô tả
MaLoi String 10 Bắt buộc Mã lỗi
MoTaLoi String 255 Bắt buộc Mô tả lỗi
UrlBienLai String 255 Bắt buộc Đường dẫn lưu file Biên lai thanh toán
Tên trường
Kiểu dữ
liệu
Độ dài
tối đa Bắt buộc Mô tả
LoaiBanTin String 50 Bắt buộc CONFIRM
MaLoi String 10 Bắt buộc Kết quả thực hiện giao dịch
MaDoiTac Number 12 Bắt buộc Mã định danh đối tác
MaThamChieu String 255 Bắt buộc Mã giao dịch phía đối tác
SoTien Number 12 Bắt buộc Số tiền
MaTienTe String 50 Bắt buộc Đơn vị tiền tệ VND hoặc USD
13
Thuộc tính đầu ra
2.3.4 Nhận kết quả thanh toán trên giao diện (redirect)
Sau khi thanh toán xong, Khách hàng sẽ được redirect từ trang thanh toán của Payment
Platform về trang returnUrl của website BNĐP, returnUrl sẽ được truyền thêm các
tham số như sau: returnUrl?data=[MaThamChieu]&responseCode=[MaLoi]
&secureCode=[MaXacThuc]
BNĐP cung cấp returnUrl để Payment Platform cấu hình trên hệ thống.
MaGiaoDich String 255 Bắt buộc Mã giao dịch tại Payment Platform
MaNganHang String 50 Bắt buộc Phương thức thanh toán
ThoiGianGD String 50 Bắt buộc Thời gian giao dịch, định dạng
(yyyyMMddHHmmss)
ThongTinGiaoDic
h String 255 Bắt buộc Thông tin mô tả giao dịch
Token String 255 Bắt buộc Token thanh toán của người dùng
SoThe String 255 Bắt buộc Số thẻ
ThangThe String 50 Bắt buộc Tháng hết hạn của thẻ
NamThe String 50 Bắt buộc Năm hết hạn của thẻ
MaXacThuc String 255 Bắt buộc Chuỗi mã hóa bản tin
Tên trường
Kiểu dữ
liệu
Độ dài
tối đa Bắt buộc Mô tả
MaLoi String 10 Bắt buộc Mã lỗi
MoTaLoi String 255 Bắt buộc Mô tả lỗi
MaDoiTac Number 12 Bắt buộc Mã định danh đối tác
MaThamChieu String 255 Bắt buộc Mã giao dịch phía đối tác
ThoiGianGD String 50 Bắt buộc Thời gian tại phía đối tác
(yyyyMMddHHmmss)
MaXacThuc String 255 Bắt buộc Chuỗi mã hóa bản tin
14
2.3.5 Hướng dẫn tạo chữ ký
Chữ ký của bản được tính toán dựa trên thuật toán SHA-256, giá trị này được tính toán
dựa trên một chuỗi gồm các trường thông tin trong bản tin gửi sang Payment Platform,
nguyên tắc tạo chuỗi như sau:
- Thứ tự các trường chính là thứ tự từ trên xuống dưới trong các bảng mô tả
thông tin đầu vào
- Các trường được phân tách nhau bởi ký tự “|”
- Các trường được định nghĩa là không bắt buộc (Optional) thì giá trị bằng
rỗng
- Secret key luôn đứng cuối cùng
III. DỮ LIỆU GIAO DỊCH
3.1 Mô tả
Hàng ngày hệ thống Payment Platform sẽ sinh ra file dữ liệu giao dịch
(yyyymmdd_ECOM.csv) trong ngày (ngày T) từ 00:00 đến 23h:59 bao gồm các giao dịch
thành công lên thư mục SFTP đã thống nhất giữa các bên trước 08h00 ngày hôm sau
(ngày T+1).
3.2 Định dạng file
Định dạng dòng dữ liệu: Các trường được đặt cách nhau bởi dấu #
Tham số Kiểu Mô tả
MaThamChieu String Mã giao dịch đối tác
MaGiaoDich String Mã giao dịch phía Payment Platform
ThoiGianGD String Thời gian giao dịch
TrangThai String Trạng thái giao dịch
IV. BẢNG MÃ LỖI
4.1.1 Bảng mã lỗi BNĐP trả về cho Payment Platform
STT Mã lỗi Mô tả lỗi
API Nhận kết quả giao dịch
1 00 Thành công
15
4.1.2 Bảng mã lỗi Payment Platform trả về cho BNĐP
2 01 Không tìm thấy giao dịch
3 02 Giao dịch đã được xác nhận trước đó
4 08 Hệ thống bận hoặc timeout
5 97 Mã xác thực không hợp lệ
6 99 Các lỗi khác
STT Mã lỗi Mô tả lỗi
1 00 Thành công
2 01 Giao dịch thất bại
3 02 Dữ liệu không đúng định dạng
4 03 Mã giao dịch đã tồn tại
5 04 Timeout
6 05 Không tìm thấy dữ liệu
7 06 Lỗi hệ thống
8 07 Mã xác thực không đúng
9 08 Tài khoản đối tác đang bị khóa
10 09 Tài khoản đối tác không tồn tại
11 96 Hệ thống đang bảo trì
12 99 Lỗi không xác định