- 公众号支付结果回调解密?
官方文档(没有示例):https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_5.shtml 那位大佬能提供一下公众号支付完成回调的解密( java)示例代码,谢谢!
2024-12-01 - 公众号分享返回签名失败?
使用demo签名代码,客户端最终还是返回签名失败,示例代码如下,返回结果如图片,谢谢。 [图片][图片] import java.util.UUID; import java.util.Map; import java.util.HashMap; import java.util.Formatter; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; imort java.io.UnsupportedEncodingException; class Sign { public static void main(String[] args) { String jsapi_ticket = "jsapi_ticket"; // 注意 URL 一定要动态获取,不能 hardcode String url = "http://example.com"; Map<String, String> ret = sign(jsapi_ticket, url); for (Map.Entry entry : ret.entrySet()) { System.out.println(entry.getKey() + ", " + entry.getValue()); } }; public static Map<String, String> sign(String jsapi_ticket, String url) { Map<String, String> ret = new HashMap<String, String>(); String nonce_str = create_nonce_str(); String timestamp = create_timestamp(); String string1; String signature = ""; //注意这里参数名必须全部小写,且必须有序 string1 = "jsapi_ticket=" + jsapi_ticket + "&noncestr=" + nonce_str + "×tamp=" + timestamp + "&url=" + url; System.out.println(string1); try { MessageDigest crypt = MessageDigest.getInstance("SHA-1"); crypt.reset(); crypt.update(string1.getBytes("UTF-8")); signature = byteToHex(crypt.digest()); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } ret.put("url", url); ret.put("jsapi_ticket", jsapi_ticket); ret.put("nonceStr", nonce_str); ret.put("timestamp", timestamp); ret.put("signature", signature); return ret; } private static String byteToHex(final byte[] hash) { Formatter formatter = new Formatter(); for (byte b : hash) { formatter.format("%02x", b); } String result = formatter.toString(); formatter.close(); return result; } private static String create_nonce_str() { return UUID.randomUUID().toString(); } private static String create_timestamp() { return Long.toString(System.currentTimeMillis() / 1000); } }
2024-11-30 - 公众号分享功能?
公众号已微信认证,但是分享接口显示未获得,提示需要微信认证
2024-11-30 - 签名错误,请检查后再试
调用接口:https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi 1、部分代码: String token = getToken("POST", httpurl, rootNode.toString()); //请求URL HttpPost httpPost = new HttpPost("https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi"); StringEntity entity = new StringEntity(rootNode.toString(), "utf-8"); entity.setContentType("application/json"); httpPost.setEntity(entity); httpPost.setHeader("Accept", "application/json"); httpPost.setHeader("Authorization", schema + " " + token); CloseableHttpClient httpClient = HttpClientBuilder.create().build(); //完成签名并执行请求 CloseableHttpResponse response = httpClient.execute(httpPost); try { int statusCode = response.getStatusLine().getStatusCode(); if (statusCode == 200) { System.out.println("success,return body = " + EntityUtils.toString(response.getEntity())); } else if (statusCode == 204) { System.out.println("success"); } else { System.out.println("failed,resp code = " + statusCode + ",return body = " + EntityUtils.toString(response.getEntity())); throw new IOException("request failed"); } } finally { response.close(); httpClient.close(); } 2、token的获取方式(官方代码): String getToken(String method, HttpUrl url, String body) throws IOException, NoSuchAlgorithmException, SignatureException, InvalidKeyException { String nonceStr = UUID.randomUUID().toString().replace("-", ""); long timestamp = System.currentTimeMillis() / 1000; String message = buildMessage(method, url, timestamp, nonceStr, body); String signature = sign(message.getBytes("utf-8")); return "mchid=\"" + mchId + "\"," + "nonce_str=\"" + nonceStr + "\"," + "timestamp=\"" + timestamp + "\"," + "serial_no=\"" + serialNo2 + "\"," + "signature=\"" + signature + "\""; } 3、报如下错误: { "code": "SIGN_ERROR", "detail": { "detail": { "issue": "sign not match" }, "field": "signature", "location": "authorization", "sign_information": { "method": "POST", "sign_message_length": 311, "truncated_sign_message": "POST\n/v3/pay/transactions/jsapi\n1730605701\nc34438f0221f4cd8800e25cb237ba36e\n{\"mchid\"\n }, "url": "/v3/pay/transactions/jsapi" }, "message": "签名错误,请检查后再试" }
2024-11-03 - 企业微信创建代开发应用模板验证CallBackUrl失败?
[图片]
2022-01-21 - 企业微信创建代开发应用的回调地址怎么获取?
[图片]
2022-01-21