shopdoithe.com API
API chuẩn của shopdoithe.com
Gửi thẻ
Phương thức: GET
Url: https://shopdoithe.com/api/sendCard_v3
Dữ liệu cần thiết khi gửi lên
cardType - Loại thẻ (VTT:Viettel - VNP:Vinaphone - VMS:Mobifone - ZING:Zing - GATE:Gate - VCOIN:Vcoin)
cardSeri - Seri thẻ cào
cardCode - Mã thẻ cào
cardValue - Mệnh giá thẻ
key - Key lấy từ website shopdoithe.com
refcode - ID mã đơn. bạn tự khởi tạo để so sánh với kết quả trả về
Signature - Chữ ký số ( Được mã hóa theo chuẩn: md5(key+cardCode+cardSeri) )
callbackUrl - đường dẫn nhận kết quả trả về (Ví dụ https://yourdomain.com/callback.php)
Kết quả trả về:
status - Trạng thái gửi thẻ (-1: Thất bại, 1:Thành công)
status_code - Mô trả trạng thái
msg - Thông báo mô tả
transaction_id - Mã giao dịch (Nếu gửi thẻ thành công)
Code mẫu:
$data['url'] ="https://shopdoithe.com/api/sendCard_v3"; $data['callbackUrl'] ="http://localhost/shopdoithe/callback.php"; $data['key'] = 'key'; //VTT : Viettel //VNP : Vinaphone //VMS : Mobifone //ZING : Zing //GATE : Gate //VCOIN : Vcoin $data['cardType'] = 'VTT'; // string $data['cardSeri'] = ''; // string $data['cardCode'] = ''; // string $data['cardValue'] = 10000; // interger $data['refcode'] = 'id giao dich 001';// string $data['Signature'] = md5($data['key'].$data['cardCode'].$data['cardSeri']); $url = $data['url'].'?key='.$data['key'].'&cardSeri='.$data['cardSeri'].'&cardType='.$data['cardType'].'&cardValue='.$data['cardValue'].'&cardCode='.$data['cardCode'].'&callbackUrl='.$data['callbackUrl'].'&refcode='.$data['refcode'].'&Signature='.$data['Signature']; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, false); $cu = curl_exec($curl); echo $cu; $result = json_decode($cu,true); curl_close($curl); if($result['status'] == 1){ echo "Thẻ đã gửi thành công. Vui lòng chờ xử lý"; }else{ echo "Thẻ gửi lên thất bại"; } exit();
Nhận kết quả trả thẻ
Đây là phần code bên bạn, với đường dẫn file là callbackUrl bạn gửi lên ở bước Gửi thẻ
Phương thức: GET
Danh sách trả về:
transaction_id - Mã giao dịch ở bước gửi thẻ
status - Trạng thái gửi thẻ (-1: Thất bại, 1:Thành công)
value - Mệnh giá bạn gửi lên
real_value - Mệnh giá thực
received_value - Mệnh giá chốt
card_seri - Seri thẻ cào
card_code - Mã thẻ cào
refcode - Mã giao dịch của bạn
sign - Chữ ký số ( Được mã hóa theo chuẩn: md5(key+transaction_id) )
Lưu ý: received_value - Mệnh giá chốt là mệnh giá tính tiền, dùng biến này để xử lý khi gặp trường hợp thẻ sai mệnh giá
LƯU Ý: Callback có thể gửi lại nhiều lần. Nhưng thẻ đúng thì chỉ trả 1 lần.
Code mẫu:
if(isset($_GET['transaction_id'])){ $key = 'key'; $data = array(); if(isset($_GET['transaction_id'])){ $transaction_id = $_GET['transaction_id']; }else{ $transaction_id = ''; } if(isset($_GET['status'])){ $status = $_GET['status']; }else{ $status = -6; } if(isset($_GET['value'])){ $value = $_GET['value']; }else{ $value = 0; } if(isset($_GET['real_value'])){ $real_value = $_GET['real_value']; }else{ $real_value = 0; } if(isset($_GET['received_value'])){ $received_value = $_GET['received_value']; }else{ $received_value = 0; } if(isset($_GET['card_seri'])){ $card_seri = $_GET['card_seri']; }else{ $card_seri = ''; } if(isset($_GET['card_code'])){ $card_code = $_GET['card_code']; }else{ $card_code = ''; } if(isset($_GET['refcode'])){ $refcode = $_GET['refcode']; }else{ $refcode = ''; } if(isset($_GET['sign'])){ $sign = $_GET['sign']; }else{ $sign = ''; } $signatureencode = md5($key.$transaction_id); //Kiểm tra chữ ký số. if($signatureencode == $sign){ if($status == -6){ echo "Không lấy được kết quả trả về"; }else{ //Thành công if($status == 1){ //Kiểm tra mệnh giá thẻ if($real_value != 0 && $value != 0){ //So sánh mệnh giá gửi và mệnh giá trả về if($value == $real_value){ //Thành công và đúng mệnh giá thẻ echo "Thành công với mệnh giá".$real_value; }else{ echo "Thành công nhưng sai mệnh giá"; } }else{ echo "Không lấy được mệnh giá thẻ"; } }else{ //Thẻ sai echo "Thẻ sai hoặc đã được sử dụng"; } } }else{ echo "Chữ ký số không đúng"; } }else{ echo "không nhận được kết quả"; }
Ngoài ra, website còn cung cấp cổng thanh toán trả thẻ trực tiếp, thông tin gửi lên giống như trên nhưng thay link nhận thẻ từ https://shopdoithe.com/api/sendCard_v3 thành https://shopdoithe.com/api/sendCard_tt
Quý khách có thể download code mẫu trả thẻ trực tiếp tại đây: download