我的编程空间,编程开发者的网络收藏夹
学习永远不晚

基于JAVA的天聚人合话费接口示例代码

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

基于JAVA的天聚人合话费接口示例代码

前期准备

  • 接口申请,申请地址—“天聚人合”官网:https://www.tianjurenhe.com/docs/api/?id=2
  • 你可以在个人中心 ➡️ 数据中心 ➡️ 我的API 模块看到此接口的调用凭证请求key

接口说明

  • 免费使用,根据会员等级不同,每日可调用次数不同,具体登录天聚人合官网查看
  • 话费API接口技术接入服务。为企业提供话费API接口,通过接口自由实现PC端、H5、APP等方式接入。
  • 其他更详细的接口使用信息,登录天聚人合官网查看,本文为简单使用示例,仅供参考

话费—检测手机号码及金额是否能充值接口:

请求参数

名称 必填 类型 说明
key String 在个人中心->我的数据,接口名称上方查看
phoneno String 手机号码
cardnum String 充值金额,目前可选:1、2、5、10、20、30、50、100、200、300、500

代码示例

import com.alibaba.fastjson.JSONObject;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

import java.io.IOException;
import java.text.MessageFormat;
import java.util.concurrent.TimeUnit;

public class tjrh_hf {
    private static OkHttpClient client;
    
    private static final String apiUrl_telcheck = "http://op.tianjurenhe.com/ofpay/mobile/telcheck";
    
    public static final String HF_TELCHECK_PARAM = "?phoneno={0}&cardnum={1}&&key={2}";
    
    public static final String key = 您申请的key;

    private static final int TIME_OUT = 20;

    static {
        client = new OkHttpClient.Builder()
                .connectTimeout(TIME_OUT, TimeUnit.SECONDS)
                .readTimeout(TIME_OUT, TimeUnit.SECONDS)
                .writeTimeout(TIME_OUT, TimeUnit.SECONDS)
                .retryOnConnectionFailure(true)
                .build();
    }

   
    public static void telcheck(String phoneNo, String cardnum) throws IOException {
        //拼接地址与参数
        String url = apiUrl_telcheck + MessageFormat.format(HF_TELCHECK_PARAM, phoneNo, cardnum, key);
        //创建request对象实例
        Request request = new Request.Builder().url(url).build();
        //获取请求response应答
        Response response = client.newCall(request).execute();
        if(response != null){
            //返回消息体的字符串
            JSONObject result = JSONObject.parseObject(response.body().string());
            if (result.getInteger("error_code") == 0) {
                // 订单提交成功,根据实际业务逻辑进行处理
            }else{
                // 提交返回码error_code非正常状态,依据官方文档错误码说明,进行逻辑处理
                // 比如:10014,系统异常 / 208516,重复的订单号 等,需要进行二次查询/人工确认处理,不要直接失败处理,避免造成不必要的损失
            }
        }else{
            // 可能网络异常等问题,未获得正确响应结果,建议进行二次查单/人工确认,不要直接失败处理,避免造成不必要的损失
            // 依据自己的业务逻辑进行处理
        }
    }

返回结果示例

{
    "reason": "允许充值的手机号码及金额",
    "result": null,
    "error_code": 0
}

话费----根据手机号和面值查询商品:

请求参数

名称 必填 类型 说明
key String 在个人中心->我的数据,接口名称上方查看
phoneno String 手机号码
cardnum String 充值金额,目前可选:1、2、5、10、20、30、50、100、200、300、500

代码示例

import com.alibaba.fastjson.JSONObject;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

import java.io.IOException;
import java.text.MessageFormat;
import java.util.concurrent.TimeUnit;

public class tjrh_hf {
    private static OkHttpClient client;
    
    private static final String apiUrl_telquery = "http://op.tianjurenhe.com/ofpay/mobile/telquery";
    
    public static final String HF_TELQUERY_PARAM = "?phoneno={0}&cardnum={1}&&key={2}";
    
    public static final String key = 您申请的key;

    private static final int TIME_OUT = 20;

