您是否正受到短信签名报备的困扰?互亿无线解决方案让您最快15分钟内恢复信息传递,马上 注册体验
所有文档
文档中心 > 数字权益 > 数字权益直充

数字权益直充

Java对接充值接口接口DEMO示例

本文为您提供了Java语言版本的充值接口接口对接DEMO示例



import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
import java.util.*;

public class test
{
    public static void main(String args[])
    {
        String url = "https://api.ihuyi.com/f/recharge?action=buy";

        Map<String, String> headers = new HashMap<>();
        headers.put("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");

        HashMap<String, String> bodyArr = new HashMap<>();
        bodyArr.put("username", "123456"); //API ID
        bodyArr.put("orderid", "DD20253995959"); //商家订单 ID
        bodyArr.put("timestamp", "20240321150546"); //时间戳格式如:yyyyMMddHHmmss 允许 10分钟统一以东 8 时间
        bodyArr.put("account", "xxxxxxx"); //充值账号
        bodyArr.put("productid", "k111-1"); //产品 ID
        bodyArr.put("quantity", "1"); //购买数量-固定数量1
        bodyArr.put("extend", "[]"); //扩展参数(必须 json 格式,无此值请保持为“[]”),针对不同商品可能不同,参见 8.扩展参数说明
        bodyArr.put("return", ""); //商家自定义参数,回调回传
        bodyArr.put("callback", "http://*****"); //商家回调 url 地址
        bodyArr.put("buyerip", ""); //买家真实 IP(区域商品须传)
        bodyArr.put("sign", "81ed625f338277f1bd7f27b9339e302c"); //签名

        String queryString = convertToQueryString(bodyArr);

        try {
            Map<String, Object> response = sendRequest(url, headers, queryString, "POST");

            // 打印响应
            System.out.printf("状态码: %s%n", response.get("status"));
            System.out.printf("响应内容: %s%n", response.get("body"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static Map<String, Object> sendRequest(String url, Map<String, String> headers, String queryString, String method) throws Exception {
        HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
            .uri(URI.create(url))
            .method(method, queryString.isEmpty() ? 
                HttpRequest.BodyPublishers.noBody() : 
                HttpRequest.BodyPublishers.ofString(queryString, StandardCharsets.UTF_8));
        headers.forEach(requestBuilder::header);
        HttpClient httpClient = HttpClient.newBuilder().build();
        HttpResponse<String> response = httpClient.send(
            requestBuilder.build(),
            HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8)
        );
        Map<String, Object> result = new HashMap<>();
        result.put("status", response.statusCode());
        result.put("body", response.body());
        return result;
    }

    public static String convertToQueryString(HashMap<String, String> map) {
        StringBuilder queryString = new StringBuilder();
        for (Map.Entry<String, String> entry : map.entrySet()) {
            String encodedKey = URLEncoder.encode(entry.getKey(), StandardCharsets.UTF_8);
            String encodedValue = URLEncoder.encode(entry.getValue(), StandardCharsets.UTF_8);
            if (queryString.length() > 0) {
                queryString.append("&");
            }
            queryString.append(encodedKey).append("=").append(encodedValue);
        }
        return queryString.toString();
    }

}

5分钟快速自助开通免费体验账户

在线咨询
电话咨询

服务热线:

4008 808 898

服务热线(工作时间):

4008 808 898

业务咨询(非工作时间):

售后咨询(非工作时间):