CHƯƠNG 1 : GIỚI THIỆU VỀ THƯƠNG MẠI ĐIỆN TỬ
4.4. Xây dựng công cụ thanh toán trực tuyến cho Website Thương
4.4.1. Kết nối với BankNet qua Web Services
• Hàm Send_GoodInfo(): Hàm sử dụng để gửi thơng tin đơn hàng từ
Merchant tới Banknet
o Tham số Input:
String Merchant_trans_id: Mã giao dịch của Merchant, gồm
các ký tự dạng số chiều dài 6
String Merchant_code: Mã code của Merchant String Country_code: Mã quốc gia
String Good_code: Mã đơn hàng
String Xml_description: Mô tả đơn hàng String Net_cost: Giá trị đơn hàng thực tế String Ship_fee: Phí giao hàng, nếu có String Tax:
String Url_success: đường dẫn khi giao dịch thành công String Url_fail: đường dẫn khi giao dịch thất bại
String Trans_key: md5(Merchant_trans_id + Merchant_code + Good_code + Net_cost + Ship_fee + Tax + Merchant_trans_key)
o Tham số Output: String return
Thất bại: 011|xx|md5(011 + xx + Merchant_trans_key)
Thành công: 010|lenURL|URL+md5(010+lenUrl+Url+ Merchant_trans_key )
o Giá trị trả về xx: giá trị mã lỗi trả về 01: Merchant_code không hợp lệ 02: Chuỗi mã hóa khơng hợp lệ 03: Merchant_trans_id khơng hợp lệ
04: khơng tìm thấy giao dịch trong hệ thống 11: Net_cost không hợp lệ (Phải là số nguyên) 12: Ship_fee không hợp lệ (Phải là số nguyên) 13: Tax không hợp lệ (Phải là số nguyên) 99: Lỗi kết nối
ký tự | sử dụng để phân cách các giá trị
lenURL: độ dài URL được trả về, URL được Merchant sử dụng
để redirect tới Cơng thanh tốn của BankNet.
URL + md5(010+lenUrl+Url+ Merchant_trans_key ): chuỗi URL kết hợp với chuỗi được mã hóa md5
• Hàm Send_GoodInfo_Ext(): Hàm sử dụng để gửi thơng tin đơn hàng
từ Merchant tới Banknet
o Tham số Input:
String Merchant_trans_id: Mã giao dịch của Merchant gồm
các ký tự dạng số chiều dài 6
String Merchant_code: Mã code của Merchant String Country_code: Mã quốc gia
String Good_code: Mã đơn hàng
String Xml_description: Mô tả đơn hàng String Net_cost: Giá trị đơn hàng thực tế String Ship_fee: Phí giao hàng, nếu có String Tax:
String Url_success: đường dẫn khi giao dịch thành công String Url_fail: đường dẫn khi giao dịh thất bại
String Trans_key: md5(Merchant_trans_id + Merchant_code + Good_code + Net_cost + Ship_fee + Tax + Merchant_trans_key)
String selected_bank: mã Ngân hàng đã được lựa chọn từ phía
Merchant
o Tham số Output: String return
Thất bại: 011|xx|md5(011 + xx + Merchant_trans_key)
Thành công: 010|lenURL|URL+md5(010+lenUrl+Url+ Merchant_trans_key )
o Giá trị trả về xx: giá trị mã lỗi trả về 01: Merchant_code không hợp lệ 02: Chuỗi mã hóa khơng hợp lệ 03: Merchant_trans_id khơng hợp lệ
04: khơng tìm thấy giao dịch trong hệ thống 11: Net_cost không hợp lệ (Phải là số nguyên) 12: Ship_fee không hợp lệ (Phải là số nguyên) 13: Tax không hợp lệ (Phải là số nguyên) 15: sai mã Ngân hàng
99: Lỗi kết nối
ký tự | sử dụng để phân cách các giá trị
lenURL: độ dài URL được trả về, URL được Merchant sử dụng
để redirect tới Cơng thanh tốn của BankNet.
URL + md5(010+lenUrl+Url+ Merchant_trans_key ): chuỗi URL kết hợp với chuỗi được mã hóa md5
• Hàm QuerryBillStatus(): Kiểm tra trạng thái của giao dịch
o Tham số Input:
String Merchant_trans_id: Mã giao dịch của Merchant
String Trans_id: Trans_id là giao dịch được lấy từ chuỗi URL
trong giá trị trả về gọi hàm Send_GoodInfo()
String Merchant_code: Mã code của Merchant
String Trans_key: md5(Merchant_trans_id + Trans_id + Merchant_code + Merchant_Trans_key)
o Tham số Output: String return
Thất bại: 011|xx| md5(011 + xx + Merchant_trans_key) Thành công: 00|yyy|md5(00yyy+ Merchant_trans_key)
o Giá trị trả về xx: giá trị mã lỗi trả về 01: Merchant_code không hợp lệ 02: Chuỗi mã hóa khơng hợp lệ 03: Merchant_trans_id khơng hợp lệ
04: khơng tìm thấy giao dịch trong hệ thống 99: Lỗi kết nối
• Hàm ConfirmTransactionResult(): Hàm thông báo kết quả giao dịch với Khách hàng
o Tham số Input:
String Merchant_trans_id: Mã giao dịch của Merchant
String Trans_id: Trans_id là giao dịch được lấy từ chuỗi URL
trong giá trị trả về gọi hàm Send_GoodInfo()
String Merchant_code: Mã code của Merchant
String Trans_key: md5(Merchant_trans_id + Trans_id + Merchant_code + Trans_result + Merchant_Trans_key) String Trans_result: Kết quả giao dịch (0: thành công, 1: Thất
bại)
o Tham số Output: String return
Thất bại: 011|xx| md5(011 + xx + Merchant_trans_key) Thành công: 00|yyy|md5(00yyy+ Merchant_trans_key)
o Giá trị trả về xx: giá trị mã lỗi trả về 01: Merchant_code khơng hợp lệ
02: Chuỗi mã hóa khơng hợp lệ 03: Merchant_trans_id khơng hợp lệ
04: khơng tìm thấy giao dịch trong hệ thống 99: Lỗi kết nối
• Mã lỗi trả về
o 00: Thành công
o 06: Lỗi xác nhận giao dịch: giao dịch đã được xác nhận (thành cơng/ khơng thành cơng trước đó và khơng thể xác nhận lại)
o 08: Lỗi timeout xảy ra do không nhận được thông điệp trả về
o 11: Net_cost không hợp lệ
o 12: Ship_fee không hợp lệ
o 13: Tax không hợp lệ
o 97: Dịch vụ chưa được cung cấp
o 98: Giao dịch không hợp lệ
o 99: Lỗi hệ thống
• Mã trạng thái trả về
o 010: Ghi nhận giao dịch đơn hàng hợp lệ
o 018: Ghi nhận đơn hàng, thông tin Key giao dịch không đúng
o 019: Mã Merchant truyền vào không đúng
o 100: Chấp nhận yêu cầu Kiểm tra thông tin chủ Tài khoản
o 110: Truy vấn thông tin chủ Tài khoản thành công
o 111: Truy vấn tài khoản sai lần 1
o 112: Truy vấn tài khoản sai lần 2
o 113: Truy vấn tài khoản sai lần 3
o 114: Quá số lần truy vấn tài khoản cho phép
o 115: Số dư chủ tài khoản không đủ
o 116: Không nhận được phản hồi của Bank (Timeout)
o 119: Giao dịch kiểm tra thông tin chủ Tài khoản không hợp lệ
o 200: Yêu cầu xác thực thông tin OTP
o 210: Xác thực OTP thành công
o 211: Xác thực OTP sai lần 1
o 212: Xác thực OTP sai lần 2
o 213: Xác thực OTP sai lần 3
o 214: Sai quá số lần xác thực OTP cho phép
o 215: Giao dịch trả về không thành công
o 217: Không nhận đc phản hồi từ Bank (Timeout)
o 219: Giao dịch không hợp lệ
o 300: Gửi yêu cầu xác thực kết quả giao dịch đơn hàng
o 310: Merchant xác thực giao dịch thành công
o 315: Merchant xác nhận giao dịch không thành công
o 319: giao dịch xác thực không hợp lệ
o 400: Trạng thái thể hiện Merchant thực hiện truy vấn trạng thái thơng tin đơn hàng cần thanh tốn
o 516: Kết quả giao dịch thành công, nhưng KEY(F64) của Ngân hàng trả về không đúng
o 517: Kết quả giao dịch thất bại, nhưng KEY(F64) của Ngân hàng trả về không đúng
o 518: Giao dịch được Merchant gửi sang chưa đến Bank
o 519: Trạng thái giao dịch không xác định lỗi
o 611: Tài khoản của Khách hàng nhập vào số dư không đủ lần
o 612: Tài khoản của Khách hàng nhập vào số dư không đủ lần
thứ hai
o 613: Tài khoản của Khách hàng nhập vào số dư không đủ lần
thứ ba