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);
			    $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 Ý: 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ả";
			}