前期准备
接口说明
- 免费使用,根据会员等级不同,每日可调用次数不同,具体登录天聚人合官网查看
- 话费API接口技术接入服务。为企业提供话费API接口,通过接口自由实现PC端、H5、APP等方式接入。
- 其他更详细的接口使用信息,登录天聚人合官网查看,本文为简单使用示例,仅供参考
文娱—商品列表接口:
请求参数
名称 |
必填 |
类型 |
说明 |
key |
是 |
String |
在个人中心->我的数据,接口名称上方查看 |
代码示例
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_wy {
private static OkHttpClient client;
/**查询商品列表接口地址*/
private static final String apiUrl_products = "http://op.tianjurenhe.com/tencent/products";
/**查询商品列表接口参数格式*/
public static final String WY_PRODUCTS_PARAM = "?key={0}";
/**申请的接口Appkey*/
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();
}
/**
* 查询商品列表
* @return 返回String结果
* @throws Exception
*/
public static void products() throws IOException {
//拼接地址与参数
String url = apiUrl_products + MessageFormat.format(WY_PRODUCTS_PARAM,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": [
{
"proid": "50001",/*商品id*/
"name": "Q币1元直充",/*商品名称*/
"saleprice": "0.985",/*购买价格*/
"perprice": "1",/*原价*/
"unit": "元",/*商品单位*/
"maxnums": "10"/*单次最大可购买份数*/
},
{
"proid": "50002",
"name": "Q币5元直充",
"saleprice": "4.825",
"perprice": "5",
"unit": "元",
"maxnums": "10"
},
{
"proid": "50003",
"name": "Q币20元直充",
"saleprice": "19.300",
"perprice": "20",
"unit": "元",
"maxnums": "10"
},
{
"proid": "50004",
"name": "Q币30元直充",
"saleprice": "28.950",
"perprice": "30",
"unit": "元",
"maxnums": "10"
},
{
"proid": "50005",
"name": "Q币50元直充",
"saleprice": "48.250",
"perprice": "50",
"unit": "元",
"maxnums": "10"
},
{
"proid": "50006",
"name": "Q币100元直充",
"saleprice": "96.500",
"perprice": "100",
"unit": "元",
"maxnums": "10"
},
{
"proid": "50007",
"name": "QQ超级会员SVIP1个月",
"saleprice": "19.300",
"perprice": "20",
"unit": "月",
"maxnums": "12"
},
{
"proid": "50008",
"name": "QQ黄钻贵族1个月",
"saleprice": "9.650",
"perprice": "10",
"unit": "月",
"maxnums": "12"
},
{
"proid": "50009",
"name": "QQ黄钻豪华版1个月",
"saleprice": "14.475",
"perprice": "15",
"unit": "月",
"maxnums": "12"
},
{
"proid": "50010",
"name": "QQ蓝钻贵族1个月",
"saleprice": "9.650",
"perprice": "10",
"unit": "月",
"maxnums": "12"
},
{
"proid": "50011",
"name": "QQ绿钻贵族1个月",
"saleprice": "9.650",
"perprice": "10",
"unit": "月",
"maxnums": "12"
},
{
"proid": "50012",
"name": "QQ会员1个月",
"saleprice": "9.650",
"perprice": "10",
"unit": "月",
"maxnums": "12"
},
{
"proid": "50013",
"name": "CF会员1个月",
"saleprice": "29.550",
"perprice": "30",
"unit": "月",
"maxnums": "12"
},
{
"proid": "50014",
"name": "QQ蓝钻豪华版1个月",
"saleprice": "14.475",
"perprice": "15",
"unit": "月",
"maxnums": "12"
}
],
"error_code": 0
}
文娱----提交充值订单接口:
请求参数
名称 |
必填 |
类型 |
说明 |
key |
是 |
String |
在个人中心->我的数据,接口名称上方查看 |
uorderid |
是 |
String |
用户自定义单号,8-32位数字字母 |
proid |
是 |
String |
商品id,通过商品接口获取 |
game_userid |
是 |
String |
需要充值的账号,比如QQ号、手机号码、对应平台的账号 |
nums |
否 |
int |
购买份数,默认1,最大请参照商品接口返回 |
sign |
是 |
String |
校验值,md5(proid+nums+uorderid+game_userid+key+uid),其中uid为人合登录帐号 |
代码示例
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_wy {
private static OkHttpClient client;
/**提交充值订单接口地址*/
private static final String apiUrl_onlineorder = "http://op.tianjurenhe.com/tencent/onlineorder";
/**提交充值订单接口参数格式*/
public static final String WY_ONLINEORDER_PARAM = "?uorderid={0}&proid={1}&game_userid={2}&nums={3}&key={4}&sign={5}";
/**申请的接口Appkey*/
public static final String key = 您申请的key;
/**人合登录账号*/
public static final String uid = 您的人合账号;
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();
}
/**
* 依据用户提供的请求为指定油卡直接充值
* @param uorderid 用户自定义单号,8-32位数字字母
* @param proid 商品id,通过商品接口获取
* @param game_userid 需要充值的账号,比如QQ号、手机号码、对应平台的账号
* @param nums 购买份数,默认1,最大请参照商品接口返回
* @return 返回String结果
* @throws Exception
*/
public static void onlineOrder(String uorderid, String proid, String game_userid,Integer nums) throws IOException {
//校验值,md5(proid+nums+uorderid+game_userid+key+uid),其中uid为人合登录帐号,“+”号表示连接字符串符号。
String sign = MD5Util.MD5(proid + nums + uorderid + game_userid + key + uid);
//拼接地址与参数
String url = apiUrl_onlineorder + MessageFormat.format(WY_ONLINEORDER_PARAM, uorderid, proid, game_userid, nums ,key, sign);
//创建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": {
"sporder_id": "Q160922235538133321", /*聚合订单号*/
"uorderid": "147455973840112", /*用户自定义单号*/
"game_userid": "123456789", /*充值帐号*/
"proid": "50002", /*商品id*/
"nums": "1", /*购买份数*/
"name": "Q币5元直充", /*商品名称*/
"uordercash": "4.825", /*消费金额*/
"game_state": "0" /*状态,0:充值中 1:充值成功 9:充值失败*/
},
"error_code": 0 /*返回码,0表示提交订单成功*/
}
文娱----订单状态查询接口:
请求参数
名称 |
必填 |
类型 |
说明 |
key |
是 |
String |
在个人中心->我的数据,接口名称上方查看 |
orderid |
是 |
String |
用户自定义单号 |
代码示例
//MD5工具类
package com.tjrh.HttpRequest;
import java.security.MessageDigest;
public class MD5Util {
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_wy {
private static OkHttpClient client;
/**订单状态查询接口地址*/
private static final String apiUrl_ordersta = "http://op.tianjurenhe.com/tencent/ordersta";
/**订单状态查询接口参数格式*/
public static final String WY_ORDERSTA_PARAM = "?orderid={0}&key={1}";
/**在个人中心查询*/
public static final String openId = 您的openid;
/**申请的接口Appkey*/
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();
}
/**
* 订单状态查询
* @param orderId 用户自定义单号,8-32位数字字母
* @return 返回String结果
* @throws Exception
*/
public static void orderSta(String orderId) throws IOException {
//拼接地址与参数
String url = apiUrl_ordersta + MessageFormat.format(WY_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": {
"proid": "50002", /*商品id*/
"cardname": "Q币5元直充", /*商品名称*/
"game_userid": "12345678", /*充值帐号*/
"cardnum": "1", /*购买份数*/
"uordercash": "4.825", /*消费金额*/
"sporder_id": "Q16092223542348120421", /*聚合订单号*/
"uorderid": "147666597384068", /*用户自定义单号*/
"game_state": "9" /*状态,0:充值中 1:充值成功 9:充值失败*/
},
"error_code": 0 /*返回码,0表示查询成功*/
}