Cách Tích Hợp Kết Nối API Đổi Thẻ, Mua Thẻ, Nạp Game, v.v - NapThe1s.Com

CÁCH TÍCH HỢP KẾT NỐI API ĐỔI THẺ, MUA THẺ, NẠP GAME – NAPTHE1S.COM
Charging v2Topup · Nạp gameMua mã thẻCode mẫu PHP
Bạn có shop game, web bán thẻ hoặc web con? Kết nối API của NapThe1s.Com để tự động gạch thẻ cào, nạp topup, nạp game và bán mã thẻ ngay trên hệ thống của bạn. Bài viết tóm tắt cách lấy key, cách tạo chữ ký và các lệnh chính. Thông số chi tiết xem tại Tài liệu API.
1.API NapThe1s gồm những gì
/chargingws/v2/api/rechargews/api/cardwsCả 3 API dùng chung cách xác thực: partner_id + chữ ký sign (md5 có ghép partner_key). Phương thức khuyến nghị là POST.
2.Đăng ký lấy partner_id, partner_key
- Đăng ký / đăng nhập tài khoản tại NapThe1s.Com.
- Vào Thêm API (hoặc link Kết nối API ở chân trang) và bấm Thêm mới.
- Chọn Loại API: Đổi thẻ cào, Mua thẻ cào hoặc Nạp tiền topup.
- Chọn quỹ / ví giao dịch dùng để nhận tiền hoặc thanh toán.
- Chọn kiểu callback GET hoặc POST và nhập Callback Url trên web của bạn.
- Nhập địa chỉ IP máy chủ của bạn (không bắt buộc, nhưng nên khai báo để an toàn hơn).
- Bấm Thêm thông tin kết nối để nhận partner_id và partner_key.
Đăng ký kết nối API Xem tài liệu API đầy đủ
3.API đổi thẻ cào (Charging v2)
| Mục | Giá trị |
|---|---|
| Endpoint | https://napthe1s.com/chargingws/v2 |
| Biểu phí | https://napthe1s.com/chargingws/v2/getfee?partner_id=YOUR_PARTNER_ID |
| Lệnh | charging (gửi thẻ), check (kiểm tra trạng thái) |
| Tham số charging | command, partner_id, request_id, telco, amount, serial, code, sign |
| Mã nhà mạng | VIETTEL, VINAPHONE, MOBIFONE, ZING, GARENA, VCOIN |
Công thức chữ ký sign
- charging:
md5(partner_key . code . command . partner_id . request_id . serial . telco) - check:
md5(partner_key . command . partner_id . request_id)
Trạng thái thẻ trả về
| status | Ý nghĩa |
|---|---|
| 99 | PENDING – thẻ đang chờ xử lý. |
| 1 | VALID_CARD – thẻ đúng, giao dịch thành công. |
| 2 | CARD_WRONG_VALUE – thẻ đúng nhưng sai mệnh giá khai báo. |
| 3 | INVALID_CARD – thẻ không hợp lệ hoặc dữ liệu sai. |
| 4 | MAINTENANCE – nhà mạng hoặc cổng đang bảo trì. |
message.Nên gọi getfee trước khi dựng form nạp thẻ để lấy đúng biểu phí và mệnh giá được hỗ trợ.
4.Code mẫu PHP gửi thẻ
<?php
$endpoint = 'https://napthe1s.com/chargingws/v2';
$partnerId = 'YOUR_PARTNER_ID';
$partnerKey = 'YOUR_PARTNER_KEY';
$payload = [
'command' => 'charging',
'partner_id' => $partnerId,
'request_id' => 'NAPTHE_' . time(), // không được trùng
'telco' => 'VIETTEL',
'amount' => '100000',
'serial' => '10006139342354',
'code' => '114384960423544',
];
$payload['sign'] = md5($partnerKey . $payload['code'] . $payload['command']
. $payload['partner_id'] . $payload['request_id'] . $payload['serial'] . $payload['telco']);
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($payload),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
// status 99 = đang xử lý, 1 = thẻ đúng, 2 = sai mệnh giá, 3 = thẻ lỗi
print_r($result);Code mẫu cho C#, Java, Node.js, Python có sẵn trong Tài liệu API.
5.API nạp topup, nạp game
| Mục | Giá trị |
|---|---|
| Endpoint | https://napthe1s.com/api/rechargews (POST, JSON) |
| Lệnh | topup, getstatus, getbalance, productlist, canceltopup, feetopup |
| Sign topup, getstatus | md5(partner_key . partner_id . command . request_id) |
| Sign các lệnh còn lại | md5(partner_key . partner_id . command) |
- Gọi
productlistđể lấy danh sách dịch vụ (nạp điện thoại, data, nạp game…), service_code và thông tin cần nhập. - Gọi
topupvớiservice_code,amountvàaccount_info(ví dụ{"phone":"0987654321"}hoặc ID game tùy sản phẩm). - Lưu
order_codetrả về, dùnggetstatusđể tra cứu đến khi đơn completed.
6.API mua mã thẻ
| Mục | Giá trị |
|---|---|
| Endpoint | https://napthe1s.com/api/cardws (POST, JSON) |
| Danh sách sản phẩm | https://napthe1s.com/api/cardws/products?partner_id=YOUR_PARTNER_ID (GET) |
| Lệnh | buycard, redownload, checkavailable, getbalance |
| Sign buycard, redownload | md5(partner_key . partner_id . command . request_id) |
| Sign checkavailable, getbalance | md5(partner_key . partner_id . command) |
Lệnh buycard cần service_code (ví dụ VIETTEL), value, qty và wallet_number (ví thanh toán của bạn). Mã thẻ trả về ngay trong data.cards; nếu mất kết quả, dùng redownload với cùng request_id để tải lại.
checkavailable trước để kiểm tra tồn kho.7.Callback và bảo mật
Với đổi thẻ, kết quả cuối cùng được gửi về Callback Url bạn đã khai báo. Luôn kiểm tra chữ ký trước khi cộng tiền cho khách:
<?php
// Kiểm tra chữ ký callback trước khi cộng tiền cho khách
$data = $_POST ?: $_GET;
$expected = md5($partnerKey . $data['code'] . $data['serial']);
if (!hash_equals($expected, $data['callback_sign'] ?? '')) {
http_response_code(403);
exit('invalid sign');
}
// Tìm đơn theo $data['request_id'], cập nhật theo $data['status'] và $data['amount']- request_id phải là duy nhất cho mỗi giao dịch, lưu lại để đối soát và gọi
check. - Khai báo IP máy chủ khi đăng ký API; request từ IP lạ sẽ bị từ chối (lỗi 102).
- Chỉ gọi API từ máy chủ, không gọi trực tiếp từ trình duyệt để tránh lộ partner_key.
- Không nhận thẻ không rõ nguồn gốc; tài khoản gửi thẻ gian lận qua API sẽ bị khóa vĩnh viễn theo Điều khoản.
8.Câu hỏi thường gặp
Kết nối API có mất phí không?
Đăng ký kết nối API miễn phí. Phí áp dụng theo biểu phí đổi thẻ, chiết khấu topup và giá mua thẻ của tài khoản bạn, lấy được qua getfee, feetopup và danh sách sản phẩm.
Lỗi 102 là gì?
Sai xác thực: partner_id hoặc sign không đúng, gửi từ IP chưa khai báo, hoặc dữ liệu đầu vào không hợp lệ. Hãy kiểm tra lại công thức sign và IP máy chủ.
Gửi thẻ xong bao lâu có kết quả?
Thẻ nhà mạng phổ biến thường có kết quả trong vài giây. Trong lúc chờ, API trả status 99; kết quả cuối được gửi về Callback Url hoặc tra cứu bằng lệnh check.
Có code mẫu ngôn ngữ khác không?
Có. Tài liệu API có code mẫu PHP, C#, Java, Node.js và Python cho từng nhóm API.
Hỗ trợ trong khung giờ 8H – 22H hằng ngày.