为了让微信接口的调用更加安全,微信服务器要对支付接口和JS-SDK接口进行加密和校验。因此开发调取微信支付和JS-SKD接口,必须了解微信签名的规则。
通过上面的三步,就可以拿到签名的结果签名。
在node中,通过下面的算法,可以得到签名结果。
getSign (signParams ) {
var keys = Object 。键(signParams );
键 = 键。排序();
var newArgs = { } ;
键。forEach (函数 (val ) {
if (signParams [ val ] ) {
newArgs [ val ] = signParams [ val ] ;
}
} )
var string = queryString 。stringify (newArgs );
返回 加密货币。createHash ('sha1' )。更新(的queryString 。UNESCAPE (串), 'utf-8' )。 摘要(“十六进制” );}
上诉算法可以将一个单独的集合按照签名规则计算出签名结果,参数为一个对象,对象中包含了所有分段,示例如下所示:
1 {
2 jsapi_ticket:jsapi_ticket ,
3 timestamp:timestamp ,
4 noncestr:nonceStr ,
5 url:“ http://www.eduwork.cn/phone”
6 }
本章讲解了微信签名的目标和方法,了解了签名,我们便可以在后续的章节中调用JS-SDK和微信支付接口了。