Source code mẫu đổi thẻ cào tích hợp API cho website Phương thức Post

Ngày đăng: 2025-02-20 22:52:35 Đã xem: 3736

Gửi thẻ: 

<?php

// đây là tài liệu đẩy thẻ mẫu theo phương thức POST ace nhé! | Doithecao360.com CHẤP NHẬN CẢ GET VÀ POST KHI GỬI THẺ
//nếu có lỗi vui lòng liên hệ admin
        if (isset($_POST['submit'])) {
        if (empty($_POST['telco']) || empty($_POST['amount']) || empty($_POST['serial']) || empty($_POST['code'])) 
        {
        echo ('Bạn cần nhập đầy đủ thông tin');
        } else {
            
        $partner_id = ''; // TẠO Ở Doithecao360.com
        $partner_key = '';  // TẠO Ở Doithecao360.com
        $dataPost = array();
        $dataPost['request_id'] = rand(100000000, 999999999); //Mã đơn hàng của bạn
        $dataPost['code'] = $_POST['code'];
        $dataPost['partner_id'] = $partner_id;
        $dataPost['serial'] = $_POST['serial'];
        $dataPost['telco'] = $_POST['telco'];
        $dataPost['amount'] = $_POST['amount'];
        $dataPost['command'] = 'charging';  // NẠP THẺ
        $dataPost['sign'] = md5($partner_key.$_POST['code'].$_POST['serial']); //mã hóa chữ ký :md5(partner_key + code + serial)
        $data = http_build_query($dataPost);
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, 'https://Doithecao360.com/chargingws/v2');
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        $actual_link = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
        curl_setopt($ch, CURLOPT_REFERER, $actual_link);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $result = curl_exec($ch);
        curl_close($ch);
        $obj = json_decode($result);
        if ($obj->status == 99) {
            //Gửi thẻ thành công, đợi duyệt.
            echo '<pre>';
            print_r($obj);
            echo '</pre>';
        } elseif ($obj->status == 1) {
            //Thẻ đúng
            echo '<pre>';
            print_r($obj);
            echo '</pre>';
        } elseif ($obj->status == 2) {
            //Thẻ đúng nhưng sai mệnh giá
            echo '<pre>';
            print_r($obj);
            echo '</pre>';
        } elseif ($obj->status == 3) {
            //Thẻ lỗi
            echo '<pre>';
            print_r($obj);
            echo '</pre>';
        } elseif ($obj->status == 4) {
            //Bảo trì
            echo '<pre>';
            print_r($obj);
            echo '</pre>';
        } else {
            //Lỗi khác
            echo '<pre>';
            print_r($obj);
            echo '</pre>';
        }


    }
}
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Doithecao360.com - API</title>
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css"
          integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
</head>
<body>
<div class="container">
    <div class="row" style="margin-top: 50px;">
        <div class="col-md-8" style="float:none;margin:0 auto;">
            <form method="POST" action="">
                <div class="form-group">
                    <label>Loại thẻ:</label>
                    <select class="form-control" name="telco">
                        <option value="">Chọn loại thẻ</option>
                        <option value="VIETTEL">Viettel</option>
                        <option value="MOBIFONE">Mobifone</option>
                        <option value="VINAPHONE">Vinaphone</option>
                        <option value="GATE">Gate</option>
                        <option value="ZING">Zing</option>
                        <option value="GARENA">Garena</option>
                        <option value="VCOIN">VCOIN</option>
                        <option value="VNMOBI">VNMOBI</option>
                    </select>
                </div>
                <div class="form-group">
                    <label>Mệnh giá:</label>
                    <select class="form-control" name="amount">
                        <option value="">Chọn mệnh giá</option>
                        <option value="10000">10.000</option>
                        <option value="20000">20.000</option>
                        <option value="30000">30.000</option>
                        <option value="50000">50.000</option>
                        <option value="100000">100.000</option>
                        <option value="200000">200.000</option>
                        <option value="300000">300.000</option>
                        <option value="500000">500.000</option>
                        <option value="1000000">1.000.000</option>
                    </select>
                </div>
                <div class="form-group">
                    <label>Số seri:</label>
                    <input type="text" class="form-control" name="serial"/>
                </div>
                <div class="form-group">
                    <label>Mã thẻ:</label>
                    <input type="text" class="form-control" name="code"/>
                </div>
                <div class="form-group">
                    <button type="submit" class="btn btn-success btn-block" name="submit">NẠP NGAY</button>
                </div>
            </form>
        </div>
    </div>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
        integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
        crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"
        integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49"
        crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"
        integrity="sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T"
        crossorigin="anonymous"></script>
</body>
</html>

 

Nhận kết quả trả thẻ:  

 

<?php
// mặc định khi cấu hình api post ở Doithecao360.com callback gọi về post json

 $txtBody = file_get_contents('php://input');
// $jsonBody = json_decode($txtBody,true); // chuyển chuỗi JSON thành một mảng

// Ở ĐÂY MÌNH CHUYỂN CHUỖI THÀNH 1 ĐỐI TƯỢNG NHÉ 
 $jsonBody = json_decode($txtBody); 

    if (isset($jsonBody->callback_sign)) 
    {
        ///Chỗ này để lưu lại LOG
        $file = @fopen('log.txt', 'a');
        if ($file)
        {
        $data =  "[" .date('Y/m/d H:i:s', time()) ."]" .file_get_contents('php://input').PHP_EOL; //lấy toàn bộ dữ liệu được gửi vào trong request
         fwrite($file, $data);
        }
        
        /// status = 1 ==> thẻ đúng
        /// status = 2 ==> thẻ sai mệnh giá
        /// status = 3 ==> thẻ lỗi
        /// status = 99 ==> thẻ chờ xử lý

        //// Kết quả trả về sẽ có các trường như sau:
        $partner_key = '9ea237ddd7c8073efc307a968ad99e04';// key của quý khách tại Doithecao360.com
        
        //ĐỐI CHỮ KÝ, CŨNG CÓ THỂ BỎ QUA ĐỐI CHIẾU NẾU CẢM THẤY KHÔNG CẦN THIẾT 
        $callback_sign = md5($partner_key . $jsonBody->code . $jsonBody->serial);
        if ($jsonBody->callback_sign == $callback_sign) 
        {

            $getdata['status'] = $jsonBody->status; // Trạng thái thẻ
            $getdata['message'] = $jsonBody->message; // thông báo kèm theo thẻ
            $getdata['request_id'] = $jsonBody->request_id;   /// Mã giao dịch của bạn
            $getdata['trans_id'] = $jsonBody->trans_id;   /// Mã giao dịch của Doithecao360.com
            $getdata['declared_value'] = $jsonBody->declared_value;  /// Mệnh giá mà bạn khai báo 
            $getdata['value'] = $jsonBody->value;  /// Mệnh giá thực tế của thẻ
            $getdata['amount'] = $jsonBody->amount;   /// Số tiền bạn nhận về (VND)
            $getdata['code'] = $jsonBody->code;   /// Mã nạp
            $getdata['serial'] = $jsonBody->serial;  /// Serial thẻ
            $getdata['telco'] = $jsonBody->telco;   /// Nhà mạng
            print_r($getdata);
        }
        
        //KIỂM TRA STATUS VÀ XỬ LÝ CODE CỦA BẠN TẠI ĐÂY ...

    }


?>