mitao
2025-05-20 179c4d64313c9b7572778da4aaaf6c6584fe457d
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/Query.java
@@ -1,5 +1,6 @@
package com.panzhihua.applets.unionpay;
import com.panzhihua.common.utlis.DateUtils;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils;
@@ -9,6 +10,7 @@
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.time.LocalDateTime;
/**
 * @author kkqiao0
@@ -21,25 +23,39 @@
 *  生产环境:https://api-mop.chinaums.com/v1/netpay/query
 */
public class Query {
    static String url = "https://test-api-open.chinaums.com/v1/netpay/query";
    static String url = "https://api-mop.chinaums.com/v1/netpay/query";
    public static void main(String[] args) throws Exception{
    /**
     * 查询接口
     * @return
     */
    public static String query(String merOrderId)
    {
        //1. 组建请求报文
        LocalDateTime time= DateUtils.getCurrentDate();
        QueryBody reqBody = new QueryBody();
        reqBody.requestTimestamp = "2019-08-09 17:32:55";
        reqBody.mid = "898460107420248";
        reqBody.tid = "00000001";
        reqBody.instMid = "MINIDEFAULT";
        reqBody.merOrderId = "101771305dc89764b477474";
        reqBody.requestTimestamp = time.format(DateUtils.format_ymdhms);//"2019-08-09 17:32:55";
        reqBody.mid = UnionpayContent.MID;
        reqBody.tid = UnionpayContent.TID;
        reqBody.instMid = UnionpayContent.INSTMID;
        reqBody.merOrderId = merOrderId;
        System.out.println("request body:\n"+reqBody);
        //2. 获取认证报文,timestamp为当前日期,老旧日期无法请求成功
        String authorization = getAuthorization(UnionpayContent.APPID,UnionpayContent.APPKEY,"20190809173200","nonce",reqBody.toString());
        String authorization = null;
        try {
            authorization = getAuthorization(UnionpayContent.APPID,UnionpayContent.APPKEY,
                    time.format(DateUtils.format_ymdhms_string),"nonce",reqBody.toString());
        } catch (Exception e) {
            e.printStackTrace();
            return "订单交易查询失败";
        }
        System.out.println("authorization:\n"+authorization);
        //3. 发送http请求,并解析返回信息
        String response = request(url,authorization,reqBody.toString());
        System.out.println("response:\n"+response);
        return response;
    }
    /**