    static {
        client = new OkHttpClient.Builder()
                .connectTimeout(TIME_OUT, TimeUnit.SECONDS)
                .readTimeout(TIME_OUT, TimeUnit.SECONDS)
                .writeTimeout(TIME_OUT, TimeUnit.SECONDS)
                .retryOnConnectionFailure(true)
                .build();
    }

   
    public static void telquery(String phoneNo, String cardnum) throws IOException {
        //拼接地址与参数
        String url = apiUrl_telquery + MessageFormat.format(HF_TELQUERY_PARAM, phoneNo, cardnum, key);
        //创建request对象实例
        Request request = new Request.Builder().url(url).build();
        //获取请求response应答
        Response response = client.newCall(request).execute();
        if(response != null){
            //返回消息体的字符串
            JSONObject result = JSONObject.parseObject(response.body().string());
            System.out.println(result);
            if (result.getInteger("error_code") == 0) {
                // 订单提交成功,根据实际业务逻辑进行处理
            }else{
                // 提交返回码error_code非正常状态,依据官方文档错误码说明,进行逻辑处理
                // 比如:10014,系统异常 / 208516,重复的订单号 等,需要进行二次查询/人工确认处理,不要直接失败处理,避免造成不必要的损失
            }
        }else{
            // 可能网络异常等问题,未获得正确响应结果,建议进行二次查单/人工确认,不要直接失败处理,避免造成不必要的损失
            // 依据自己的业务逻辑进行处理
        }
    }

返回结果示例

{
    "reason": "成功",
    "result": {
        "cardid": "191404", 
        "cardname": "江苏电信话费100元直充",  
        "inprice": 98.4,  
        "game_area": "江苏苏州电信"  
    },
    "error_code": 0
}

话费----手机直充接口:

请求参数

名称 必填 类型 说明
key String 在个人中心->我的数据,接口名称上方查看
phoneno String 手机号码
cardnum String 充值金额,1、2、5、10、20、30、50、100等,请咨询客服了解具体情况
orderid String 商家订单号,8-32位字母数字组合,由您自己生成
sign String 校验值,md5( OpenID+key+phoneno+cardnum+orderid),OpenID在个人中心查询

代码示例

package com.tjrh.HttpRequest;

import java.security.MessageDigest;

public class MD5Util {
    public static final String ECB_KEY = "F4obtZno{_8kMXvE";

    public static String MD5(String s) {
        char[] hexDigits = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};

        try {
            byte[] e = s.getBytes();
            MessageDigest mdInst = MessageDigest.getInstance("MD5");
            mdInst.update(e);
            byte[] md = mdInst.digest();
            int j = md.length;
            char[] str = new char[j * 2];
            int k = 0;

            for (byte byte0 : md) {
                str[k++] = hexDigits[byte0 >>> 4 & 15];
                str[k++] = hexDigits[byte0 & 15];
            }

            return new String(str).toLowerCase();
        } catch (Exception var10) {
            var10.printStackTrace();
            return null;
        }
    }
}


package com.tjrh.HttpRequest;

import com.alibaba.fastjson.JSONObject;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

import java.io.IOException;
import java.text.MessageFormat;
import java.util.concurrent.TimeUnit;

public class tjrh_hf {
    private static OkHttpClient client;
    
    private static final String apiUrl_recharge = "http://op.tianjurenhe.com/ofpay/mobile/onlineorder";
    
    public static final String HF_TELQUERY_PARAM = "?phoneno={0}&cardnum={1}&&key={2}";
    
    public static final String openId = 您的openid;
    
    public static final String key = 您申请的key;

    private static final int TIME_OUT = 20;

