Hướng dẫn Thanh toán hoặc Nạp tiền cho nội dung số (phiên bản 1.0)
I. Giới thiệu
1. Mục đích
Mô tả chi tiết cách thức thực hiện tích hợp cổng thanh toán Ngân Lượng, cho các website bán sản phẩm, dịch vụ nội dung số 1 được sử dụng trên môi trường PC web 2
Ghi chú
1Là hàng hóa phi vật chất, dịch vụ phi truyền thống có nội dung và hình thức được số hóa. Một số sản phẩm được coi là nội dung số như: phần mềm, nhạc, sách báo điện tử, game, coupon, …
2Các website bán hàng sử dụng trên máy tính cá nhân.
2. Giới hạn tài liệu
Tài liệu này phục vụ các nhà phát triển website cung cấp các dịch vụ hoặc bán các sản phẩm nội dung số, tích hợp được công cụ thanh toán thông qua cổng thanh toán Ngân Lượng.
3. Địa chỉ cung cấp các thông tin liên quan
-
Xem demo một sản phẩm sau khi tích hợp thành công cổng thanh toán trực tuyến Ngân Lượng: http://sandbox.nganluong.vn/demo
-
Địa chỉ webservice 3 giao tiếp với cổng thanh toán trực tuyến Ngân Lượng:
- Môi trường sandbox4: http://beta.nganluong.vn/micro_checkout_api.php?wsdl
- Môi trường live5 : https://www.nganluong.vn/micro_checkout_api.php?wsdl
Hướng dẫn đăng ký tài khoản Ngân Lượng để nhận tiền bán hàng: http://help.nganluong.vn/danh-muc-56/2/1/Dang-ky-mo-tai-khoan.html
-
Hướng dẫn chứng thực tài khoản Ngân Lượng: Sau khi đăng ký tài khoản thành công, bạn cần chứng thực tài khoản của mình, để phục vụ cho mục đích định danh tài khoản trong giao dịch rút tiền sau này. http://help.nganluong.vn/danh-muc-63/2/1/Chung-thuc-tai-khoan.html
-
Link đăng ký tài khoản Ngân Lượng: https://www.nganluong.vn/?portal=nganluong&page=user_register
Link đăng ký tài khoản Paypal: https://www.paypal.com/vn/mrb/pal=8T5ZPTTEQ7UCC&mrb=R-9LS81581DG9836252
Ghi chú
3Là giao thực trao đổi thông tin giữa 2 hệ thống, website bán hàng của merchant và hệ thống cổng thanh toán Ngân Lượng
4Là hệ thống giả lập cổng thanh toán Ngân Lượng, cung cấp môi trường thử nghiệm giao dịch cho các merchant tích hợp cổng thanh toán.
5Là hệ thống chạy thật của cổng thanh toán trực tuyến Ngân Lượng.
II. Quy trình thực hiện kết nối
1. Giải pháp thanh toán sản phẩm, dịch vụ nội dung số trên môi trường PC web
Với giải pháp thanh toán nội dung số của Ngân Lượng.vn. Khách hàng (người mua) trên trang web của bạn sẽ không bị điều hướng hoàn toàn sang trang của cổng thanh toán. Thay vào đó, Ngân Lượng.vn cung cấp bộ hàm javaScript, để tạo ra một iframe bật lên trong trình duyệt của người mua và hiển thị như một màn hình nhỏ nằm trên trang web của bạn. Lúc đó người mua chỉ cần click chọn các phương thức để thực hiện thanh toán đơn hàng ngay lập tức cho bạn. Thông tin thanh toán của người mua sẽ được Ngân Lượng trả về trực tiếp ngay trên trang của bạn. Bạn có thể sử dụng ngay thông tin đó để thực hiện cập nhật đơn hàng trên hệ thống website của mình. Xem chi tiết quá trình thực hiện thanh toán đơn hàng của người mua tại đây
2. Các phương thức được sử dụng
• Dùng số dư ví điện tử Ngân Lượng
• Dùng thẻ cào điện thoại (MobiFone, Viettel, VinaFone,…)
• Dùng số dư tài khoản ngân hàng nội địa
• Dùng số dư tài khoản Paypal
• Dùng thẻ tín dụng & ghi nợ quốc tế qua Paypal
3. Quy trình thực hiện
3.1. Khai báo website tích hợp
- Đăng nhập vào tài khoản NgânLượng.vn tại địa chỉ https://www.nganluong.vn
- Chọn menu "Tích hợp", chọn "Tích hợp website B2C", chọn "Đăng ký merchant site" (Đăng ký website).
- Nhập các thông tin theo form dưới đây, chọn "Đăng ký" để thêm website của bạn.
- Sau khi đăng ký xong, bạn cần upload file chứng thực lên hosting của bạn nơi chứa địa chỉ website bạn đã khai báo, chọn "Xác minh" để hoàn tất

