Liên hệ trực tiếp với chúng tôi

Hotline: 0984-863-761

Hà Nội: 1900-5858-99

TP.HCM: (08) 6292 0945

Email: support@nganluong.vn

Hỗ trợ chung

Hỗ trợ kỹ thuật

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

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:
vn: tiếng Việt
en: tiếng Anh

 

Ví dụ về tham số params:
params =
“<params>
                <receiver>diendc@nganluong.vn</receiver>
                <language>vn></language>
                <return_url>http://sandbox.nganluong.vn/demo/update_order.php</return_url>
                <cancel_url>http://sandbox.nganluong.vn/demo/cancel_order.php</cancel_url>
</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
checksum = MD5(receiver+ order_code+ return_url+ cancel_url+language+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:
$receiver = "diendc@nganluong.vn";
$order_code = "24785324";
$return_url = "http://sandbox.nganluong.vn/demo/update_order.php";
$cancel_url = "http://sandbox.nganluong.vn/demo/cancel_order.php";
$languge ="vn";
$password = "2e9ee046bba482cc52e5121c3c9958ff";
$checksum = MD5($receiver+$order_code+$return_url+$cancel_url+$languge+$password);

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:
“<result>
                <result_code>Mã lỗi</result_code>
                <result_description>Mô tả lỗi</result_description>
                <token>Mã tham chiếu giao dịch</token>
                <link_checkout>Đường link thanh toán (dùng để bật popup)</link_checkout>
                <time_limit>Thời gian timeout của mã token</time_limit>

</result>”

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:
vn: tiếng Việt
en: tiếng Anh

 

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>
                <item>
                                <item_name>Tên sản phẩm 1</item_name>
                                <item_quanty>Số lượng sản phẩm 1</item_quanty>
                                <item_amount>Đơn giá sản phẩm 1</item_amount>
                </item>
                <item>
                                <item_name>Tên sản phẩm 2</item_name>
                                <item_quanty>Số lượng sản phẩm 2</item_quanty>
                                <item_amount>Đơn giá sản phẩm 2</item_amount>
                </item>
                …

</items>


Ví dụ về tham số params:
params = “<params>
                <receiver>diendc@nganluong.vn</receiver>
                <order_code>DH-115813-29092011</order_code>
                <amount>3700</amount>
                <currency_code>vnd</currency_code>
                <tax_amount>0</tax_amount>
                <discount_amount>0</discount_amount>
                <fee_shipping>0</fee_shipping>
                <request_confirm_shipping>0</request_confirm_shipping>
                <no_shipping>1</no_shipping>
                <return_url>http://sandbox.nganluong.vn/demo/update_order.php</return_url>
                <cancel_url>http://sandbox.nganluong.vn/demo/cancel_order.php</cancel_url>
                <language>vn</language>
                <items>
                                <item>
                                                <item_name>Cuốn sách hoàn hảo về ngôn ngữ cơ thể</item_name>
                                                <item_quanty>1</item_quanty>
                                                <item_amount>2000</item_amount>
                                </item>
                                <item>
                                                <item_name>Sản phẩm 2</item_name>
                                                <item_quanty>1</item_quanty>
                                                <item_amount>1000</item_amount>
                                </item>
                                <item>
                                                <item_name>Sản phẩm 3</item_name>
                                                <item_quanty>1</item_quanty>
                                                <item_amount>700</item_amount>
                                </item>
                </items>

                                </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:
$receiver = "diendc@nganluong.vn";
$order_code = "24785324";
$amount = "1000";
$currency_code = "VND";
$tax_amount = 0;
$discount_amount = 0;
$no_shipping = 1;
$fee_shipping = 0;
$request_confirm_shipping = 0;
$return_url = "http://sandbox.nganluong.vn/demo/update_order.php";
$cancel_url = "http://sandbox.nganluong.vn/demo/cancel_order.php";
$password = "2e9ee046bba482cc52e5121c3c9958ff";
$checksum = MD5($receiver +  $order_code + $amount + $currency_code + $tax_amount + $discount_amount + $no_shipping + $fee_shipping + $request_confirm_shipping +$return_url+ $cancel_url+$password);

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:
“<result>
                <result_code>Mã lỗi</result_code>
                <result_description>Mô tả lỗi</result_description>
                <token>Mã tham chiếu giao dịch</token>
                <link_checkout>Đường link thanh toán (dùng để bật popup)</link_checkout>
                <time_limit>Thời gian timeout của mã token</time_limit>

</result>”


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.
Params được lưu theo cấu trúc XML như sau:

Giá trị token

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:
$token = "b4609b508dc5418f93da6cbc97d5cb61";
$password = "2e9ee046bba482cc52e5121c3c9958ff";
$checksum = MD5($token +  $password);

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:
“<result>
                <result_code></result_code>
                <result_description></result_description>                                           
                <time_limit></time_limit>
                <merchant_site_code></merchant_site_code>
                <transaction_id></transaction_id>
                <amount></amount>
                <currency_code></currency_code>
                <transaction_type></transaction_type>
                <transaction_status></transaction_status>
                <payer_name></payer_name>
                <payer_email></payer_email>
                <payer_mobile></payer_mobile>
                <receiver_name></receiver_name>
                <receiver_address></receiver_address>
                <receiver_mobile></receiver_mobile>
                <method_payment_name></method_payment_name>
             &