Heim > Artikel > Web-Frontend > Ausführliche Erklärung zum Abrufen der WeChat-Lieferadresse mithilfe von nodejs
Dieser Artikel stellt hauptsächlich die Methode zum Abrufen der WeChat-Lieferadresse mit nodejs vor. Ich hoffe, dass er allen helfen kann.
Bedingungen für den Abruf der WeChat-Lieferadresse vom öffentlichen Konto:
1. Beim Abruf der WeChat-Lieferadresse-API muss das öffentliche Konto über Zahlungsberechtigungen verfügen.
2. Konfigurieren Sie den Domänennamen, der der Lieferadressenfunktion entspricht (für die Konfiguration des Domänennamens gehen Sie bitte auf die Website der öffentlichen Plattform-->Developer Center-->Konfigurationselemente-->Webdienst--> Webseitenautorisierung, um Benutzergrundlagen zu erhalten. Legen Sie die Informationen fest)
router.js
var API = require('wechat-api'); var api = new API(config.wx_appid, config.wx_secret); var OAuth = require('wechat-oauth'); 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', function(req, 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
<!doctype html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta content="telephone=no" name="format-detection"> <title>demo</title> </head> <body> <pre class="brush:php;toolbar:false"> <%= addr.stra %> WeixinJSBridge.invoke('editAddress', { "appId": '<%= addr.appId %>', "scope": "jsapi_address", "signType": "sha1", "addrSign": '<%= addr.addrSign %>', "timeStamp": '<%= addr.timestamp %>', "nonceStr": '<%= addr.nonceStr %>', },获取微信收货地址