3.2. Cấu hình tài khoản Ngân Lượng cho dịch vụ nội dung số
- Đăng nhập tài khoản Ngân Lượng.vn
- Chọn mục "Thông tin tài khoản", chọn "Hình thức bán hàng " hoặc Chọn vào link sau để cấu hình:
https://www.nganluong.vn/?portal=nganluong&page=user_setup
- Chọn option "Bán dịch vụ nội dung số" và tiến hành cấu hình (Nếu bạn sử dụng kết nối qua PayPal, nhập 3 thông tin: API Username, API Password, Signature trong phần cấu hình tài khoản PayPal). Form cấu hình của NganLuong.vn có dạng như sau:

3.3. Cấu hình tài khoản Paypal cho dịch vụ nội dung số
- Đăng nhập vào tài khoản Paypal của bạn tại địa chỉ https://www.paypal.com
- Tại trang Overview, chọn "My Business Setup".

- Tại My Business Setup chọn "Change"

- Chọn "PayPal for Digital Goods (Express Checkout)", chọn "Save" để lưu thay đổi

3.4. Lấy thông tin kết nối với Paypal
- Chon mục "Profile" trong "My account"

- Tại API Access, chọn "View API Signature"

- Lấy các thông tin kết nối để lưu trong cấu hình dịch vụ nội dung số của Ngân Lượng

3.5. Sơ đồ luồng dữ liệu khi thực hiện giao tiếp

