微信开发:接无锡Android开发入微信入口

2022-03-08 01:40:19 无锡雷霆

一,央求开发者帐号,商城小程序开发,停止服务器配置

首先我们得先有一个公众号,到微信公众号平台央求一个,自己央求的是订阅号。网址:https://mp.weixin.qq.comjava

还需要一个外网地址接口微信推送的消息,微信商定外网地址目前支持80和443接口,自己利用的是花生壳映射本机算法

登录公众号,抉择开发-根本配置-填写服务器配置平安

参数阐明:服务器

URL:服务器地址-用来接纳微信消息和事情的接口URL(需保持外网访问)微信

Token:恣意填写,用做生成签名微信开发

EncodingAESKey:消息体加解密密钥(自身填写或许主动生成)app

此处消息加解密模式若是抉择的平安形式则需要用到EncodingAESKey停止解密消息加密

假设此处点击提交会出现token验证失败,无锡外卖平台,是因为我们需要新建一个工程来停止微信验证。自己此处利用的是SpringMvc,请看下一步spa

二,验证服务器地址

URL参数code

参数 形容
signature   微信加密签名,signature联合了开发者填写的token参数和申请中的timestamp参数、nonce参数。  
timestamp   工夫戳  
nonce   随机数  
echostr   随机字符串  

 加密/校验流程:
    1. 将token、timestamp、nonce三个参数停止字典序排序
    2. 将三个参数字符串拼接成一个字符串停止sha1加密
    3. 开发者失去加密后的字符串可与signature对比,标识该申请起源于微信申请     
    4. 通过检验signature对申请停止校验(下面有校验模式)。若确认这次GET申请来自微服气务器,请原样前往echostr参数内容,则接入生效,不然接入失败

@Controller @RequestMapping("/") public class WeixinController { @RequestMapping("signature") @ResponseBody public String signature(String signature, String timestamp, String nonce, String echostr){ try { String shaPw = SHA1.getSHA1("xiaofli007", timestamp, nonce); if(signature.equals(shaPw)) return echostr; } catch (Exception e) { e.printStackTrace(); } return null; } } /** * 用SHA1算法生成平安签名 * @param token * @param timestamp 工夫戳 * @param nonce 随机字符串 * @return 平安签名 * @throws Exception */ public static String getSHA1(String token, String timestamp, String nonce) throws Exception { try { String[] array = new String[] { token,timestamp, nonce}; StringBuffer sb = new StringBuffer(); // 字符串排序 Arrays.sort(array); for (int i = 0; i < 3; i++) { sb.append(array[i]); } String str = sb.toString(); // SHA1签名生成 MessageDigest md = MessageDigest.getInstance("SHA-1"); md.update(str.getBytes()); byte[] digest = md.digest(); StringBuffer hexstr = new StringBuffer(); String shaHex = ""; for (int i = 0; i < digest.length; i++) { shaHex = Integer.toHexString(digest[i] & 0xFF); if (shaHex.length() < 2) { hexstr.append(0); } hexstr.append(shaHex); } return hexstr.toString(); } catch (Exception e) { e.printStackTrace(); throw new Exception(); } }

自己的配置:

URL:*/weixin/signature (*为我外网地址)

TOKEN:xiaofli007 (我自行填写-恣意)

EncodingAESKey:主动生成(此处不会用到,无锡网站设计,平安形式下接纳消息会用此密钥停止解密)

点击提交,若是出现如上状况:

1. URL申请超时:反省本机URL能否能失常访问,外网URL能否能失常访问
    2. TOKEN验证失败:一定signature能否与解密事后的字符串分歧,自己此处验证事后前往为JSON
 

  提交胜利,则可以停止下一步开发。

微信,开发,接入,入口