小程序
小游戏
企业微信
微信支付
扫描小程序码分享
https://api.weixin.qq.com/wxa/game/queryorderinfo?access_token=ACCESS_TOKEN&signature=SIGNATURE&sig_method=SIG_METHOD&pay_sig=PAY_SIGNATUR
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
public static void main(String[] args) throws Exception { String access_token = "屏蔽"; Map<String, Object> paramMap = new TreeMap<>(); paramMap.put("openid", "屏蔽"); paramMap.put("offer_id", "1450049208"); paramMap.put("ts", 1751271984); paramMap.put("zone_id", "1"); paramMap.put("env", 1); paramMap.put("out_trade_no", "屏蔽"); paramMap.put("biz_id", 2); String sessionKey ="屏蔽饿了"; // String signData = JSON.toJSONString(paramMap).replaceAll(",",", ").replaceAll(":",": ");//JSONUtil.toJsonStr(paramMap); //MapUtil.sortJoin(paramMap, "&", "=", true); StringBuilder signData = new StringBuilder(); for (Map.Entry<String, Object> entry : paramMap.entrySet()) { if (signData.length() > 0) { signData.append("&"); } signData.append(entry.getKey()).append("=").append(entry.getValue()); } System.out.println(signData); String signature = getSHA256StrJava(sessionKey,signData.toString());//Base64.encodeBase64String(AesUtil.getSHA256StrJava(sessionKey,signStr)); // String signature = sign(signData.toString(),sessionKey); System.out.println("用户态签名:"+signature); // System.out.println("用户态签名:"+AesUtil.getSHA256StrJava(sessionKey,signData1)); //支付请求签名 String relativeUrl = "/wxa/game/queryorderinfo"; String app_key = " 屏蔽了"; String pay_sig = getSHA256StrJava(app_key,relativeUrl +"&"+signData.toString());//AesUtil.to_hex(PropertiesFactory.getWeiXin_APP_KEY_0(),url,signStr); System.out.println("支付签名:"+pay_sig); String SIG_METHOD = "hmac_sha256"; String url = "https://api.weixin.qq.com/wxa/game/queryorderinfo"; String url_param = url + "?access_token="+access_token+"&signature="+signature+"&sig_method="+SIG_METHOD+"&pay_sig="+pay_sig; System.out.println("请求url:"+url_param); String android_content = HttpUtil.post(url_param, paramMap); System.out.println(android_content); } private static String getSHA256StrJava(String key,String data){ byte[] keyBytes = key.getBytes(StandardCharsets.UTF_8); SecretKeySpec signingKey = new SecretKeySpec(keyBytes, "HmacSHA256"); try { Mac mac = Mac.getInstance("HmacSHA256"); mac.init(signingKey); return new String(Hex.encode(mac.doFinal(data.getBytes(StandardCharsets.UTF_8)))).toLowerCase(); } catch (Exception e) { e.printStackTrace(); } return null; }
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
本回答由AI生成,可能已过期、失效或不适用于当前情形,请谨慎参考
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
public static void main(String[] args) throws Exception { String access_token = "屏蔽"; Map<String, Object> paramMap = new TreeMap<>(); paramMap.put("openid", "屏蔽"); paramMap.put("offer_id", "1450049208"); paramMap.put("ts", 1751271984); paramMap.put("zone_id", "1"); paramMap.put("env", 1); paramMap.put("out_trade_no", "屏蔽"); paramMap.put("biz_id", 2); String sessionKey ="屏蔽饿了"; // String signData = JSON.toJSONString(paramMap).replaceAll(",",", ").replaceAll(":",": ");//JSONUtil.toJsonStr(paramMap); //MapUtil.sortJoin(paramMap, "&", "=", true); StringBuilder signData = new StringBuilder(); for (Map.Entry<String, Object> entry : paramMap.entrySet()) { if (signData.length() > 0) { signData.append("&"); } signData.append(entry.getKey()).append("=").append(entry.getValue()); } System.out.println(signData); String signature = getSHA256StrJava(sessionKey,signData.toString());//Base64.encodeBase64String(AesUtil.getSHA256StrJava(sessionKey,signStr)); // String signature = sign(signData.toString(),sessionKey); System.out.println("用户态签名:"+signature); // System.out.println("用户态签名:"+AesUtil.getSHA256StrJava(sessionKey,signData1)); //支付请求签名 String relativeUrl = "/wxa/game/queryorderinfo"; String app_key = " 屏蔽了"; String pay_sig = getSHA256StrJava(app_key,relativeUrl +"&"+signData.toString());//AesUtil.to_hex(PropertiesFactory.getWeiXin_APP_KEY_0(),url,signStr); System.out.println("支付签名:"+pay_sig); String SIG_METHOD = "hmac_sha256"; String url = "https://api.weixin.qq.com/wxa/game/queryorderinfo"; String url_param = url + "?access_token="+access_token+"&signature="+signature+"&sig_method="+SIG_METHOD+"&pay_sig="+pay_sig; System.out.println("请求url:"+url_param); String android_content = HttpUtil.post(url_param, paramMap); System.out.println(android_content); } private static String getSHA256StrJava(String key,String data){ byte[] keyBytes = key.getBytes(StandardCharsets.UTF_8); SecretKeySpec signingKey = new SecretKeySpec(keyBytes, "HmacSHA256"); try { Mac mac = Mac.getInstance("HmacSHA256"); mac.init(signingKey); return new String(Hex.encode(mac.doFinal(data.getBytes(StandardCharsets.UTF_8)))).toLowerCase(); } catch (Exception e) { e.printStackTrace(); } return null; }