Bước 1: Khách hàng chọn chức năng nạp tiền trên website của merchant.
Bước 2,3,4,5: Hệ thống merchant gửi yêu cầu phát sinh giao dịch nạp tiền trên hệ thống NgânLượng.vn (gọi hàm SetExpressCheckoutDeposit/SetExpressCheckoutPayment). NgânLượng.vn sẽ trả lại cho merchant một đường link để hiển thị một cửa sổ lựa chọn các hình thức nạp tiền mà NgânLượng hỗ trợ ngay tại màn hình giao diện của merchant (cửa sổ này được tạo ra bằng đoạn code javascript rất đơn giản mà NgânLượng.vn cung cấp)
Bước 6: Khách hàng chọn phương thức nạp tiền trên form NgânLượng.vn cung cấp (4 phương thức ở trên), nhập số tiền cần nạp và tiến hành nạp tiền.
Bước 7: Sau khi khách hàng thực hiện nạp tiền thành công, hệ thống NgânLượng.vn sẽ redirect người dùng về website của merchant theo tham số return_url do merchant gửi sang NgânLượng.vn tại Bước 2.
Bước 8: Hệ thống merchant sẽ xử lý việc kiểm tra kết quả trả về tại trang có địa chỉ là tham số return_url để lấy thông tin giao dịch và số tiền khách hàng đã nạp. Từ đó sẽ cung cấp dịch vụ cho khách hàng với số tiền đã nạp tương ứng (ví dụ: nạp lại tiền ảo vào tài khoản của khách hàng tại website của merchant). Sau khi cung cấp xong dịch vụ, merchant thông báo kết quả cho khách hàng biết (ví dụ view thông báo giao dịch hoàn tất ra màn hình).
Bước 9: Kiểm tra giao dịch đã hoàn tất hay chưa bằng cách gọi hàm GetExpressCheckout trong API của NgânLượng.vn với mã token bạn nhận được. Nếu giao dịch không tồn tại hoặc chưa hoàn thành (chưa thanh toán) thì thông báo lỗi ra màn hình để khách hàng biết.
Bước 10: Khi thanh toán thành công, NgânLượng.vn sẽ đưa khách hàng trả lại website của bạn theo tham số return_url bạn đã gửi sang yêu cầu phát sinh giao dịch thanh toán bằng hàm SetExpressCheckoutPayment hoặc SetExpressCheckoutDeposit.
Trên tham số trả về, NgânLượng.vn trả về cho bạn tham số token là giá trị của token bạn đã chuyển sang NgânLượng.vn để thanh toán (trả về từ hàm SetExpressCheckoutPayment hoặc SetExpressCheckoutDeposit).
4. Nạp tiền vào tài khoản của khách hàng tại merchant (SetExpressCheckoutDeposit)
4.1. Ý nghĩa sử dụng
Cung cấp cho bạn một chức năng nhận tiền của khách hàng, ngay tại websie của mình và thực hiện cập nhật tài khoản tiền ảo hay quy đổi thành điểm của khách hàng; sau khi hệ thống cổng thanh toán trả về thông tin hạch toán thành công giao dịch của khách hàng.
4.2. Mô tả tham số khi sử dụng hàm
THAM SỐ ĐẦU VÀO |
|||
STT |
Tên tham số |
Kiểu dữ liệu |
Mô tả |
1 |
Merchant_site_code |
Int (11) |
Mã merchant site (khi khai báo website tại NgânLượng.vn sẽ phát sinh mã này) |
2 |
params |
String XML |
Là một chuỗi các tham số được định dạng theo cấu trúc của XML. Params nhận 5 tham số dưới đây |
|
receiver |
String (255) |
Địa chỉ Email của tài khoản NgânLượng.vn nhận tiền nạp |
|
order_code |
String (50) |
Mã hóa đơn (duy nhất) do merchant phát sinh, dùng để cập nhật tự động trạng thái (ví dụ: nạp tiền ảo cho khách tại merchant) khi NgânLượng.vn trả kết quả về |
|
return_url |
String (500) |
Địa chỉ url NgânLượng.vn trả về kết quả khi giao dịch nạp tiền thành công |
|
cancel_url |
String (500) |
Địa chỉ url NgânLượng.vn trả về kết quả khi khách hàng từ chối nạp tiền |
|
language |
String (4) |
Ngôn ngữ hiển thị trên form giao diện của NgânLượng.vn, nhận một trong hai giá trị sau: |
|
Ví dụ về tham số params: |
||
3 |
checksum |
String (50) |
Mã kiểm tra tính hợp lệ khi truy cập API của NgânLượng.vn |
|
Cấu trúc của tham số checksum |
||
THAM SỐ ĐẦU RA |
|||
|
Result |
String (500) |
Kết quả trả về là một chuỗi string được định dạng theo cấu trúc XML, bao gồm các tham số dưới đây |
|
result_code |
String (4) |
Mã kết quả trả về khi gọi hàm SetExpressCheckoutDeposit |
|
token |
String (100) |
Mã tham chiếu giao dịch thanh toán (mã tham chiếu này sẽ được sử dụng trong suốt quá trình thanh toán của NgânLượng.vn) |
|
link_checkout |
String (255) |
Đây là url để khách hàng thanh toán (sẽ được chèn vào mã javascript để bật lên popup) |
|
time_limit |
String (19) |
Thời gian hết hạn thanh toán ứng với một token (dd/mm/YYYY, HH:ii:ss) |
|
result_description |
String (500) |
Mô tả lỗi tương ứng với giá trị của result_code |
|
Cấu trúc của kết quả trả về như sau: |
||
5. Thanh toán đơn hàng (SetExpressCheckoutPayment)
5.1. Ý nghĩa sử dụng
Cung cấp cho bạn công cụ thanh toán các đơn hàng nội dung số nhanh chóng, thuận tiện mà khách hàng của bạn không phải thoát khỏi phiên làm việc trên chính website mà mình đang sử dụng.
5.2. Mô tả tham số khi sử dụng hàm
THAM SỐ ĐẦU VÀO |
|||
STT |
Tên tham số |
Kiểu dữ liệu |
Mô tả |
1 |
merchant_site_code |
Int (11) |
Mã merchant site (khi khai báo website tại NgânLượng.vn sẽ phát sinh mã này) |
2 |
params |
String XML |
Là một chuỗi các tham số được định dạng theo cấu trúc của XML. Params nhận các tham số dưới đây |
|
Receiver |
String (255) |
Địa chỉ Email của tài khoản NgânLượng.vn nhận tiền thanh toán |
|
order_code |
String (50) |
Mã hóa đơn bán hàng (duy nhất) do merchant phát sinh |
|
Amount |
String (20) |
Tổng số tiền toàn bộ đơn hàng khách hàng phải thanh toán |
|
currency_code |
String (5) |
Mã tiền tệ niêm yết tại website bán hàng, nhận các giá trị sau: VND hoặc USD |
|
tax_amount |
String (20) |
Tổng tiền thuế (nếu có) |
|
discount_amount |
String (20) |
Tổng tiền khách hàng được giảm giá |
|
no_shipping |
Int (1) |
Hàng hóa có phải vận chuyển hay không, nội dung số giá trị này = 1 |
|
fee_shipping |
String (20) |
Tổng phí vận chuyển, nội dung số giá trị này = 0 |
|
request_confirm_shipping |
Int (1) |
Yêu cầu người mua nhập thông tin nhận hàng, với nội dung số giá trị này = 0 |
|
return_url |
String (500) |
Địa chỉ url NgânLượng.vn trả về kết quả khi giao dịch nạp tiền thành công |
|
cancel_url |
String (500) |
Địa chỉ url NgânLượng.vn trả về kết quả khi khách hàng từ chối nạp tiền |
|
Language |
String (4) |
Ngôn ngữ hiển thị trên form giao diện của NgânLượng.vn, nhận một trong hai giá trị sau: |
|
Items |
String XML |
Thông tin chi tiết sản phẩm cần thanh toán, items được lưu theo cấu trúc XML có dạg như sau |
<items>
|
|||
Ví dụ về tham số params: |
|||
3 |
Checksum |
String (50) |
Mã kiểm tra tính hợp lệ khi truy cập API của NgânLượng.vn |
checksum = MD5(receiver+ order_code+amount+ currency_code + tax_amount + discount_amount + no_shipping + fee_shipping + request_confirm_shipping +return_url+ cancel_url+Mật khẩu giao tiếp khi khai báo website tại NgânLượng.vn). Ví dụ: checksum được tạo bởi mã ngôn ngữ lập trình PHP: |
|||
THAM SỐ ĐẦU RA |
|||
|
Result |
String XML |
Kết quả trả về là một chuỗi string được định dạng theo cấu trúc XML, bao gồm các tham số dưới đây |
|
result_code |
String (4) |
Mã kết quả trả về khi gọi hàm SetExpressCheckoutPayment |
|
Token |
String (100) |
Mã tham chiếu giao dịch thanh toán (mã tham chiếu này sẽ được sử dụng trong suốt quá trình thanh toán của NgânLượng.vn) |
|
link_checkout |
String (255) |
Đây là url để khách hàng thanh toán (sẽ được chèn vào mã javascript để bật lên popup) |
|
time_limit |
String (19) |
Thời gian hết hạn thanh toán ứng với một token (dd/mm/YYYY, HH:ii:ss) |
|
result_description |
String (500) |
Mô tả lỗi tương ứng với giá trị của result_code |
Cấu trúc của kết quả trả về như sau:
|
|||
6. Kiểm tra giao dịch (GetExpressCheckout)
6.1. Ý nghĩa sử dụng
Cung cấp cho bạn hàm kiểm tra giao dịch đơn hàng của bạn đã được Ngân Lượng thực hiện hạch toán thành công hay chưa? Từ đó bạn có thể làm tiếp các bước xử lý nghiệp vụ trên site của mình.
6.2. Mô tả tham số khi sử dụng hàm
THAM SỐ ĐẦU VÀO |
|||
STT |
Tên tham số |
Kiểu dữ liệu |
Mô tả |
1 |
merchant_site_code |
Int (11) |
Mã merchant site (khi khai báo website tại NgânLượng.vn sẽ phát sinh mã này) |
2 |
Params |
String (50) |
Chứa mã token được sinh ra bởi hàm SetExpressCheckoutDeposit hoặc SetExpressCheckoutPayment. |
3 |
Checksum |
String (50) |
Mã kiểm tra tính hợp lệ khi truy cập API của NgânLượng.vn |
checksum = MD5(token+Mật khẩu giao tiếp khi khai báo website tại NgânLượng.vn). Ví dụ: checksum được tạo bởi mã ngôn ngữ lập trình PHP: |
|||
THAM SỐ ĐẦU RA |
|||
|
result |
String XML |
Kết quả trả về là một chuỗi string được định dạng theo cấu trúc XML, bao gồm các tham số dưới đây |
|
result_code |
String (4) |
Mã kết quả trả về của hàm xử lý GetExpressCheckout |
|
result_description |
String (500) |
Mô tả mã lỗi |
|
time_limit |
String (19) |
Thời gian hết hạn thanh toán ứng với một token (dd/mm/YYYY,HH:ii:ss) |
|
merchant_site_code |
Int (11) |
Mã đăng ký website của merchant tại NgânLượng.vn |
|
transaction_id |
Int (11) |
Mã giao dịch thanh toán phát sinh tại NgânLượng.vn |
|
Amount |
String (20) |
Tổng số tiền khách hàng đã thanh toán |
|
currency_code |
String (5) |
Mã tiền tệ niêm yết tại website bán hàng, nhận các giá trị sau: VND hoặc USD |
|
transaction_type |
Int (1) |
Phương thức thanh toán: 1 - Thanh toán ngay; 2 - Thanh toán tạm giữ |
|
transaction_status |
Int (1) |
Trạng thái giao dịch thanh toán: 1- Chưa thanh toán; 2 – Đã thanh toán, tiền đang tạm giữ; 3 – Giao dịch lỗi, 4 – Đã thanh toán, tiền đã chuyển vào tài khoản của người bán |
|
payer_name |
String (255) |
Họ và tên người mua |
|
payer_email |
String (255) |
Địa chỉ email người mua |
|
payer_mobile |
String (20) |
Số điện thoại của người mua |
|
receiver_name |
String (255) |
Họ tên người nhận hàng |
|
receiver_address |
String (500) |
Địa chỉ nhận hàng |
|
receiver_mobile |
String (20) |
Số điện thoại người nhận hàng |
|
method_payment_name |
String (255) |
Tên hình thức thanh toán người mua sử dụng trên NgânLượng.vn |
|
card_info |
String XML |
Danh sách: Loại thẻ, mã thẻ cào và mệnh giá thẻ |
|
Cấu trúc kết quả trả về như sau: | ||
