Hướng dẫn tích hợp cổng thanh toán

Hướng dẫn các lập trình viên của Website đối tác tích hợp Cổng thanh toán Checkout.vn để xử lý giao dịch Thanh toán trực tuyến cho khách hàng sử dụng Key và Token

URL Thanh toán là địa chỉ URL mang thông tin thanh toán

Website sử dụng hàm mã hóa AES-256-CBC để tạo link thanh toán cho khách hàng
URL có dạng: 

https://checkout.vn/checkout?token={TOKEN}&datas={JSON_DATA}

Thông tin bao gồm:

  • TOKEN: Lấy giá trị Token (Api token) tại đây
  • JSON_DATA: Chứa thông tin giao dịch bao gồm

Tham số

Kiểu dữ liệu

Bắt buộc/ Tùy chọn

Desc

description

String

Tùy chọn

Mô tả thông tin giao dịch

currency

string

Bắt buộc

Đơn vị tiền tệ : VND

order_items

Array[] = {item_name: “abc”,

item_quantity : 2,

item_price : 1000

}

Bắt buộc

Danh sách thông tin sản phẩm trong order

payment_type_id

Number

Không bắt buộc

ID cổng thanh toán

pay_money

Number

Bắt buộc

Số tiền cần thanh toán

contact_name

String

Bắt buộc

Tên Khách hàng

contact_mobile

String

Tùy chọn

Số điện thoại KH

contact_email

String

Tùy chọn

Email KH

order_id

String

Bắt buộc

Mã đơn hàng của đối tác

url_thanks

 

String

Tùy chọn

Link trả về kết quả thanh toán khi thành công bao gồm các thông tin:

trans_id: Mã giao dịch từ cổng thanh toán

order_id: Mã đơn đối tác

order_code: Mã đơn hệ thống Checkout.vn

channel: Kênh thanh toán

money: Số tiền thanh toán

pay_fee: Phí thanh toán

real_money: Số tiền thực nhận

token: Token checksum xác thực giao dịch

url_cancel

String

Tùy chọn

Link trả về kết quả thanh toán khi thất bại bao gồm các thông tin:

order_code: Mã đơn hệ thống Checkout.vn

message: Nội dung lỗi khi giao dịch

 

Ví dụ hàm mã hóa

Code PHP hàm mã hóa JSON_DATA:

function genLinkPayment($apiKey, $token, $value) {
    $serialize = true;
    $iv = random_bytes(16);
    $cipher = 'AES-256-CBC';
    $value = \openssl_encrypt(
        $serialize ? serialize($value) : $value,
        $cipher, $apiKey, 0, $iv
    );
    $mac = hashMake($iv = base64_encode($iv), $value, $apiKey);
    $json = json_encode(compact('iv', 'value', 'mac'));
    $link = "https://checkout.vn/checkout?token=$token&datas=". base64_encode($json);
    return $link;
}