微信小程序加密网络通道功能使用说明
微信小程序加密网络通道功能是小程序安全能力之一,目的是为了避免小程序与开发者后台通信时数据被截取和篡改,微信侧维护了一个用户维度的可靠key,用于小程序和后台通信时进行加密和签名。
微信小程序开发者可以分别通过小程序前端和微信后台提供的接口,获取用户的加密key。
温馨提示:该安全能力从基础库2.17.3开始支持。
微信小程序加密网络通道使用方法:
1、前端通过 userCryptoManager.getLatestUserKey 获取加密密钥信息
2、发起 wx.request 请求时使用第一步得到的加密密钥信息对参数进行加密
3、服务端请求服务端接口getUserEncryptKey 拿到 encryptKey 用于解密
示例代码:
// 前端
const somedata = ‘xxxxx’
const userCryptoManager = wx.getUserCryptoManager()
userCryptoManager.getLatestUserKey({
success({encryptKey, iv, version, expireTime}) {
const encryptedData =
someAESEncryptMethod(encryptKey, iv, somedata)
wx.request({
data: encryptedData,
success(res) {
const decryptedData =
someAESDEcryptMethod(
encryptKey,
iv,
res.data
)
console.log(decryptedData)
;
}
})
;
}
})
// 服务端
curl -X POST ”
https://api.weixin.qq.com
/wxa/business/getuserencryptkey?
access_token=ACCESS_TOKEN
&openid=OPENID
&signature=SIGNATURE
&sig_method=hmac_sha256″
更多微信小程序加密网络通道功能使用说明参考小程序加密网络通道完整官方文档>>