CHƯƠNG 1 : GIỚI THIỆU VỀ THƯƠNG MẠI ĐIỆN TỬ
4.4.1.Kết nối với BankNet qua Web Services
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 (adsbygoogle = window.adsbygoogle || []).push({});
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 (adsbygoogle = window.adsbygoogle || []).push({});
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 (adsbygoogle = window.adsbygoogle || []).push({});
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