THÔNG SỐ KỸ THUẬT API THẺ SERVER-TO-SERVER GLODIPAY
PHIÊN BẢN 2.0.0
Mục lục
- Giới thiệu
- Điểm cuối (Endpoints)
- Chữ ký (Signature)
- POST PAYMENT
- TRANSACTION QUERY (Truy vấn giao dịch)
- NOTIFICATION (Thông báo)
- Mô phỏng thanh toán (Thẻ thử nghiệm)
Sử dụng môi trường Thử nghiệm (Test). Không có chi phí thực tế nào được tính.
| Không có 3DS | 4111 1111 1111 1111 | 01/30 | 029 | — |
| Không có 3DS | 5555 5555 5555 4444 | 01/30 | 029 | — |
| Thanh toán 3DS | 4012 8888 8888 1881 | 01/30 | 029 | Thành công: 123456 / Thất bại: 111111 |
| Thanh toán 3DS | 5111 1111 1111 1118 | 01/30 | 029 | Thành công: 123456 / Thất bại: 111111 |
| Thanh toán 3DS | 4141 4141 4141 4141 | 12/30 | 123 | Thành công: 123456 / Thất bại: 111111 |
- Phụ lục
- Giá trị trạng thái
- Mã trạng thái
- Mã tiền tệ
- Mã quốc gia
- Loại thẻ
- Ví dụ mã nguồn
- PHP
- Node.js
Giới thiệu
Tài liệu này mô tả GLODIPAY Server-to-Server (S2S) Card API v2, cho phép người bán gửi chi tiết thanh toán thẻ trực tiếp từ máy chủ của họ mà không cần chuyển hướng người mua đến trang do GLODIPAY lưu trữ.
Các tính năng chính:
- Gửi chi tiết thẻ trực tiếp: Số thẻ, ngày hết hạn và mã CVV được gửi trong yêu cầu API. Người bán chịu trách nhiệm thu thập chi tiết thẻ một cách an toàn trên trang của mình (yêu cầu tuân thủ PCI DSS).
- Tự động chuyển tầng (Auto-Cascade): Khi được bật cho tài khoản người bán, gateway sẽ tự động thử lại việc tính phí qua nhiều Nhà cung cấp dịch vụ thanh toán (PSP) theo thứ tự ưu tiên. Các thất bại riêng lẻ của từng PSP sẽ được ẩn đi -- chỉ kết quả cuối cùng mới được trả về.
- Hỗ trợ 3DS: Nếu nhà cung cấp yêu cầu xác thực 3D Secure, một phản hồi
redirectsẽ được trả về kèm theo một URL để hoàn tất xác minh. Sau khi xác thực 3DS, kết quả sẽ được gửi qua IPN và người mua được chuyển hướng về trang của người bán.
Điểm cuối (Endpoints)
| Thử nghiệm | Sẽ được cung cấp |
| Sản xuất | Lấy từ trang API Keys trong Dashboard của người bán |
Chữ ký (Signature)
Tất cả các yêu cầu gửi đến GLODIPAY phải bao gồm trường signature. Tất cả các phản hồi và payload IPN từ GLODIPAY cũng bao gồm trường signature để xác minh tính xác thực.
Chữ ký sử dụng RSA với MD5 (md5WithRSAEncryption).
Tạo chữ ký (Người bán -> GLODIPAY)
Sử dụng khóa riêng của người bán (có sẵn trong Dashboard của người bán).
Các bước:
- Thu thập tất cả các tham số yêu cầu ngoại trừ
signaturedưới dạng đối tượng khóa-giá trị phẳng. - Sắp xếp chỉ các khóa cấp cao nhất theo thứ tự tăng dần tự nhiên (
SORT_NATURALtrong PHP /localeComparevới{ numeric: true }trong JavaScript). Không sắp xếp các khóa bên trong các đối tượng lồng nhau (ví dụ:fees,paymentMethodDetails). - Cắt bỏ khoảng trắng ở đầu và cuối tất cả các giá trị chuỗi một cách đệ quy.
- Tuần tự hóa thành một chuỗi JSON.
- Ký bằng
openssl_sign(..., 'md5WithRSAEncryption'). - Mã hóa Base64 đầu ra nhị phân.
Xác minh chữ ký (GLODIPAY -> Người bán)
Sử dụng khóa công khai của GLODIPAY (có sẵn từ Cổng thông tin).
Các bước:
- Loại bỏ
signaturekhỏi payload. - Sắp xếp chỉ các khóa cấp cao nhất theo thứ tự tăng dần tự nhiên. Không sắp xếp các khóa bên trong các đối tượng lồng nhau.
- Cắt bỏ khoảng trắng ở đầu và cuối tất cả các giá trị chuỗi một cách đệ quy.
- Tuần tự hóa thành một chuỗi JSON.
- Xác minh bằng
openssl_verify(..., base64_decode($signature), $publicKey, 'md5WithRSAEncryption'). - Giá trị trả về
1= hợp lệ.
Lưu ý (Node.js): Chuyển đổi tất cả các giá trị số thành chuỗi trước khi sắp xếp/tuần tự hóa. Thoát các dấu gạch chéo xuôi trong chuỗi JSON: .replace(///g, '\/').