一路过关一路坑,
1:微信开发平台在创建应用时跟debug和release 包没什么关系,主要看的是包名、签名、APP ID、商户ID、密钥、订单号、随机时间
msgApi = WXAPIFactory.createWXAPI(this, "APP ID"); msgApi.registerApp("APP ID");
2:接口返回或者H5拦截返回的URl时给出JSON格式或者给出Key=value格式都可以,然后自己在解析并添加到自己想要的数据中,上边的Map中数据可以让后台去做,也是为了保证安全,不会被别人抓取,再就是put的数据时根据英文由A到Z依次排序的,如果第一位字母相同时比对第二位,
3: 如果sign是服务器给返回的 && 返回格式是根据MD5把Map和商户 密钥拼接在一起加密的,这时候才是我们想去发送给微信的数据格式,前提一定是key=value格式加密的。
public static String createSign(String characterEncoding,SortedMap<Object,Object> parameters ,String key) { StringBuffer buffer = new StringBuffer(); Set es = parameters.entrySet(); Iterator iterator = es.iterator(); while (iterator.hasNext()) { Map.Entry entry = (Map.Entry) iterator.next(); String k = (String) entry.getKey();