Tích Hợp ShopeePay API: Tận Dụng Lợi Thế Từ Sàn TMĐT Số 1 Việt Nam

Nếu bạn là tín đồ mua sắm trên Shopee, chắc chắn bạn không lạ gì ShopeePay (Tiền thân là AirPay). Với lợi thế độc quyền nằm trong hệ sinh thái Shopee – sàn thương mại điện tử lớn nhất Việt Nam, ShopeePay sở hữu lượng người dùng năng động (Active Users) cực kì lớn.

Tích hợp ShopeePay không chỉ giúp bạn khai thác được tệp khách hàng quen thuộc với việc mua sắm online, mà còn tận dụng được các chương trình khuyến mãi (Voucher) mà Shopee thường xuyên tung ra.

1. Tại Sao Nên Thêm ShopeePay Vào Website?

  • Khách hàng “Săn Sale”: Người dùng ShopeePay rất nhạy bén với các chương trình khuyến mãi. Tích hợp ShopeePay giúp bạn tạo ra các chiến dịch Marketing hiệu quả hơn.
  • Thanh toán 1 chạm: Trải nghiệm thanh toán trên Mobile cực mượt mà, chuyển đổi từ Web sang App ShopeePay chỉ trong 1 giây.
  • Hỗ trợ ShopeeFood: Nếu bạn kinh doanh F&B, ShopeePay là cổng thanh toán không thể thiếu.

2. Quy Trình Đăng Ký Merchant ShopeePay

  1. Đăng ký qua trang đối tác ShopeePay hoặc liên hệ JAYbranding.
  2. Chuẩn bị hồ sơ pháp lý (Doanh nghiệp/Hộ kinh doanh).
  3. Nhận email chứa thông tin tích hợp:
    • Client ID (App ID)
    • Secret Key
    • Merchant ID

3. Hướng Dẫn Tích Hợp Kỹ Thuật (ShopeePay API)

ShopeePay sử dụng chuẩn RESTful API và xác thực bằng chữ ký HMAC-SHA256.

Bước 1: Tạo Request Payment

Bạn cần gửi POST request đến endpoint /v2/payment/create.

// Cấu hình
$clientId = "YOUR_CLIENT_ID";
$secretKey = "YOUR_SECRET_KEY";
$merchantId = "YOUR_MERCHANT_ID";
$orderId = "DH" . time();
$amount = 150000; // VND (không nhân 100)
$redirectUrl = "https://yourwebsite.com/shopeepay/result";
$notifyUrl = "https://yourwebsite.com/shopeepay/ipn";

// Payload JSON
$requestBody = array(
    'request_header' => array('merchant_id' => $merchantId),
    'merchant_ref_id' => $orderId,
    'payment_type' => 'Default',
    'amount' => array('currency' => 'VND', 'value' => $amount),
    'return_url' => $redirectUrl,
    'notification_url' => $notifyUrl,
    'additional_info' => 'Thanh toan don hang JAY Store'
);
$jsonBody = json_encode($requestBody);

// Tạo Signature
// Cấu trúc: base64(hmac-sha256(request_body, secret_key))
$timestamp = time();
$auth = base64_encode(hash_hmac('sha256', $jsonBody . $timestamp, $secretKey, true));

// Gửi CURL
$ch = curl_init('https://api.shopeepay.vn/v2/payment/create');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Authorization: ' . $auth,
    'X-ShopeePay-Timestamp: ' . $timestamp
));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonBody);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response, true);

if ($result['debug_msg'] == 'success') {
    // Redirect khách hàng đến link thanh toán
    $redirect_url_http = $result['redirect_url_http']; // Cho Web
    $redirect_url_app = $result['redirect_url_app']; // Cho Mobile App (Deeplink)
    
    // Kiểm tra User Agent để redirect đúng
    if (isMobile()) {
        header("Location: " . $redirect_url_app);
    } else {
         header("Location: " . $redirect_url_http);
    }
}

Bước 2: Xử lý IPN (Notification)

Xử lý dữ liệu ShopeePay bắn về notifyUrl để cập nhật trạng thái đơn hàng.

// File: ipn.php
$rawInput = file_get_contents("php://input");
$headers = getallheaders();
$receivedAuth = $headers['Authorization']; // Chữ ký từ ShopeePay

// Verify Signature
// Logic verify tương tự lúc tạo request nhưng dùng body nhận được
$timestamp = $headers['X-ShopeePay-Timestamp'];
$myAuth = base64_encode(hash_hmac('sha256', $rawInput . $timestamp, $secretKey, true));

if ($myAuth === $receivedAuth) {
    // Signature hợp lệ
    $data = json_decode($rawInput, true);
    if ($data['status'] == 'Success') {
        // Cập nhật đơn hàng thành công
         http_response_code(200);
    }
} else {
    http_response_code(401); // Unauthorized
}

4. Những Lỗi Thường Gặp

  • Lỗi 401 Unauthorized: Thường do tính sai Signature hoặc Timestamp quá lệch so với server ShopeePay (đồng bộ lại giờ server).
  • Lỗi Redirect trên Mobile: Nếu khách hàng không cài App Shopee/ShopeePay, deeplink sẽ không mở được. Cần fallback (dự phòng) bằng cách chuyển hướng sang Webview.

5. Dịch Vụ Của JAYbranding

JAYbranding giúp bạn tối ưu hóa trải nghiệm thanh toán ShopeePay:

  • Detect thiết bị thông minh: Tự động nhận diện khách dùng iPhone hay Android để mở đúng App.
  • Tích hợp Voucher: Hỗ trợ hiển thị mã giảm giá nếu ShopeePay có chương trình khuyến mãi.
  • Báo cáo doanh thu: Tự động tổng hợp doanh thu từ ShopeePay trong Admin Dashboard.

📞 Tích hợp ShopeePay – Đón đầu xu hướng mua sắm!
Hotline: 0899991131

FAQ Về ShopeePay

[faqs]

ShopeePay có hỗ trợ trả góp không?

Có, thông qua SPayLater (Mua trước trả sau) tích hợp sẵn trong ví.

Phí giao dịch ShopeePay là bao nhiêu?

Tương đương các ví khác, khoảng 1.1% – 2.0%.

[/faqs]

JAY AI

J.A.I — JAY AI

Trợ lý tư vấn JAYbranding