本代码是基于聚合数据的话费充值API实现的话费充值功能,使用前需要:
①:通过
https://www.juhe.cn/docs/api/id/85申请一个appkey
一、引入封装的代码类
//----------------------------------
// 聚合数据-手机话费充值API调用示例代码
//----------------------------------
header('Content-type:text/html;charset=utf-8');
include 'class.juhe.recharge.php'; //引入文件
二、配置一些必须的参数
//接口基本信息配置
$appkey = '291bf7184**********************'; //从聚合申请的话费充值appkey
$openid = 'JH8d954266539************'; //注册聚合账号就会分配的openid,在个人中心可以查看
$recharge = new recharge($appkey,$openid);
三、检测手机号码以及面额是否可以充值
$telCheckRes = $recharge->telcheck('18913511234',10);
if($telCheckRes){
//说明支持充值,可以继续充值操作,以下可以根据实际需求修改
echo "OK";
}else{
//暂不支持充值,以下可以根据实际需求修改
exit("对不起,该面额暂不支持充值");
}
四、根据手机号码以及面额查询商品信息
$telQueryRes =$recharge->telquery('18913511234',10); #可以选择的面额5、10、20、30、50、100、300
if($telQueryRes['error_code'] == '0'){
//正常获取到话费商品信息
$proinfo = $telQueryRes['result'];
/*
[cardid] => 191406
[cardname] => 江苏电信话费10元直充
[inprice] => 10.02
[game_area] => 江苏苏州电信
*/
echo "商品ID:".$proinfo['cardid']."<br>";
echo "商品名称:".$proinfo['cardname']."<br>";
echo "进价:".$proinfo['inprice']."<br>";
echo "手机归属地:".$proinfo['game_area']."<br>";
}else{
//查询失败,可能维护、不支持面额等情况
echo $telQueryRes["error_code"].":".$telQueryRes['reason'];
}
五、提交话费充值
$orderid = '111111111'; //自己定义一个订单号,需要保证唯一
$telRechargeRes = $recharge->telcz('18913513535',5,$orderid); #可以选择的面额5、10、20、30、50、100、300
if($telQueryRes['error_code'] =='0'){
//提交话费充值成功,可以根据实际需求改写以下内容
echo "充值成功,订单号:".$telRechargeRes['result']['sporder_id'];
var_dump($telRechargeRes);
}else{
//提交充值失败,具体可以参考$telRechargeRes['reason']
var_dump($telRechargeRes);
}
六、订单状态查询
$orderid = '111111111'; //商家自定的订单号
$orderStatusRes = $recharge->sta($orderid);
if($orderStatusRes['error_code'] == '0'){
//查询成功
if($orderStatusRes['result']['game_state'] =='1'){
echo "充值成功";
}elseif($orderStatusRes['result']['game_state'] =='9'){
echo "充值失败";
}elseif($orderStatusRes['result']['game_state'] =='-1'){
echo "提交充值失败"; //可能是如运营商维护、账户余额不足等情况
}
}else{
//查询失败
echo "查询失败:".$orderStatusRes['reason']."(".$orderStatusRes['error_code'].")";
}
七、完整的class.juhe.recharge.php代码
<!--?php
// +----------------------------------------------------------------------
// | JuhePHP [ NO ZUO NO DIE ]
// +----------------------------------------------------------------------
// | Copyright (c) 2010-2015 http://juhe.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: Juhedata <info@juhe.cn-->
// +----------------------------------------------------------------------
//----------------------------------
// 聚合数据-手机话费充值API调用类
//----------------------------------
class recharge {
private $appkey;
private $openid;
private $telCheckUrl = 'http://op.juhe.cn/ofpay/mobile/telcheck';
private $telQueryUrl = 'http://op.juhe.cn/ofpay/mobile/telquery';
private $submitUrl = 'http://op.juhe.cn/ofpay/mobile/onlineorder';
private $staUrl = 'http://op.juhe.cn/ofpay/mobile/ordersta';
public function __construct($appkey,$openid){
$this->appkey = $appkey;
$this->openid = $openid;
}
/**
* 根据手机号码及面额查询是否支持充值
* @param string $mobile [手机号码]
* @param int $pervalue [充值金额]
* @return boolean
*/
public function telcheck($mobile,$pervalue){
$params = 'key='.$this->appkey.'&phoneno='.$mobile.'&cardnum='.$pervalue;
$content = $this->juhecurl($this->telCheckUrl,$params);
$result = $this->_returnArray($content);
if($result['error_code'] == '0'){
return true;
}else{
return false;
}
}
/**
* 根据手机号码和面额获取商品信息
* @param string $mobile [手机号码]
* @param int $pervalue [充值金额]
* @return array
*/
public function telquery($mobile,$pervalue){
$params = 'key='.$this->appkey.'&phoneno='.$mobile.'&cardnum='.$pervalue;
$content = $this->juhecurl($this->telQueryUrl,$params);
return $this->_returnArray($content);
}
/**
* 提交话费充值
* @param [string] $mobile [手机号码]
* @param [int] $pervalue [充值面额]
* @param [string] $orderid [自定义单号]
* @return [array]
*/
public function telcz($mobile,$pervalue,$orderid){
$sign = md5($this->openid.$this->appkey.$mobile.$pervalue.$orderid);//校验值计算
$params = array(
'key' => $this->appkey,
'phoneno' => $mobile,
'cardnum' => $pervalue,
'orderid' => $orderid,
'sign' => $sign
);
$content = $this->juhecurl($this->submitUrl,$params,1);
return $this->_returnArray($content);
}
/**
* 查询订单的充值状态
* @param [string] $orderid [自定义单号]
* @return [array]
*/
public function sta($orderid){
$params = 'key='.$this->appkey.'&orderid='.$orderid;
$content = $this->juhecurl($this->staUrl,$params);
return $this->_returnArray($content);
}
/**
* 将JSON内容转为数据,并返回
* @param string $content [内容]
* @return array
*/
public function _returnArray($content){
return json_decode($content,true);
}
/**
* 请求接口返回内容
* @param string $url [请求的URL地址]
* @param string $params [请求的参数]
* @param int $ipost [是否采用POST形式]
* @return string
*/
public function juhecurl($url,$params=false,$ispost=0){
$httpInfo = array();
$ch = curl_init();
curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );
curl_setopt( $ch, CURLOPT_TIMEOUT , 60);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );
if( $ispost )
{
curl_setopt( $ch , CURLOPT_POST , true );
curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );
curl_setopt( $ch , CURLOPT_URL , $url );
}
else
{
if($params){
curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );
}else{
curl_setopt( $ch , CURLOPT_URL , $url);
}
}
$response = curl_exec( $ch );
if ($response === FALSE) {
//echo "cURL Error: " . curl_error($ch);
return false;
}
$httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE );
$httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) );
curl_close( $ch );
return $response;
}
}
分享到:
相关推荐
基于c#实现的webapi调用软件,用于请求web服务,尤其是通过aistudio平台部署的深度学习模型。如果您的自己的webapi接口返回的也是json格式的信息,也可以使用本软件进行请求调用。只是在请求服务前,一定要点击软件...
基于JAVA的网上阅读API调用代码实例.pdf
将百度地图嵌入c# cs窗体中,cs...查了很多资料,参考网上众多朋友的代码及百度地图API demo,这个例子中的js代码不用key,方便很多,使用的是v1.4版,少了很多限制,使用.net4.5开发的,可以将c#代码转为低版本也行的。
"基于PHP的聚合数据天气预报api调用示例" 本文档提供了基于PHP的聚合数据天气预报API调用示例,演示了如何使用PHP语言调用天气预报API,获取支持城市列表、根据城市获取天气预报、根据IP地址请求天气预报、根据GPS...
包含图片、图文、语音、视频、位置信息等消息类型的响应示例
下面的PHP代码示例展示了如何调用这个API: ```php <?php $curl = curl_init(); // 设置API接口URL curl_setopt_array($curl, array( CURLOPT_URL => "https://chuanglan.o.apispace.com/253-gsxxinfo/gsdetinfo"...
手机话费充值程序是针对移动通信用户设计的一种便捷服务,旨在为用户提供快速、安全的在线充值方式,确保手机通讯的顺畅。在这个程序中,我们通常会涉及到以下几个关键知识点: 1. **Web应用开发**:从文件`index....
总的来说,APISpace的空号检测API接口通过PHP调用,可以方便地集成到任何PHP项目中,进行批量手机号码的有效性验证。理解并正确使用这个接口对于提高用户体验、优化通信效率和防止无效数据处理具有重要意义。
总的来说,全国快递查询 API 提供了一种简单的方式来集成物流追踪功能到您的应用程序中,而 PHP 示例代码则演示了如何通过 cURL 库进行 API 调用。在实际使用中,记得替换 `YOUR_API_TOKEN` 为实际获取的 API 密钥,...
以下是一个使用PHP调用APISpace运营商三要素API的示例代码: ```php <?php $curl = curl_init(); // 设置curl选项 curl_setopt_array($curl, array( CURLOPT_URL => ...
《文心一言API》是一个基于Python语言编写的API,它提供了获取一言(hitokoto)和随机古诗词等文学作品的接口。通过调用该API,你可以快速获取优美、有趣的文学片段,以及其作者和出处等相关信息。 该API的主要功能...
总的来说,通过上述PHP代码,你可以成功地调用APISpace的图片审核API,实现对图片内容的敏感性检测。在实际开发中,根据返回的结果,你可以进一步处理和判断,比如对检测到的敏感内容进行拦截或者警告。同时,为了...
在示例代码中,我们初始化cURL会话,设置URL(这里是API的实际调用地址:`https://chuanglan.o.apispace.com/253-vechicle/violation`),并设置其他关键参数如请求方法(POST)、超时时间、HTTP版本等。 3. **设置...
以下是使用PHP调用APISpace号码实时查询API的示例代码: ```php <?php $curl = curl_init(); // 设置CURL选项 curl_setopt_array($curl, array( // 指定请求URL CURLOPT_URL => ...
本示例主要关注如何通过编程方式调用Google Analytics API,以及如何实现Funnel Visualization功能。Funnel Visualization是Google Analytics中的一种重要特性,用于展示用户在达到目标(如完成购买)过程中的步骤...
请注意,调用API时,需要将示例代码中的占位符替换为你自己的API令牌和其他实际的发票信息。成功调用API并收到响应后,通常会返回一个JSON格式的数据,其中包含验证结果和其他相关信息。 总结起来,通过APISpace的...
基于JAVA的车系查询查询API调用代码实例.pdf
5. **代码示例**:压缩包中的"opensinaapi1.0beta3"很可能包含了详细的代码示例,这些示例展示了如何初始化API客户端,设置AppKey,以及如何进行授权和调用具体的API接口。 在使用这个库时,你需要做以下步骤: 1....