Xử lý kết quả trả về từ checkout

Code IPN URL

https://checkout.vn/pay/success?cko_order_code=315&cko_status=1&cko_money=100000&cko_revenue=99000&cko_pay_fee=1000&cko_pay_gate=Onepay&cko_transaction=e53636
&cko_security=62497536dc64836eef211d7d21f2e90f7f66f8a55de694668a1a59f5a2eb694fe0130895bc68faa89a45c2437e1297b7c31a6d6bdf5f25d1778547049a2fba6f


Đây là địa chỉ để nhận kết quả thanh toán từ Checkout. Kết nối hiện tại sử dụng phương thức GET

Trên URL Checkout gọi về có mang thông tin thanh toán để căn cứ vào kết quả đó Website TMĐT xử lý các bước tiếp theo (ví dụ: cập nhật kết quả thanh toán vào Database …)

Url đơn hàng thanh toán thành công 

Tham số

Kiểu dữ liệu

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

Mô tả

cko_order_code

String

Bắt buộc

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

cko_status

Number

Bắt buộc

Mã phản hồi kết quả thanh toán. Quy định mã trả lời status = 1 ứng với kết quả Thành công cho tất cả các API.

cko_money

Double

Bắt buộc

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

cko_revenue

Double

Bắt buộc

 Số tiền thực nhận sau khi thanh toán

cko_pay_fee

Double

Bắt buộc

Phí giao dịch khi thanh toán

cko_pay_gate

String

Bắt buộc

Cổng thanh toán

cko_transaction

String

Không bắt buộc

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

subscription_id

String

Không bắt buộc

 Mã  subscription từ cổng thanh toán(stripe)

subscription_expired_at

String

Không bắt buộc

Thời hạn subscription từ cổng thanh toán(stripe)

cko_security

String

Bắt buộc

Mã kiểm tra (checksum) để đảm bảo dữ liệu của giao dịch không bị thay đổi trong quá trình chuyển từ Checkout về Website

 

 * IPN URL: Ghi nhận kết quả thanh toán từ Checkout

 * Các bước thực hiện:

 * Kiểm tra checksum 

$cko_shop_key = API_KEY // Lấy giá trị api key tại đây

$cko_SecureHash = $get['cko_security'];
$inputData = array();
foreach ($get as $key => $value) {
   if (substr($key, 0, 4) == "cko_") {
      $inputData[$key] = $value;
   }
}

unset($inputData['cko_security']);
ksort($inputData);
$hashData = http_build_query($inputData);
$secureHash = hash_hmac('sha512', $hashData, $cko_shop_key);

if ($secureHash == $cko_SecureHash) {

 // Kiểm tra số tiền giữa hai hệ thống

 // Kiểm tra tình trạng của giao dịch trước khi cập nhật

 // Cập nhật kết quả

}

Url đơn hàng thanh toán không thành công 

 

Tham số

Kiểu dữ liệu

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

Desc

cko_status

Number

Bắt buộc

Mã phản hồi kết quả thanh toán. Quy định mã trả lời status = 3 ứng với kết quả không thành công cho tất cả các API.

cko_order_code

String

Bắt buộc

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

message

       String

Không bắt buộc

Tin nhắn thông báo lỗi