近来做一个H5跳转小程序的需求,一开始觉得没啥留到后面再做,结果前期的大意造成了后期不断的踩坑跳坑,对规则的不甚理解造成了这样的一种现状,为了后来的人不要和我一样,我就写了这篇讲一些具体会遇到的情况,大家如果遇到可以按照我这样做,我现在按照顺序一步一步的把我的踩坑之路讲述出来。
具体问题如下:
1.绑定域名;
2.签名算法;
3.IP白名单;
4.config配置;
5.标签的显示;
一、首先是按照开放标签的步骤来,注意设置js安全域名对应的是小程序的公众号的安全域名,只有设置在那边才能开始第二步。
二、引入完js文件后,然后开始配置wx.config,涉及到签名算法(js-sdk使用权限签名算法),点进去附录一看具体的操作
三、建议签名算法在后端完成,进去了之后像是发现了新世界,其实里面还是有许多坑要踩。首先是获取access_token,再打开它的说明文档,哇哦,又进入了一个新世界,是不是很刺激啊~~(https://github.com/night-king/weixinSDK 找到签名算法的代码,大家有兴趣可以看一下,不止签名算法,里面集成了很多代码)
- access_token需要公众号的appid和appsecret(注意是小程序对应的公众号)就按文档讲的get请求,这块还有一点注意,就是在服务器上调试需要将域名放入IP白名单,具体的设置在公众号上面有,这块非常重要千万注意,不然会跳出40048这个错误码。
- 然后是jsapi_ticket同样按照get请求获得,这个如果access_token是对那必然也会成功。
- 接下来是随机字符串(建议16位,因为官方示例也是16位)
///<param name="length">目标字符串的长度</param>
///<param name="useNum">是否包含数字,1=包含,默认为包含</param>
///<param name="useLow">是否包含小写字母,1=包含,默认为包含</param>
///<param name="useUpp">是否包含大写字母,1=包含,默认为包含</param>
///<param name="useSpe">是否包含特殊字符,1=包含,默认为不包含</param>
///<param name="custom">要包含的自定义字符,直接输入要包含的字符列表</param>
///<returns>指定长度的随机字符串</returns>
public static string GetRandomString(int length, bool useNum, bool useLow, bool useUpp, bool useSpe, string custom)
{
byte[] b = new byte[4];
new System.Security.Cryptography.RNGCryptoServiceProvider().GetBytes(b);
Random</