通常情况下,微信小程序的接口是以url+key方式进行对接,但是有时候,接口会有MD5加密,这是为了让接口更加安全,不轻易被人调用。下图是PC网站调用数据的ajax代码(图中的url不是真实的链接,只是为方便演示)
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="http://cdn.bootcss.com/blueimp-md5/1.1.0/js/md5.min.js"></script>
</head>
<body>
<script type="text/javascript">
var timestamp = new Date().getTime();
var verify = md5(timestamp + 'xE%(msPb}=0F!?wo');
$.ajax({
type: 'GET',
url : 'http://baidu.com/mob.php?m=mobile&c=sys&a=get_config',
dataType: 'jsonp',
scriptCharset:'UTF-8',
data: {
__ : verify,
t : timestamp
},
jsonp: 'callback', //jsonp回调参数,必需
jsonpCallback:"success_jsonpCallback",
async: false,
success: function(result) {//返回的json数据
if (parseInt(result.code) !== 0) {
alert(result.msg);
}
var catList = [];
$.each(result.data.category, function(idx, item) {
catList.push(item.catname + ':' + item.catid);
});
$("body").html(catList.join('<br/>'));
},
})
</script>
</body>
</html>
由于小程序不自带MD5解析的底层JS,那么,我们可以在page/util文件中创建MD5.js的文件
/*
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
* Version 1.1 Copyright (C) Paul Johnston 1999 - 2002.
* Code also contributed by Greg Holt
* See http://pajhome.org.uk/site/legal.html for details.
*/
/*
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
*/
function safe_add(x, y)
{
var lsw = (x & 0xFFFF