Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk mengecas semula bil telefon dalam php

Bagaimana untuk mengecas semula bil telefon dalam php

藏色散人
藏色散人asal
2022-10-20 14:50:431870semak imbas

Cara melaksanakan cas semula telefon dalam PHP: 1. Buka antara muka cas semula telefon; Tolak maklumat status ke URL yang sepadan 6. Semak sama ada cas semula disokong berdasarkan telefon mudah alih dan denominasi 7. Lakukan pemprosesan logik perniagaan melalui "jika ($local_sign == $sign) {...}".

Bagaimana untuk mengecas semula bil telefon dalam php

Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 8.1, komputer Dell G3.

Bagaimana untuk mengecas semula bil telefon dalam PHP?

Contoh antara muka cas semula bil telefon agregat berdasarkan PHP

1 Aplikasi untuk pengaktifan antara muka

Kod ini berdasarkan API cas semula bil telefon berdasarkan agregat. data untuk melaksanakan fungsi cas semula bil telefon Sebelum digunakan, anda perlu:

  • Memohon untuk membuka perkhidmatan antara muka panggilan melalui https://www.juhe.cn/docs/api/id/85?s=cpphpcn.

  • Ia hanya boleh digunakan secara rasmi selepas menandatangani kontrak perkhidmatan yang berkaitan dengan pengagregatan. Pada peringkat awal, anda juga boleh memohon untuk membuka persekitaran ujian dan menjalankan ujian dok.

  • Untuk penerangan antara muka terperinci, sila rujuk dokumentasi rasmi pengagregatan.

2. Penggunaan antara muka

2.1 Memperkenalkan kelas kod berkapsul

include "JuheHuaFei.class.php";

2.2 🎜>2.3. Hantar pesanan caj semula telefon

// 接口基本信息配置
$env = 1; // 接口环境类型,1:正式环境接口 2:测试环境接口
$appKey = 'b842820xxxxxxxxxxxxxxxxxx'; //从聚合申请的话费充值接口key
$openId = 'JHb0d92d94ce6axxxxxxxxxxx'; //注册聚合账号就会分配的openid,在个人中心可以查看
// 初始化
$juheHuaFei = new JuheHuaFei($appKey, $openId, $env);

Hasil permintaan:

// 提交话费充值订单
$orderId = '111111111'; //自己定义一个订单号,需要保证唯一
$mobile = '189xxxxxxxx'; // 需要充值的手机号码
$perValue = '1'; // 话费面值,可以选择的面额1、2、5、10、20、30、50、100、300
$submitOrderResult = $juheHuaFei->submitOrder($mobile, $perValue, $orderId);
if ($submitOrderResult) {
    if ($submitOrderResult['error_code'] == '0') {
        // 订单提交成功,根据实际业务逻辑进行处理
        echo "订单提交成功,订单号:" . $submitOrderResult['result']['sporder_id'];
        print_r($submitOrderResult);
    } else {
        // 提交返回码error_code非正常状态,依据官方文档错误码说明,进行逻辑处理
        // 比如:10014,系统异常 / 208516,重复的订单号 等,需要进行二次查询/人工确认处理,不要直接失败处理,避免造成不必要的损失
        print_r($submitOrderResult);
    }
} else {
    // 可能网络异常等问题,未获得正确响应结果,建议进行二次查单/人工确认,不要直接失败处理,避免造成不必要的损失
    // 依据自己的业务逻辑进行处理
    echo "请求异常,请确认";
}

2.4 Anda juga boleh memberikan URL pemberitahuan panggilan balik status kepada pengagregatan Jika status pesanan berubah, pengagregatan akan secara aktif menolak maklumat status ke URL yang sepadan.

Array
(
    [reason] => 订单提交成功,等待充值
    [result] => Array
        (
            [cardid] => 10423
            [cardnum] => 1
            [ordercash] => 1.06
            [cardname] => 江苏电信话费1元
            [sporder_id] => J201125162114667xxxxxxxx
            [uorderid] => 111111111
            [game_userid] => 189xxxxxxxx
            [game_state] => 0
        )
    [error_code] => 0
)

Keputusan pengembalian:

