300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 手机话费充值数据接口_API接口

手机话费充值数据接口_API接口

时间:2022-03-31 22:32:58

相关推荐

手机话费充值数据接口_API接口

上周刚完成公司的活动开发,产品需求是要在用户关注我们微信公众号后,可以抽一个话费红包,话费红包金额在1元到10元。筛选了几家服务商,从接口文档完整性、费用、稳定性、数据查看等各方面评估后,最终选择了互亿无线,我将相关资料分享,方便其他同学后期使用:

话费接口服务商:互亿无线()

话费接口地址:/phone

1.单号码充值话费

请求(POST 或者GET)

类型 参数名称 参数值描述

参数 action recharge

参数 username 用户名(签名)

参数 mobile 手机号码(签名)

参数 package 套餐数额(签名)

参数 orderid 订单ID(签名)

参数 timestamp 时间戳(签名)

格式如:yyyyMMddHHmmss

允许 10 分钟 统一以东 8 时间

参数 sign 签名

返回值(JSON格式)

命名 类型 描述

code int 代码(1为提交成功)

message string 消息描述

taskid string 任务id,提交失败则没有

2.帐号余额查询

请求(POST 或者GET)

类型 参数名称 参数值描述

参数 action getbalance

参数 username 用户名(签名)

参数 timestamp 时间戳(签名)

格式如:yyyyMMddHHmmss

允许 10 分钟 统一以东 8 时间

参数 sign 签名

返回值(JSON格式)

命名 类型 描述

code int 代码

message string 消息描述

balance float 剩余余额

3.充值状态查询

请求(POST 或者GET)

类型 参数名称 参数值描述

参数 action getreports

参数 username 用户名(签名)

参数 count 一次取数量(签名)

参数 timestamp 时间戳(签名)

格式如:yyyyMMddHHmmss

允许 10 分钟 统一以东 8 时间

参数 sign 签名

返回值(JSON格式)

命名 类型 描述

code int 代码(1为提交成功)

message string 消息描述

reports+ array 报告

taskid string 任务id

mobile string 手机号码

state int 状态(0失败, 1成功)

message string 消息

注意:状态获取后服务器则会删除状态

4.充值状态推送

请求(POST方式推送到配置的网址)

类型 参数名称 参数值描述

参数 taskid 充值任务ID

参数 mobile 手机号码(签名)

参数 state 状态(签名) 1:成功 2:失败

参数 message 消息(签名)

参数 sign 签名

注意:充值状态查询和充值状态推送两种方式只能选择其中一种

5. 获取话费包档位

请求(POST 或者GET)

类型 参数名称 参数值描述

参数 action getpackages

参数 username 用户名(签名)

参数 timestamp 时间戳(签名)

参数 sign 签名

返回值(JSON格式)

命名 类型 描述

code int 代码

message string 消息描述

packages+ float 套餐

type string 类型(cncm:中国移动 cncu:中国联通 cnct:中国电信)

name string 话费包

number int 数值(用于充值请求)

state int 状态(1启用,0未启用)

price int 单价

6.状态码

数值 描述

0 未知错误

1 提交成功

1000 无此操作类型(action为空或不存在)

1001 用户名为空

1002 用户名错误

1003 手机号码为空

1004 手机号码为空

1005 套餐不能为空

1006 时间戳不能为空

1007 不存在的套餐

1008 签名不能为空

1009 签名错误

1010 签名过期

1011 账号被冻结

1012 余额不足

1013 访问ip与备案ip不相同

1014 订单ID不能为空

1015 订单ID已存在

2001 不支持的手机号码

2002 手机号码已加入黑名单

不支持的地区

3001 扣费失败

4001 系统内部故障

7. 签名说明

需要把apikey(登录系统获取)放到要签名的键值对中,按照asc排序键值对参数名排序,拼接键值对字符串(参数名小写),再用32位md5加密

注意:用户名请使用小写

如:

sign=md5(aaaa=aaaa&bbbb=bbbb&cccc=cccc&dddd=dddd)

PHP充值签名代码如下:

$sign = md5(sprintf(“apikey=%s&mobile=%s&orderid=%s&package=%s&timestamp=%s&username=%s”,

$apikey,

$mobile,

$orderid,

$package,

date("YmdHis"),

$username));

GET方式地址如:

/phone?action=recharge&username=testname&mobile=13800000000&orderid=xxxxxxxxx&package=10&timestamp=1457954906&sign=e08ecdcedac8f9e07b1727e1005b8d32

8.PHP充值代码DEMO

$basicUrl = "/phone?action=recharge&%s";

$username = 'testname';

$apikey = 'testapikey';

$mobile = '18801850000';

$package = 1;

$orderId = 'TEST_'.date("YmdHis").mt_rand(100, 1000);

$dataGet = array();

$dataGet['package'] = $package;

$dataGet['username'] = $username;

$dataGet['timestamp'] = date("YmdHis");

$dataGet['mobile'] = $mobile;

$dataGet['orderid'] = $orderId;

$dataGet['sign'] = md5(sprintf(“apikey=%s&mobile=%s&orderid=%s&package=%s&timestamp=%s&username=%s”,

$apikey,

$mobile,

$orderid,

$package,

date("YmdHis"),

$username));

$dataReturn = array();

foreach ($dataGet as $key => $row) {

$dataReturn[] = sprintf("%s=%s", $key, $row);

}

$urlGet = sprintf($basicUrl, implode("&", $dataReturn));

$ch = \curl_init();

curl_setopt($ch, CURLOPT_URL, $urlGet); //定义表单提交地址

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_TIMEOUT, 30); //60秒

curl_setopt($ch, CURLOPT_HEADER, 1);

curl_setopt($ch, CURLOPT_REFERER, 'http://' . $_SERVER['HTTP_HOST']);

curl_setopt($ch, CURLOPT_POST, 0);

$data = curl_exec($ch);

curl_close($ch);

$res = explode("\r\n\r\n", $data);

$dataRet = $res[1];

if ($dataRet['code'] == 1) {

//提交成功

$apiTaskid = $dataRet['taskid'];

} else {

//提交错误处理

//.....

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。