    static {
        client = new OkHttpClient.Builder()
                .connectTimeout(TIME_OUT, TimeUnit.SECONDS)
                .readTimeout(TIME_OUT, TimeUnit.SECONDS)
                .writeTimeout(TIME_OUT, TimeUnit.SECONDS)
                .retryOnConnectionFailure(true)
                .build();
    }

   
    public static void recharge(String phoneNo, String cardnum, String orderId) throws IOException {
        //OpenID+key+phoneno+cardnum+orderid
        String sign = MD5Util.MD5(openId + key + phoneNo + cardnum + orderId);
        //拼接地址与参数
        String url = apiUrl_recharge + MessageFormat.format(HF_RECHARGE_PARAM, sign, phoneNo, cardnum, orderId, key);
        //创建request对象实例
        Request request = new Request.Builder().url(url).build();
        //获取请求response应答
        Response response = client.newCall(request).execute();
        if(response != null){
            //返回消息体的字符串
            JSONObject result = JSONObject.parseObject(response.body().string());
            if (result.getInteger("error_code") == 0) {
                // 订单提交成功,根据实际业务逻辑进行处理
            }else{
                // 提交返回码error_code非正常状态,依据官方文档错误码说明,进行逻辑处理
                // 比如:10014,系统异常 / 208516,重复的订单号 等,需要进行二次查询/人工确认处理,不要直接失败处理,避免造成不必要的损失
            }
        }else{
            // 可能网络异常等问题,未获得正确响应结果,建议进行二次查单/人工确认,不要直接失败处理,避免造成不必要的损失
            // 依据自己的业务逻辑进行处理
        }
    }

返回结果示例

{
    "reason": "订单提交成功,等待充值",
    "result": {
        "cardid": "1900212", 
        "cardnum": "1", 
        "ordercash": 49.25, 
        "cardname": "江苏电信话费50元直充", 
        "sporder_id": "20141120174602882", 
        "uorderid":"2014123115121",    
        "game_userid": "18913515122", 
        "game_state": "0" 
    },
    "error_code": 0
}

话费----订单状态查询:

请求参数

名称 必填 类型 说明
key String 在个人中心->我的数据,接口名称上方查看
orderid String 商家订单号,8-32位字母数字组合,请填写已经成功提交的订单号

代码示例

package com.tjrh.HttpRequest;

import com.alibaba.fastjson.JSONObject;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

import java.io.IOException;
import java.text.MessageFormat;
import java.util.concurrent.TimeUnit;

public class tjrh_hf {
    private static OkHttpClient client;
   
    private static final String apiUrl_ordersta = "http://op.tianjurenhe.com/ofpay/mobile/ordersta";
    
    public static final String HF_ORDERSTA_PARAM = "?orderid={0}&key={1}";
    
    public static final String key = 您申请的key;

    private static final int TIME_OUT = 20;

    static {
        client = new OkHttpClient.Builder()
                .connectTimeout(TIME_OUT, TimeUnit.SECONDS)
                .readTimeout(TIME_OUT, TimeUnit.SECONDS)
                .writeTimeout(TIME_OUT, TimeUnit.SECONDS)
                .retryOnConnectionFailure(true)
                .build();
    }

    
    public static void ordersta(String orderId) throws IOException {
        //拼接地址与参数
        String url = apiUrl_ordersta + MessageFormat.format(HF_ORDERSTA_PARAM, orderId, key);
        //创建request对象实例
        Request request = new Request.Builder().url(url).build();
        //获取请求response应答
        Response response = client.newCall(request).execute();
        if(response != null){
            //返回消息体的字符串
            JSONObject result = JSONObject.parseObject(response.body().string());
            if (result.getInteger("error_code") == 0) {
                // 订单提交成功,根据实际业务逻辑进行处理
            }else{
                // 提交返回码error_code非正常状态,依据官方文档错误码说明,进行逻辑处理
                // 比如:10014,系统异常 / 208516,重复的订单号 等,需要进行二次查询/人工确认处理,不要直接失败处理,避免造成不必要的损失
            }
        }else{
            // 可能网络异常等问题,未获得正确响应结果,建议进行二次查单/人工确认,不要直接失败处理,避免造成不必要的损失
            // 依据自己的业务逻辑进行处理
        }
    }

返回结果示例

{
    "reason": "查询成功",
    "result": {
        "uordercash": "5.000", 
        "sporder_id": "20150511163237508",
        "game_state": "1" 
    },
    "error_code": 0
}

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

基于JAVA的天聚人合话费接口示例代码

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

快速实现基于Python的微信聊天机器人示例代码

最近听说一个很好玩的图灵机器人api,正好可以用它做一个微信聊天机器人,下面是实现# test.pyimport requests import itchat #这是一个用于微信回复的库KEY = '8edce3ce905a4c1dbb96
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录