2.5 Periksa sama ada pengecasan semula disokong berdasarkan telefon mudah alih dan denominasi
// 话费订单充值状态查询
$orderId = '111111111'; // 需要查询的订单号,即提交订单时传递的orderId
$orderStatusResult = $juheHuaFei->queryOrderStatus($orderId);
if ($orderStatusResult) {
    // 打印返回结果
    print_r($orderStatusResult);
    // 根据实际业务逻辑进行处理
    if ($orderStatusResult['error_code'] == '0') {
        //查询成功
        if ($orderStatusResult['result']['game_state'] == '1') {
            // 订单充值成功了
            echo "订单充值成功";
        } elseif ($orderStatusResult['result']['game_state'] == '9') {
            // 订单充值失败
            echo "订单充值失败";
        } elseif ($orderStatusResult['result']['game_state'] == '0') {
            // 订单充值中
            echo "订单充值中";
        } elseif ($orderStatusResult['result']['game_state'] == '-1') {
            //订单受理失败,可能是如运营商维护、账户余额不足等情况
            echo "订单受理失败";
        }
    } else {
        //查询状态失败,可能订单号不存在等情况
        echo "查询失败:" . $orderStatusResult['reason'] . "(" . $orderStatusResult['error_code'] . ")";
    }
} else {
    // 可能网络异常等问题,未获得正确响应结果,建议进行二次查询
    // 依据自己的业务逻辑进行处理
    echo "请求异常,请确认";
}

Terutamanya tentukan sama ada cas semula disokong berdasarkan segmen nombor Dalam perniagaan sebenar Antara muka kecil ini tidak perlu digunakan.

Array
(
    [reason] => 查询成功
    [result] => Array
        (
            [uordercash] => 1.060
            [sporder_id] => J2011251629516xxxxxxxxxx
            [game_state] => 9
        )
    [error_code] => 0
)

2.6. Dapatkan maklumat produk berdasarkan telefon mudah alih dan denominasi

Antara muka kecil ini tidak perlu digunakan dalam perniagaan sebenar.

// 根据手机号码及面额查询是否支持充值
$mobile = '1342966xxxx'; // 手机号码
$perValue = '10'; // 话费面值
$telCheckResult = $juheHuaFei->telCheck($mobile, $perValue);
if ($telCheckResult) {
    if($telCheckResult['error_code'] == '0'){
        //说明支持充值,可以继续充值操作,以下可以根据实际需求修改
        echo "OK";
    }else{
        //暂不支持充值,以下可以根据实际需求修改
        echo "对不起,该面额暂不支持充值";
    }
} else {
    // 可能网络异常等问题,未获得正确响应结果,建议进行二次查询
    // 依据自己的业务逻辑进行处理
    echo "请求异常,请确认";
}

Kembali hasil:

2.7. Pemberitahuan status pesanan
// 根据手机号码和面额获取商品信息
$mobile = '1342966xxxx'; // 手机号码
$perValue = '10'; // 话费面值
$telQueryResult = $juheHuaFei->telQuery($mobile, $perValue);
if ($telQueryResult) {
    if($telQueryResult['error_code'] == '0'){
        // 查询成功,可以根据实际逻辑修改
        print_r($telQueryResult);
    }else{
        // 查询失败,可以根据实际逻辑修改
        print_r($telQueryResult);
    }
} else {
    // 可能网络异常等问题,未获得正确响应结果,建议进行二次查询
    // 依据自己的业务逻辑进行处理
    echo "请求异常,请确认";
}

Alamat URL tolak: Berikannya kepada pengagregatan untuk konfigurasi (untuk keselamatan yang lebih baik, anda boleh juga senarai putih IP pelayan tolak agregat)

Array
(
    [reason] => 查询成功
    [result] => Array
        (
            [cardid] => 10880
            [cardname] => 浙江移动话费10元
            [inprice] => 10.2
            [game_area] => 浙江杭州移动
        )
    [error_code] => 0
)
Kaedah tolak: POST

Parameter tolak:

PHP menerima pemberitahuan tak segerak (Panggil balik ) Kod rujukan:

Bagaimana untuk mengecas semula bil telefon dalam php2.8, JuheHuaFei.class.php

JuheHuaFei.class.php Kod lengkap

/**
 * 接受话费\加油卡\流量充值业务 异步通知参数 参考示例
 */
$appkey = "b842820xxxxxxxxxxxxxxxxxx"; //您申请的数据的APIKey
 
$sporder_id = addslashes($_POST['sporder_id']); //聚合订单号
$orderid = addslashes($_POST['orderid']); //商户的单号
$sta = addslashes($_POST['sta']); //充值状态
$sign = addslashes($_POST['sign']); //校验值
 
$local_sign = md5($appkey.$sporder_id.$orderid); //本地sign校验值
 
if ($local_sign == $sign) {
    if ($sta == '1') {
        //充值成功,根据自身业务逻辑进行后续处理
    } elseif ($sta =='9') {
        //充值失败,根据自身业务逻辑进行后续处理
    }
}

Kajian yang disyorkan: "

PHP tutorial video

Atas ialah kandungan terperinci Bagaimana untuk mengecas semula bil telefon dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn