本文实例为大家分享了nodejs调取微信收货地址的具体代码,供大家参考,具体内容如下
公众号调取微信收货地址条件:
1、微信调取收货地址API,公众号必须有支付权限。 2、配置对应使用收货地址功能的域名(域名配置请在公众平台网站-->开发者中心-->配置项-->网页服务-->网页授权获取用户基本信息中设置,)
router.js
var client = new OAuth(config.wx_appid,config.wx_secret);
/ auth /
app.get('/auth',function(req,res) {
var url = client.getAuthorizeURL('http://xxxxxxxxxx/getAddr','','snsapi_userinfo');
res.redirect(url);
});
app.get('/getAddr',res) {
var code = req.query.code;
client.getAccessToken(code,function (err,result) {
var accessToken = result.data.access_token;
var param = {
debug: false,jsApiList: ['getLocation','onMenuShareAppMessage'],url:"http://xxxxxxxxxx"+req._parsedUrl.href //这个URL是你要拉起收货地址的实际URL
};
api.getJsConfig(param,function(err,addrConfig){
console.log('addrConfig = ',addrConfig);
var stra = "accesstoken="+accessToken+"&appid="+config.wx_appid+"&noncestr="+addrConfig.nonceStr+"×tamp="+addrConfig.timestamp+"&url="+param.url;//拼接string1
//console.log('stra = ',stra);
/*
common.sha1
// SHA1加密算法
exports.sha1 = function(str) {
var md5sum = crypto.createHash('sha1');
md5sum.update(str);
str = md5sum.digest('hex');
console.log(str)
return str;
}
*/
var strb = common.sha1(stra);
addrConfig.addrSign = strb;
addrConfig.stra = stra;
//console.log('strb = ',strb);
res.render('addr',{
addr: addrConfig,});
});
});
});
addr.ejs
<%= addr.stra %> WeixinJSBridge.invoke('editAddress',{ "appId": '<%= addr.appId %>',"scope": "jsapi_address","signType": "sha1","addrSign": '<%= addr.addrSign %>',"timeStamp": '<%= addr.timestamp %>',"nonceStr": '<%= addr.nonceStr %>',},nofollow" style="margin:40px;" onclick="editAddr()">获取微信收货地址