Home  >  Article  >  Web Front-end  >  How to retrieve the WeChat shipping address in nodejs

How to retrieve the WeChat shipping address in nodejs

亚连
亚连Original
2018-06-19 15:00:222190browse

This article mainly introduces the method of nodejs to retrieve the WeChat delivery address in detail. It has certain reference value. Interested friends can refer to it.

The example in this article shares nodejs with everyone. The specific code for retrieving the WeChat delivery address is for your reference. The specific content is as follows

Conditions for retrieving the WeChat delivery address from the public account:

1. WeChat retrieval of the delivery address API, public The number must have payment authority.
2. Configure the domain name corresponding to the delivery address function (for domain name configuration, please go to the public platform website-->Developer Center-->Configuration items-->Web service-->Web page authorization to obtain user basics Set in the information,)

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(&#39;editAddress&#39;, {  
    "appId": &#39;<%= addr.appId %>&#39;, 
    "scope": "jsapi_address", 
    "signType": "sha1", 
    "addrSign": &#39;<%= addr.addrSign %>&#39;, 
    "timeStamp": &#39;<%= addr.timestamp %>&#39;, 
    "nonceStr": &#39;<%= addr.nonceStr %>&#39;, 
  }, 
  
获取微信收货地址

The above is what I compiled for everyone. I hope it will be helpful to everyone in the future.

Related articles:

How to integrate vux in vue.js to implement pull-up loading and pull-down refresh

Related vue projects in webpack Resource file reports 404 problem (detailed tutorial)

Use webpack vue2 to build the project

The above is the detailed content of How to retrieve the WeChat shipping address in nodejs. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn