本代码是基于聚合数据的话费充值API实现的话费充值功能,使用前需要:

一、引入封装的代码类//----------------------------------

// 聚合数据-手机话费充值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('189********',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']."

";

echo "商品名称:".$proinfo['cardname']."

";

echo "进价:".$proinfo['inprice']."

";

echo "手机归属地:".$proinfo['game_area']."

";

}else{

//查询失败,可能维护、不支持面额等情况

echo $telQueryRes["error_code"].":".$telQueryRes['reason'];

}

五、提交话费充值$orderid = '111111111'; //自己定义一个订单号,需要保证唯一

$telRechargeRes = $recharge->telcz('189********',5,$orderid); #可以选择的面额5、10、20、30、50、100、300

if($telRechargeRes['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代码// +----------------------------------------------------------------------

//----------------------------------

// 聚合数据-手机话费充值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;

}

}

java话费充值代码_话费充值接口示例代码相关推荐

  1. 简单的java单位换算_单位换算示例代码

    package api.jisuapi.unitconvert; import java.net.URLEncoder; import api.util.HttpUtil; import net.sf ...

  2. java找出违法车牌号代码_查询违章示例代码

    package api.jisuapi.illegal; import java.net.URLEncoder; import api.util.HttpUtil; import net.sf.jso ...

  3. java 条码识别_条码识别示例代码

    package api.jisuapi.barcode; import api.util.HttpUtil; import net.sf.json.JSONArray; import net.sf.j ...

  4. java调节音量代码_音量调节(示例代码)

    题目描述 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都需要改变一次音量.在演出开始之前,他已经做好一个列表,里面写着每首歌开始之前他想要改变的音量是多少. ...

  5. java车次信息_车次查询示例代码

    package api.binstd.train; import api.util.HttpUtil; import net.sf.json.JSONArray; import net.sf.json ...

  6. 医院医生评价的java代码_基于JAVA的医院信息查询接口调用代码实例

    基于JAVA的医院信息查询接口调用代码实例 import java.io.BufferedReader; import java.io.DataOutputStream; import java.io ...

  7. python图形代码怎么写_【Python3-API】定制化图像接口示例代码

    Python3-urllib3-API定制化图像接口示例代码 AccessToken获取可以参考:http://ai.baidu.com/forum/topic/show/497663(Python3 ...

  8. java找出违法车牌号代码_基于Java的全国交通违章查询示例代码-六派数据

    示例代码 本代码示例是基于Java的六派数据接口进行数据请求API服务请求的代码示例,使用前你需要: 以下是完整代码示例: /** * 主函数 * @param args */ public stat ...

  9. Linkis1.0用户使用文档:JAVA和SCALA调用Linkis的接口示例代码

    Linkis 提供了方便的JAVA和SCALA调用的接口,只需要引入linkis-computation-client的模块就可以进行使用,1.0后新增支持带Label提交的方式,下面将对兼容0.X的 ...

  10. java漏斗代码_集算示例:10 行代码解决漏斗转换计算

    销售过程是一个多环节的过程,哪个步骤有了过大瑕疵,都会导致业绩急剧下滑.而诊断出哪个步骤有瑕疵,除了无形的经验,还有量化的诊断方式,就是今天要讨论的主角:转化漏斗模型. 示例数据 为了详细讨论这个漏斗 ...

最新文章

  1. 链家前DBA判刑7年!你还敢不敢删库?
  2. python 求直线交点坐标
  3. java复制类mytool_MyTools
  4. 渗透测试神器CS(4.0)的使用
  5. java中的de是什么_【转】java中main函数解析
  6. 07_Redis事务
  7. LAMP笔记之Apache篇(2)
  8. c++ 工厂模式_Java面试专题之五:设计模式学习,详细分析工厂方法模式
  9. 进程介绍(理论部分)
  10. Atitit 数据库表文档生成解决方案
  11. java下载视频_怎么用Java从网上下载一个视频下来
  12. 【资料分享】干货解读人工智能新时代
  13. php动态万年历模块,php如何实现万年历的开发(每日一课真是非常有效率)
  14. Mathematica 13 for Mac(科学计算软件)
  15. matlab 12脉波变压器,12脉波整流电路MATLAB-Simulink仿真及谐波分析
  16. Android允许应用具有安装权限
  17. ios APP加密探究几维安全iOS 代码混淆效果参考
  18. zlib——Usage Example翻译
  19. 微信小程序实现长文本分段播放
  20. html中搜索栏怎么写,html搜索框怎么做

热门文章

  1. 安卓iccid_普通人也可以做码农?安卓手机上这些代码你也可以用
  2. 鸿蒙磅礴不可以涯际夕 四,一尺树根不出土,凿臼舂米于道左兮,行人为叹生涯悭。...
  3. 原笔迹手写实现平滑和笔锋效果之:笔迹的平滑(一)
  4. 你活得光鲜亮丽,父母却在低声下气
  5. 小程序 - 判断元素是否在页面的显示区域内 wx.createIntersectionObserver
  6. Hulu斩获两枚艾美奖提名!(附第68届艾美奖重要奖项提名名单)
  7. Java学Web——day09【SQL多表联合查询】
  8. Relation Graph 人物关系图
  9. 神圣罗马帝国(1157~1806)
  10. Android studio安卓虚拟机无法启动