Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk mengecas semula bil telefon dalam php
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) {...}".
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: POSTParameter tolak:
PHP menerima pemberitahuan tak segerak (Panggil balik ) Kod rujukan:
2.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!