企业微信java后台开发,回调笔记

企业微信java后台开发

最近公司项目组开发企业微信第三方应用,第一次接触企业微信,于是在网上找了一些博文,仅供自己参考学习[https://www.cnblogs.com/uniles/p/11734133.html])

企业微信开发回调验证是指通过验证企业微信接收到的外部事件回调(例如消息、联系人等),确保这些事件确实是由企业微信发送的。下面给出一个用Java代码实现企业微信开发回调验证的示例: ```java import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; public class CallbackVerifier { private static final String TOKEN = "your_token"; // 企业微信后台配置的Token // 验证回调请求的签名是否合法 public static boolean verifySignature(String signature, String timestamp, String nonce) { String[] arr = {TOKEN, timestamp, nonce}; Arrays.sort(arr); // 字典序排序 StringBuilder content = new StringBuilder(); for (String s : arr) { content.append(s); } return signature.equals(sha1(content.toString())); } // 使用SHA1算法计算字符串的哈希值 private static String sha1(String str) { try { MessageDigest digest = MessageDigest.getInstance("SHA-1"); digest.update(str.getBytes()); byte[] bytes = digest.digest(); StringBuilder sb = new StringBuilder(); for (byte b : bytes) { String hex = Integer.toHexString(b & 0xff); if (hex.length() == 1) { sb.append("0"); } sb.append(hex); } return sb.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return null; } // 测试 public static void main(String[] args) { String signature = "signature"; // 从企业微信接收到的请求参数 String timestamp = "timestamp"; String nonce = "nonce"; boolean isValid = verifySignature(signature, timestamp, nonce); System.out.println("是否合法:" + isValid); } } ``` 在上述代码中,首先定义了一个TOKEN常量,即企业微信后台配置的Token。然后定义了一个verifySignature方法,该方法接收从企业微信接收到的signature、timestamp和nonce参数,并通过字典序排序和SHA1算法生成待验证的签名。最后,通过判断生成的签名是否与接收到的signature一致来验证回调请求的合法性。 该示例代码可以直接运行,并且可以将TOKEN替换为实际的Token进行验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值