Upload
cuc-cu
View
41
Download
5
Embed Size (px)
Citation preview
0
TÀI LIỆU CỔNG THANH TOÁN QUỐC TẾ
Hà nội, 19/1/2013
Cổng thanh toán Quốc tế
Mã số: 01/QT-KT Trang 1
Lần ban hành: 02 Ngày hiệu lực: 08/03/2013
MỤC LỤC
1. Mục đích .......................................................................................................................... 2
2. Quy trình triển khai ........................................................................................................... 2
3. Thuật ngữ viết tắt .............................................................................................................. 2
4. Nội dung hướng dẫn tích hợp cổng thanh toán ....................................................................... 2
4.1 Mô hình thanh toán HTTP Redirect ............................................................................................ 2
4.2 Module cổng thanh toán .......................................................................................................... 3
4.3 Biểu đồ thanh toán .................................................................................................................. 3
4.4 Thông tin tài khoản test và card test ........................................................................................... 4
4.5 Tham số chuyển sang Onepay ................................................................................................... 5
4.6 Tham số nhận về từ Onepay ...................................................................................................... 7
4.7 Kiểm tra trạng thái giao dịch .................................................................................................... 8
4.8 Test case ............................................................................................................................... 8
4.9 Bảng mã lỗi giao dịch............................................................................................................ 10
4.10 Sử dụng hàm vấn tin giao dịch QueryDR ................................................................................. 11
4.11 Sử dụng tính năng thông báo thanh toán IPN (Instant Payment Notification) .................................. 12
4.12 Thông báo giao dịch thanh toán cho đơn vị qua email ................................................................ 13
4.13 Tỉ giá (currency) ................................................................................................................. 13
4.14 Điều khoản thanh toán ......................................................................................................... 13
Cổng thanh toán Quốc tế
Mã số: 01/QT-KT Trang 2
Lần ban hành: 02 Ngày hiệu lực: 08/03/2013
1. Mục đích
Tài liệu này hướng dẫn ĐVCNT tích hợp cổng thanh toán Quốc tế lên website của ĐVCNT và đảm
bảo cổng thanh toán Quốc tế được tích hợp đúng theo chuẩn của tổ chức thẻ quốc tế và công ty
OnePAY.
2. Quy trình triển khai
Quy trình triển khai cổng thanh toán gồm các bước như sau:
Bước 1: Đơn vị chấp nhận thẻ tích hợp cổng thanh toán lên website
Bước 2: Test thanh toán trên môi trường test
Bước 3: Ký nghiệm thu cổng thanh toán
Bước 4: Bàn giao tài khoản thật
Bước 5: Công bố website đơn vị chính thức chạy thật dịch vụ thanh toán
Đơn vị chấp nhận thẻ cần kết hợp cùng các bộ phận liên quan của OnePAY để thực hiện triển khai đầy
đủ 5 bước trên.
3. Thuật ngữ viết tắt
Bảng thuật ngữ viết tắt
Chữ/thuật ngữ viết tắt Giải thích
HTTP Redirect Là phương thức triển khai cổng thanh toán theo cách
chuyển từ website đơn vị chấp nhận thẻ sang website
cổng thanh toán.
QuyeryDR Là chức năng vấn tin giao dịch đã thanh toán
ĐVCNT Đơn vị chấp nhận thẻ
IPN Instant Payment Notification – Cảnh báo phát sinh
giao dịch thanh toán
Cổng Quốc tế Thanh toán qua thẻ Credit card
KH Khách hàng thanh toán, người thanh toán
4. Nội dung hướng dẫn tích hợp cổng thanh toán
4.1 Mô hình thanh toán HTTP Redirect
Để kết nối tới cổng thanh toán OnePAY theo cách thức HTTP Redirect cần hiểu mô hình thanh toán
HTTP Redirect. Hình dưới là mô hình cổng thanh toán OnePAY theo cách thức HTTP Redirect.
Cổng thanh toán Quốc tế
Mã số: 01/QT-KT Trang 3
Lần ban hành: 02 Ngày hiệu lực: 08/03/2013
Hình 1. Mô hình cổng thanh toán OnePAY
Sau khi click thanh toán sẽ chuyển các giá trị như số tiền, order và các tham số khác sang url của Onepay, từ đó
Onepay sẽ xử lý giao dịch và trả kết quả về cho website.
Xem demo cổng thanh toán Quốc tế: http://mtf.onepay.vn/developer/?page=demo_quocte
4.2 Module cổng thanh toán
Lấy module và tài liệu hướng dẫn tích hợp cổng thanh toán Credit card xuống tại địa chỉ:
http://mtf.onepay.vn/developer/?page=modul_quocte
Cấu trúc module: Có 3 file cơ bản
+ Form thanh toán (index,...)
+ DO file
+ DR file
+ QueryDR
Trong đó:
Form thanh toán chứa các giá trị truyền sang sang file DO.
DO file là file nhận các thông tin từ form thanh toán. File DO có nhiệm vụ tạo ra URL Redirect sang cổng thanh
toán OnePAY.
DR file là file nhận kết quả trả về từ cổng thanh toán. File DR có nhiệm vụ kiểm tra thông tin nhận được và
thông báo trạng thái giao dịch dựa trên các tham số trả về từ cổng thanh toán.
QueryDR là file chứa chức năng vấn tin lại các giao dịch đã thanh toán.
4.3 Biểu đồ thanh toán
Cổng thanh toán Quốc tế
Mã số: 01/QT-KT Trang 4
Lần ban hành: 02 Ngày hiệu lực: 08/03/2013
Biển đồ phân tích chi tiết cách thức thanh toán qua module cổng thanh toán OnePAY như hình dưới:
Hình 2. Biểu đồ thanh toán
4.4 Thông tin tài khoản test và card test
Xem tại: http://mtf.onepay.vn/developer/?page=modul_quocte
Thông số tài khoản test cổng thanh toán Quốc tế:
URL Payment test: http://mtf.onepay.vn/vpcpay/vpcpay.op
Thanh toán bằng đơn vị tiền tệ VND:
MerchantID: TESTONEPAY
Accesscode: 6BEB2546
Hashcode (Tên khác là SECURE_SECRET): 6D0870CDE5F24F34F3915FB0045120DB
Thông tin thẻ test:
Loại thẻ: Visa
Số thẻ: 4005550000000001
Date Exp: 05/13
CVV/CSC: 123
Để chạy trên môi trường thật chú ý thay URL payment cổng thật và các thông số tài khoản thật
do Onepay cấp.
Url payment thật: https://onepay.vn/vpcpay/vpcpay.op
MerchantID: Onepay cấp
Accesscode: Onepay cấp
Hashcode (Tên khác là SECURE_SECRET): Onepay cấp
Cổng thanh toán Quốc tế
Mã số: 01/QT-KT Trang 5
Lần ban hành: 02 Ngày hiệu lực: 08/03/2013
Thông tin thẻ test trả về mã lỗi B:
Số thẻ: 5313581000123430
Date Exp: 05/13
CVV/CSC: 123
4.5 Tham số chuyển sang Onepay
Thông số Đơn vị chấp nhận thẻ cần gửi sang cồng thanh toán gồm các các thông số:
Tên đối số Mô tả Yêu cầu Kiểu giá trị Độ dài
virtualPaymentClientURL URL Redirect sang cổng thanh toán Bắt buộc String 64
vpc_Version Version module cổng thanh toán, cố
định và mặc định là 2
Bắt buộc Number 2
vpc_Command Chức năng thanh toán, giá trị của đối số
này cố định và mặc định là “pay”
Bắt buộc String 16
vpc_AccessCode Cặp tài khoản của mỗi đơn vị do
Onepay cấp
Bắt buộc String 8
vpc_Merchant String 12
vpc_MerchTxnRef Mã giao dịch, biến số này yêu cầu
chuyền vào duy nhất mỗi lần thanh toán
Bắt buộc String 34
vpc_OrderInfo Thông tin đơn hàng Bắt buộc String 32
vpc_Amount Khoản tiền thanh toán, giá trị chuyền
vào không có dấu. Cổng thanh toán lấy
hai ký tự cuối cùng là phần thập phân,
nhân với 100 trước khi chuyển sang
cổng thanh toán
Bắt buộc String 21
vpc_Locale Ngôn ngữ hiển thị trên website. Giá trị
có thể là “en” hoặc “vn”
Tiếng Việt giá trị là: vn
Tiếng anh giá trị là: en
Bắt buộc String 2
vpc_TicketNo Địa chỉ IP khách hàng thực hiện thanh
toán – Không được đặt cố định 1 IP
Bắt buộc String 15
vpc_ReturnURL Địa chỉ trỏ vào file DR để nhận kết quả
trả về.
Bắt buộc String 64
Vpc_SecureHash Chuỗi mã hóa từ các giá trị chuyển sang
Onepay, kiểm tra việc đảm bảo dữ liệu
không bị mất mát và chỉnh sửa trong
quá trình redirect
Bắt buộc String 64
AgainLink Link trang thanh toán của website trước
khi chuyển sang Onepay
Bắt buộc String 64
Title Tiêu đề cổng thanh toán trên trình duyệt Bắt buộc String
vpc_SHIP_Street01 Địa chỉ gửi hàng Không bắt
buộc
String 64
Cổng thanh toán Quốc tế
Mã số: 01/QT-KT Trang 6
Lần ban hành: 02 Ngày hiệu lực: 08/03/2013
vpc_SHIP_Provice Quận Huyện (địa chỉ gửi hàng) Không bắt
buộc
String 64
vpc_SHIP_City Thành phố (địa chỉ gửi hàng) Không bắt
buộc
String 64
vpc_SHIP_Country Mã nước (địa chỉ gửi hàng) Không bắt
buộc
String 8
vpc_Customer_Phone Số địa thoại khách hàng Không bắt
buộc
String 16
vpc_Customer_Email Email của khách hàng Không bắt
buộc
String 24
vpc_Customer_Id Mã khách hàng Không bắt
buộc
String 64
Billing Address
AVS_Street01 Dịa chỉ thanh toán Không bắt
buộc
String 64
AVS_City Thành phố Không bắt
buộc
String 64
AVS_StateProv Tỉnh/Quận Không bắt
buộc
String 64
AVS_PostCode Mã Quận/Huyện Không bắt
buộc
String 64
AVS_Country M ã nước (2 ký tự) Không bắt
buộc
String 2
Chú ý:
+ Với đối số vpc_MerchTxnRef được yêu cầu duy nhất mỗi lần thanh toán nên có thể viết một
hàm tự sinh giá trị cho đối số này như lấy theo thời gian hoặc lấy theo thứ tự tăng.
+ Với đối số vpc_OrderInfo nên để là thông tin mã đơn hàng, ví dụ như: OR12345
+ Với trường vpc_Amount cổng thanh toán sẽ tính hai giá trị cuối là phần thập phân nên cần
nhân với 100 vào giá trị thực cần thanh toán.
+ Với đối số vpc_ReturnURL, đây là địa chỉ cổng thanh toán sẽ Redirect về, địa chỉ này được
dẫn tới file DR trong module. Ví dụ: http://localhost/quocte_php/dr.php
+ Thông số hashcode (SECURE_SECRET) được gắn ở cả 2 file DO và DR, khi thay thông số
thật chú ý thay cả ở 2 file này.
Tạo một HTTP Redirect trên file DO sẽ có có cấu trúc mẫu như sau:
http://mtf.onepay.vn/vpcpay/vpcpay.op?AgainLink=http%253A%252F%252Flocalhost%252Fquocte_php%252F&Title=VP
C+3-
Party&vpc_AccessCode=2F668CD2&vpc_Amount=100&vpc_Command=pay&vpc_Customer_Email=support%4
0onepay.vn&vpc_Customer_Id=thanhvt&vpc_Customer_Phone=840904280949&vpc_Locale=en&vpc_MerchTxn
Ref=201202101037465623&vpc_Merchant=TESTONEPAYUSD&vpc_OrderInfo=JSECURETEST01&vpc_Retu
rnURL=http%3A%2F%2Flocalhost%2Fdomestic_php_v2%2Fsource_code%2Fdr.php&vpc_SHIP_City=Ha+Noi
&vpc_SHIP_Country=Viet+Nam&vpc_SHIP_Provice=Hoan+Kiem&vpc_SHIP_Street01=39A+Ngo+Quyen&vpc
Cổng thanh toán Quốc tế
Mã số: 01/QT-KT Trang 7
Lần ban hành: 02 Ngày hiệu lực: 08/03/2013
_TicketNo=127.0.0.1&vpc_Version=2&vpc_SecureHash=D132797FF573F136D977BFB94E2FC2FBAEE5BF7C
B42050FA0420F6BA2AE83F0B
4.6 Tham số nhận về từ Onepay
DR file xử lý thông tin nhận được từ cổng thanh toán
Cổng thanh toán trả lại kết quả đính kèm các đối số vào địa chỉ được gán cho biến vpc_ReturnURL.
Cụ thể các đối số cổng thanh toán trả lại như bảng dưới:
Tên đối số Mô tả Kiểu giá trị Độ dài
vpc_Command Giá trị của vpc_Command đã gửi đi trong file
DO được trả lại trên file DR
String 3
vpc_Locale Ngôn ngữ hiển thị khi thanh toán. en-Tiếng
Anh, vn- Tiếng Việt
String 2,5
vpc_MerchTxnRef Giá trị của đối số vpc_MerchTxnRef gửi đi từ
file DO trả lại trên file DR
String 1,40
vpc_Merchant Giá trị của đối số vpc_Merchant gửi đi từ file
DO được trả lại trong file DR.
String 1,12
vpc_OrderInfo Giá trị của đối số vpc_OrderInfo trên file DO
được trả lại trên file DR
String 1,34
Vpc_Amount Giá trị của đối số vpc_Amount trên file DO
được trả lại trên file DR
String 1,10
vpc_TxnResponseCode Mã giao dịch được sinh ra bởi cổng thanh toán
để chỉ trạng thái giao dịch.
Giá trị là “0” (zero) cho biết giao dịch đã xử lý
thành công. Tất cả các giá trị khác là giao dịch
thất bại.
String 1
vpc_TransactionNo Một số duy nhất được sinh ra từ cổng thanh
toán trên giao dịch. Nó được lưu trên cổng
thanh toán như ánh xạ cho phép người sử dụng
thực hiện các chức năng như refund hay
capture.
String 1,12
vcp_Message Chỉ ra lỗi giao dịch có thể có khi thanh toán String 10,200
vpc_AcqResponseCode Mã trả về từ ngân hàng thanh toán. String 2,3
vpc_ReceiptNo Nó cũng được biết như số tham chiếu
Retrieval và là duy nhất.
String 1,12
vpc_BatchNo Một ngày được sinh ra từ ngân hàng thanh
toán chỉ ra khi nào giao dịch sẽ được ghi có.
Nếu giá trị này là ngày hôm nay thì nó sẽ được
ghi có vào ngày tới. Khi ngân hàng thanh toán
đã đóng lệnh ở cuối ngày thì giao dịch sẽ được
công tiếp để xử lý với ngày tiếp thep.
String 1,8
vpc_Authorizeld Một mã code được sinh ra từ ngân hàng để
chấp nhận hoặc từ chối giao dịch. Nó là một
tùy chọn và có thể không được áp dụng với tất
cả các ngân hàng.
String 1,12
vpc_Card Một mã được sinh ra từ cổng thanh toán cho
biết loại thẻ đã sử dụng trong giao dịch
String 2
vpc_SecureHash Trường này cho phép đơn vị kiểm tra bản tin
DR có hợp lệ hay không.
String 32
vpc_VerSecurityLevel Được sinh ra bởi ngân hàng thanh toán như là String 1,2
Cổng thanh toán Quốc tế
Mã số: 01/QT-KT Trang 8
Lần ban hành: 02 Ngày hiệu lực: 08/03/2013
một token để kiểm tra và xác thực chủ thẻ.
Vpc_VerToken Giá trị này được tạo ra bởi tổ chức phát hành
thẻ như là một token để chứng minh rằng chủ
thẻ xác thực OK.
String 28
vpc_3DSXID Nó là một định danh giao dịch duy nhất được
tạo ra bởi đơn vị chấp nhận thẻ để
xác định các giao dịch 3DS
String 28
vpc_3DSECI Mức đăng ký chương trình 3D Secure của chủ
thẻ. 05-tham gia, 08-không tham gia
String 2
vpc_3Dsenrolled Trường này chỉ phạm vi tham gia 3D-Secure
của chủ thẻ. Y-Yes, N-No, U-Không xác định
được
String 1
vpc_3Dsstatus Trường này chỉ có nếu xác thực thanh toán
được sử dụng. Các giá trị có thể có là: Y-Yes,
N-No, A- Attempted, U-Unavailable
String 1
4.7 Kiểm tra trạng thái giao dịch
File DR có mục đích kiểm tra thông tin cổng thanh toán trả lại để thông báo trạng thái giao dịch.
Để kiểm trang trạng thái một giao dịch cần phải kiểm tra giá trị response code và check Hash validate,
check amount gửi và nhận.
Thành công: Tham số vpc_TxnResponseCode = 0 và check hash = CORRECT và amount chuyển
sang Onepay = amount Onepay trả về
Pending: Tham số vpc_TxnResponseCode = 0 và check hash là IN CORRECT
Thất bại: Tham số vpc_TxnResponseCode <> 0
Việc check hash đảm bảo dữ liệu trả về là toàn vẹn không bị thay đổi trong quá trình thanh toán.
4.8 Test case
Mục đích là để kiểm tra các trường hợp có thể xảy ra cho một giao dịch khi website nhận kết quả trả
về
- Chỉnh sửa dữ liệu trên URL Onepay trả về.
- F5 hoặc chạy lại URL trên trình duyệt
- Các trường hợp lỗi có thể xảy ra.
- Các trạng thái giao dịch
STT Nội dung Thực hiện Mục đích Kết quả mong đợi Kết quả
thực tế
Trạng
thái
1 Giao dịch thành
công
Nhập đúng thông tin thẻ
test và thanh toán. Chi
tiết thông tin thẻ ở mục
thông tin thẻ test.
Kiểm tra giao dịch thành
công và hệ thống update
trạng thái thành công như
thế nào
Hiển thị thông báo giao dịch thành
công.
Thông tin trạng thái trong hệ thống
website update là thành công.
Gửi mail thông báo thành công tới
KH (nếu có).
Với những web bán thẻ hay topup
thì hiển thị số thẻ và topup thành
công
Cổng thanh toán Quốc tế
Mã số: 01/QT-KT Trang 9
Lần ban hành: 02 Ngày hiệu lực: 08/03/2013
2 Giao dịch thất
bại – response
coce = 99
Hủy (cancel giao dịch) Kiểm tra giao dịch thất
bại và hệ thống update
trạng thái giao dịch như
thế nào
Thông báo giao dịch thất bại.
Thông tin trạng thái trong hệ thống
update là thất bại.
Gửi mail thông báo thất bại tới KH
(nếu có). Với những web bán thẻ
hay topup thì không hiển thị số thẻ
và topup.
3 Giao dịch thất
bại – Response
code = B
Nhập thông tin thẻ bị
block rồi thanh toán.
Chi tiết thông tin thẻ ở
mục thông tin thẻ test.
Kiểm tra trường hợp
tham số trả về là chuỗi
mà ko phải là số. Tránh
trường hợp convert tham
số này khi kiểm tra kết
quả trả về bị lỗi từ “B”
thành “0” nên giao dịch
bị check nhầm sang
thành công.
Thông báo giao dịch thất bại.
Thông tin trạng thái trong hệ thống
update là thất bại.
Gửi mail thông báo thất bại tới
khách hàng (nếu có).
Với những web bán thẻ hay topup
thì không hiển thị số thẻ và topup.
4 Check hash
validated – Sửa
response code
Thực hiện một giao
dịch thất bại như ở trên.
Sửa giá trị
vpc_TxnResponseCode
trên URL onepay trả về
thành 0 rồi chạy lại
URL này trên trình
duyệt
Kiểm tra việc check
hash, đảm bảo dữ liệu trả
về là toàn vẹn, không bị
chỉnh sửa trên đường
truyền
Thông báo giao dịch pending.
Thông tin của giao dịch thất bại trên
hệ thống không bị thay đổi sang
thành công.
Không gửi mail (nếu có).
Với những web bán thẻ hay topup
thì không hiển thị số thẻ và topup.
5 Check hash
validated – Sửa
amount
Thực hiện một giao
dịch thành công như ở
trên. Sửa giá trị
vpc_Amount trên URL
onepay trả về rồi chạy
lại URL này trên trình
duyệt
Kiểm tra việc check
hash, đảm bảo dữ liệu trả
về là toàn vẹn, không bị
chỉnh sửa trên đường
truyền
Thông báo giao dịch pending.
Thông tin của giao dịch thành công
trên hệ thống không bị thay đổi
amount.
Không gửi mail (nếu có).
Với những web bán thẻ hay topup
thì không hiển thị số thẻ và topup.
6 Refresh trình
duyệt hoặc chạy
lại URL return
nhiều lần
Thực hiện một giao
dịch thành công.
Refresh trình duyệt
hoặc chạy lại URL
return nhiều lần
Kiểm tra một giao dịch
đã thành công chỉ được
update trạng thái và trả
kết quả một lần duy nhất
Không update thông tin vào hệ
thống nhiều lần.
Không gửi mail nhiều lần (nếu có).
Với những web bán thẻ hay topup
thì không hiển thị số thẻ và topup.
7 Không nhận
được kết quả trả
về
Khi Onepay đang trả
kết quả về website thì
tắt trình duyệt
Kiểm tra trạng thái của
một giao dịch khi không
nhận được kết quả trả về
từ Onepay
Do chưa nhận được kết quả trả về
nên trạng thái giao dịch để mặc định
là pending.
Cần triển khai thêm hàm query để
update trạng thái giao dịch.
8 Kiểm tra IP của
khách hàng
Thực hiện các giao dịch
ở các mạng có IP khác
nhau. Xem các giá trị
của tham số
vpc_TicketNo trên URL
chuyển sang Onepay
Kiểm tra xem giá trị IP
có tự động lấy theo IP
của Khách hàng hay bị
gán cố định
Giá trị các tham số này khác nhau
9 Loại tiền tệ
(currency) và số
tiền
Kiểm tra loại tiền tệ và
số tiền trên cổng thanh
toán đã chuẩn chưa
Giống như yêu cầu
10 Thông tin
chuyển sang
Nhập thông tin thanh
toán trên website sẽ
Đảm bảo dữ liệu chuyển
sang OP phải là tiếng
Trang thanh toán của Onepay sẽ
thông báo lỗi.
Cổng thanh toán Quốc tế
Mã số: 01/QT-KT Trang 10
Lần ban hành: 02 Ngày hiệu lực: 08/03/2013
Onepay chuyển sang Onepay
như mail, phone, địa
chỉ… bằng tiếng Việt
có dấu
việt không dấu.
4.9 Bảng mã lỗi giao dịch
? Response Unknown
0 Transaction Successful
1 Transaction Declined - Bank Error
2 Bank Declined Transaction
3 Transaction Declined - No Reply from Bank
4 Transaction Declined - Expired Card
5 Transaction Declined - Insufficient funds
6 Transaction Declined - Error Communicating with Bank
7 Payment Server Processing Error - Typically caused by invalid input data such as an
invalid credit card number. Processing errors can also occur
8 Transaction Declined - Transaction Type Not Supported
9 Bank Declined Transaction (Do not contact Bank)
A Transaction Aborted
B Block
C Transaction Cancelled
D Deferred Transaction
E Issuer Returned a Referral Response
F 3D Secure Authentication Failed
I Card Security Code Failed
L Shopping Transaction Locked (This indicates that there is another transaction taking
place using the same shopping transaction number)
N Cardholder is not enrolled in 3D Secure (Authentication Only)
P Transaction is Pending
R Retry Limits Exceeded, Transaction Not Processed
S Duplicate OrderInfo used. (This is only relevant for Payment Servers that enforce the
uniqueness of this field)
Cổng thanh toán Quốc tế
Mã số: 01/QT-KT Trang 11
Lần ban hành: 02 Ngày hiệu lực: 08/03/2013
U Card Security Code Failed
4.10 Sử dụng hàm vấn tin giao dịch QueryDR
4.10.1 Hàm vấn tin giao dịch là gì?
Hàm vấn tin giao dịch là một chức năng cho phép đơn vị chấp nhận cổng thanh toán vấn tin lại những
giao dịch đã thanh toán để xem thông tin về giao dịch đã thanh toán.
4.10.2 Yêu cầu triển khai
Không bắt buộc đơn vị triển khai hàm QueryDR.
4.10.3 Khi nào sử dụng hàm vấn tin giao dịch?
Hàm vấn tin giao dịch có thể được sử dụng trong hai trường hợp sau:
1. Đơn vị chấp nhận thẻ không nhận được kết quả trả về từ cổng thanh toán OnePAY.
2. Đơn vị chấp nhận thẻ nhận được kết quả trả lại từ cổng thanh toán OnePAY nhưng bước kiểm
tra giá trị vpc_SecureHash đang là pending.
Hàm QueryDR được sử dụng trong trường hợp cần lấy lại thông tin từ cổng thanh toán.
4.10.4 Điều kiện vấn tin một giao dịch
Trạng thái giao dịch là pending
Trong vòng 24h sau khi có giao dịch
4.10.5 Các tham số sử dụng trong hàm vấn tin giao dịch
URL Query: https://onepay.vn/vpcpay/Vpcdps.op
Tên đối số Mô tả
vpc_Command Cố định là “queryDR”
vpc_Version Cố định là 1
vpc_MerchTxnRef Giá trị của đối số vpc_MerchTxnRef gửi sang
Onepay
vpc_Merchant Merchant ID Onepay cấp cùng tài khoản
vpc_AccessCode Access code Onepay cấp cùng tài khoản
vpc_User User Onepay cấp cùng tài khoản
vpc_Password Password Onepay cấp cùng tài khoản
4.10.6 Cách thức triển khai hàm queryDR
Sử dụng file queryDR ở module mẫu của Onepay và nhập thông tin thích hợp.
Phương thức là POST các tham số sang URL query, sau khi có kết quả sẽ trả lại kết quả là một chuỗi
trên trình duyệt, không trả về trên URL như cổng thanh toán.
Cổng thanh toán Quốc tế
Mã số: 01/QT-KT Trang 12
Lần ban hành: 02 Ngày hiệu lực: 08/03/2013
4.10.7 Kết quả trả về của hàn queryDR
Kết quả trả về của hàm vấn tin QueryDR có 2 trường hợp:
+ Tồn tại giao dịch đã thực hiện thanh toán (có thể đã thanh toán thành công hoặc không thành
công).
+ Không tồn tại giao dịch thanh toán
Việc xác định tồn tại giao dịch hay không tồn tại giao dịch giựa trên giá trị trường vpc_DRExists.
vpc_DRExists=N: Không tồn tại giao dịch
vpc_DRExists=Y: Có tồn tại giao dịch thanh toán
Việc xác định giao dịch thành công hay không thành công giựa trên giá trị trường vpc_
TxnResponseCode.
vpc_TxnResponseCode=0: Giao dịch thanh toán thành công
vpc_ TxnResponseCode#0: Giao dịch không thanh toán thành công
4.11 Sử dụng tính năng thông báo thanh toán IPN (Instant Payment Notification)
4.11.1 IPN Là gì?
Tính năng thông báo thanh toán IPN là một tiện ích của cổng thanh toán OnePAY. Nó cung cấp tất cả
các dữ liệu của giao dịch đã thanh toán qua cổng thanh toán OnePAY.
IPN hoạt động theo công nghệ server-to-server và người sử dụng sẽ không thể nhìn thấy kết quả qua
màn hình.
4.11.2 Cách thức tích hợp
Đơn vị xây dựng một url có chức năng giống hệt url của trang DR
IPN sẽ gửi dữ liệu POST tới một địa chỉ URL của server đơn vị. Server luôn lắng nghe tại địa chỉ này.
Dữ liệu POST của IPN hoàn toàn giống với dữ liệu nhận được cho file DR xử lý cụ thể dưới dạng
FieldName/Value.
Mô hình xử lý IPN như hình dưới:
Hình 3. Mô hình IPN
Cổng thanh toán Quốc tế
Mã số: 01/QT-KT Trang 13
Lần ban hành: 02 Ngày hiệu lực: 08/03/2013
Như hình minh họa ở hình trên, để có thể tích hợp IPN, trước khi gửi URL cho hệ thống IPN cần kiểm
tra trực tiếp tại server của bạn bằng cách lấy dữ liệu nhận được từ cổng thanh toán OnePAY trả về file
DR.
Sau khi xử lý chính xác địa dữ liệu tương tự file DR, bạn cung cấp địa chỉ URL thiết lập IPN cho
OnePAY. Quá trình xử lý ở server đơn vị giống như file DR cần kiểm tra vpc_TxnResponseCode,
secure hash và amount để kiểm tra.
vpc_TxnResponseCode=0 & hash_validated = correct & amount = correct: Giao dịch thanh toán
thành công
vpc_TxnResponseCode#0: Giao dịch không thanh toán thành công
4.12 Thông báo giao dịch thanh toán cho đơn vị qua email
4.12.1 Định nghĩa
Hệ thống thanh toán OnePAY sẽ gửi email cảnh báo cho đơn vị chấp nhận thẻ qua email khi đơn vị
phát sinh một giao dịch thanh toán thành công qua cổng thanh toán OnePAY.
4.12.2 Yêu cầu triển khai
Hệ thống tự động gửi mail về cho ĐVCNT. ĐVCNT cần cung cấp địa chỉ hòm mail nhận thư cảnh báo
cho OnePAY qua hòm mail [email protected] với nội dung trong mail như sau:
Subject: Tên Viết tắt của công ty – Đăng ký nhận mail cảnh báo phát sinh giao dịch
-Tên công ty:
-Tên viết tắt:
-Địa chỉ:
-Liên hệ:
-Số điện thoại:
-MerchantID đã được OnePAY cung cấp:
4.13 Loại tiền tệ thanh toán (currency)
Loại tiền sử dụng trên cổng thanh toán là VND.
Nếu đơn vị chỉ được dùng loại tiền tệ là VND và website niêm yết tiền ngoại tệ khác như USD thì phải
chuyển đổi giá trị sang VND (tham số vpc_Amount) theo tỉ giá USD - VND trước khi chuyển sang
cổng thanh toán Onepay.
File XML tỉ giá của Vietcombank: http://www.vietcombank.com.vn/ExchangeRates/ExrateXML.aspx
4.14 Các thông tin phải có trên website
4.14.1 Điều khoản thanh toán
Trước khi người thanh toán click “thanh toán” và chuyển sang cổng thanh toán Onepay trên website
cần phải có một check box để khách hàng xác nhận đã đọc và đồng ý với các điều khoản thanh toán.
Tại đây có link để mở và xem các điều khoản thanh toán của công ty với khách hàng.
Cổng thanh toán Quốc tế
Mã số: 01/QT-KT Trang 14
Lần ban hành: 02 Ngày hiệu lực: 08/03/2013
Check box giống như: “Tôi đã đọc và đồng ý với các điều khoản thanh toán”
Link terms & conditions mẫu: http://mtf.onepay.vn/resource/documents/term_condition.rar
4.14.2 Logo và hướng dẫn thanh toán các loại thẻ chấp nhận thanh toán
Cần đưa logo và hướng dẫn thanh thanh toán cho các loại thẻ tương ứng trên website
Link logo mẫu: http://mtf.onepay.vn/developer/?page=logo
4.14.3 Thông tin liên hệ
Website cần phải có đầy đủ thông tin liên hệ như: Số điện thoại, email, địa chỉ...