久文高潮一级毛片免费-久久精典二区无码-欧美久久久久久久久久久-,久久久亚洲老司机-九一资源无码在线中文-亚洲日本1区2区3区

消息通知

對于微信公眾號開發(fā)的配置方式

進入配置的正題,這里我使用的是新浪云的服務器。然后進行配置。

一、服務器配置

進入微信公眾號開發(fā)平臺。

找到:開發(fā) => 基本配置

然后在右側(cè)就有一些公眾號的開發(fā)信息,其中appid和AppSecret會十分有用,還有服務器配置,這就是我們要配置的第一項。

服務器地址就是要驗證請求是不是來自微信服務器,token可以自己填寫,后期是用來進行一些加密算法的。

在點擊提交的時候會顯示配置失敗,那是需要后臺的一些驗證。

這里會涉及到前后的一些交互,所以我使用的就是express框架搭建前后端的項目運行。

使用express應用程序生成器快速創(chuàng)建

npm install -g express-generator

express --no-view myapp

這樣就快速創(chuàng)建了一個項目

├── app.js

├── bin

│   └── www

├── package.json

├── public

│   ├── images

│   ├── javascripts

│   └── stylesheets

│       └── style.css

├── routes

│   ├── index.js

│   └── users.js

└── views

    ├── error.pug

    ├── index.pug

    └── layout.pug

項目創(chuàng)建成功后就可以部署到新浪云中。新浪云有文檔。

把你的遠程倉庫克隆下來,里面是個空倉庫,然后把你創(chuàng)建的項目復制進來(node_modules這個文件夾不用),然后提交代碼,最后推送到遠程倉庫,這個時候會自動給你下包,同時進行部署,會耗時一段時間。部署完成就可以使用新浪云提供的二級域名進行訪問。

微信功能開發(fā)

服務器配置填寫完成后點擊提交,這時會向你的服務器發(fā)送請求,同時會攜帶四個參數(shù):

timestamp:時間戳

nonce:隨機字符串

signature:簽名

echostr:返回的字符串

后臺接收這四個參數(shù)在配合token進行簽名算法加密,然后和請求中的簽名進行比對,如果一致就返回echostr,那么這個時候服務器就可以配置成功了。

簽名算法:timestamp,nonce,token進行字典排序,把排序后的數(shù)據(jù)拼接成字符串然后使用sha1進行加密,就會得到簽名。

router.get('/auth', (req, res) => {

  const { timestamp, nonce, signature, echostr } = req.query;

  const token = "xxxxx";

  const sha1Str = sha1([timestamp, nonce, token].sort().join(''));

  if (sha1Str === signature) {

    res.set('Content-Type', 'text/plain')

    res.send(echostr)

  } else {

    res.send('err')

  }

})

這個時候點擊提交,就會顯示配置成功。

二、js接口安全域名

設置 => 公眾號設置 => 功能設置

填入服務器域名,同時還需要把它指定的文件下載下來放到項目的根目錄下。

這個是使用express搭建的項目,其中public就是靜態(tài)資源存放的目錄,打開網(wǎng)址就會顯示這個目錄下的文件,所以把下載好的文件放到這個文件的根目錄即可。沒有這一步的話,添加不成功。倉庫修改了,需要重新提交代碼,重新部署。

三、js-sdk的注入

要想使用微信的接口那么就需要引入微信提供的js文件,在項目開發(fā)中也提供了js-sdk。注入js-sdk則需要一些配置項,其中就需要后臺返回的簽名包。

為了能夠成功使用微信的功能,所以就寫一個接口來返回簽名包。

1、獲取access_token

2、根據(jù)access_token請求拿到ticket

3、創(chuàng)建數(shù)據(jù)對象包含jsapi_ticket,url,noncestr,timestamp

4、字段字典排序

5、拼接數(shù)據(jù)

6、sha1加密

功能封裝

config.js

module.exports = {

    appid: "*******",

    secret: "*********"

}

const { appid, secret } = require('../config');

const axios = require('axios');

const sha1 = require('sha1');

let getTicket = async () => {

    //獲取token

    let tokenUrl = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${secret}`

    let token_data = await axios.get(tokenUrl);

    let token = token_data.data.access_token;

    //獲取ticket

    let ticketUrl = `https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=${token}&type=jsapi`

    let ticket_data = await axios.get(ticketUrl);

    return ticket_data.data.ticket

}

let sign = async (url) => {

    let jsapi_ticket = await getTicket();

    //創(chuàng)建數(shù)據(jù)

    let obj = {

        jsapi_ticket,

        url,

        noncestr: Math.random().toString(36).substring(2, 15),

        timestamp: parseInt(new Date().getTime() / 1000) + ''

    }

    //開始生成簽名

    //1、字段字典排序

    let keys = Object.keys(obj).sort();

    //2、數(shù)據(jù)進行字段排序后的對象

    let newObj = {};

    keys.forEach(key => {

        newObj[key] = obj[key];

    })

    //3、拼接數(shù)據(jù)

    let str = '';

    for (const k in newObj) {

        str += "&" + k + "=" + newObj[k]

    }

    //4、sha1加密

    str = sha1(str.substr(1))

    //5、后臺數(shù)據(jù)返回

    obj.signature = str

    return obj

}

module.exports = sign

接口處理

router.get('/jsapi', async (req, res) => {

  let url = decodeURIComponent(req.query.url)

  let config = await sign(url)

  res.send(config)

})

前端可以傳入url參數(shù)

這樣就會返回簽名包供前端使用。

四、前端接口調(diào)用

在public中的index.html中進行測試

引入文件

<script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>

<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.1.0/axios.min.js"></script>

請求數(shù)據(jù),配置sdk

<script>

  let url = encodeURIComponent(location.href.split('#')[0]);

  axios.get(`http://zhancjian.applinzi.com/jsapi?url=${url}`).then(res => {

    console.log(res);

    wx.config({

      debug: true,

      appId: 'wx9543e309a2c227d8',

      timestamp: res.timestamp,

      nonceStr: res.noncestr,

      signature: res.signature,

      jsApiList: ['getLocation', 'scanQRCode']

    });

  })

</script>

現(xiàn)在已經(jīng)配置成功,然后就可以調(diào)用微信接口了,這里試驗了兩個接口獲取地理位置和調(diào)起微信掃一掃。

<button onclick="getl()">獲取地理位置</button>

<button onclick="sao()">掃一掃</button>

<script>

  function getl() {

    wx.getLocation({

      type: 'wgs84',

      success: res => {

        console.log(res);

      }

    });

  }

  function sao() {

    wx.scanQRCode({

      needResult: 0, // 默認為0,掃描結果由微信處理,1則直接返回掃描結果,

      scanType: ["qrCode", "barCode"], // 可以指定掃二維碼還是一維碼,默認二者都有

      success: function (res) {

        var result = res.resultStr; // 當needResult 為 1 時,掃碼返回的結果

        console.log(result);

      }

    });

  }

</script>

現(xiàn)在一切配置完成,可以使用微信開發(fā)者工具調(diào)試。同時也可以把代碼進行提交,重新部署,這個時候找手機微信打開網(wǎng)址測試就可以使用微信服務。

丁香5月婷婷久久| 国产欧美日韩免费观看| 日韩在线一区二区| 欧美精品日日操| 欧美日韩综合| 国产精品一线| 日本大胆欧美人术艺术动态| 国产精品伦一区二区| 亚洲欧洲免费| 欧美女激情福利| 精品三级在线| www.亚洲一二| yellow在线观看网址| 中文字幕一区二区三区在线视频| 91精品推荐| 精品123区| 三级欧美日韩| 91久久夜色精品国产按摩| 亚洲麻豆av| 国产在线日韩| 久久久久黄色| 久久精品在线| 欧美在线一级| 91精品国产自产精品男人的天堂| 乱码第一页成人| 97精品资源在线观看| 欧美日韩高清| 麻豆成人在线观看| 亚洲第一毛片| 精品美女一区| 久久久久综合| 精品美女一区| 欧美va亚洲va日韩∨a综合色| 国产一区精品福利| 99久久九九| 日韩精品亚洲一区| 欧美99在线视频观看| 日韩精品电影一区亚洲| 欧美一站二站| 日欧美一区二区| 九色精品91| 国产精品久久久久久久久久久久久久久| 国产一区日韩一区| 美女国产一区二区三区| 欧美高清不卡| 欧美国产综合| 欧美bbbbb| 1313精品午夜理伦电影| 天堂8中文在线最新版在线| 97视频一区| 亚洲高清在线| 91久久中文| 日韩不卡在线观看日韩不卡视频| 欧美疯狂party性派对| 秋霞一区二区| 日韩精品第一| 99热在线精品观看| 西野翔中文久久精品字幕| 国产精品99久久精品| 一区二区三区在线免费看| 最新日韩一区| 亚洲精品a级片| 国产欧美日韩精品一区二区免费| 成年男女免费视频网站不卡| 欧美精品国产白浆久久久久| 日本vs亚洲vs韩国一区三区| 婷婷亚洲综合| 亚洲综合影院| 免费一区视频| 免费观看日韩av| 蜜臀av一区| 高清一区二区| 色综合天天色| 99riav1国产精品视频| 日韩成人免费在线| 国产日韩欧美三级| 欧美残忍xxxx极端| 亚洲网址在线| 亚洲图色一区二区三区| 日韩国产在线观看一区| 人人爽香蕉精品| 99精品国产一区二区三区| 久久久亚洲欧洲日产| 男人的天堂免费在线视频| 女优一区二区三区| 日韩va欧美va亚洲va久久| 麻豆精品新av中文字幕| 国产在线精彩视频| 91精品高清| 欧美日韩精品一区二区三区在线观看| 麻豆国产精品官网| 国产一区二区主播在线| 香蕉久久久久久久av网站| 久久视频精品| 精品大片一区二区| 精品精品视频| 国产激情精品一区二区三区| 色狠狠一区二区三区| 国产精品久久久久蜜臀| 天天操夜夜操国产精品| 欧美日韩网站| 久久最新网址| 亚洲毛片一区| 日韩三区四区| 肉色欧美久久久久久久免费看| 欧美在线亚洲综合一区| 精品久久一区| 成人黄色av网址| 91成人午夜| 午夜精品福利影院| 国产欧美日韩一区二区三区四区 | 国产日本亚洲| 国产美女精品视频免费播放软件| 久久精品麻豆| 美女视频网站黄色亚洲| 91久久久久久白丝白浆欲热蜜臀| 国产资源在线观看入口av| 麻豆精品网站| 男人的天堂亚洲在线| 日韩视频在线一区二区三区 | 亚洲一区二区小说| 日韩国产欧美一区二区三区| 四虎精品一区二区免费| 激情亚洲影院在线观看| 怡红院成人在线 | 91日韩欧美| 水蜜桃精品av一区二区| 亚洲在线国产日韩欧美| 国产精品视频久久一区| 视频一区国产视频| 视频一区视频二区中文字幕| 日韩88av| 亚洲成人看片| 欧美一区国产在线| 在线观看一区视频| 欧美日韩ab| 中文字幕日韩亚洲| 亚洲免费福利一区| 亚洲综合网狠久久| 精品国产中文字幕第一页 | 精品国产一区二区三区2021| 日韩欧美ww| 超碰97久久| 久久精品国产www456c0m| 欧美99久久| 午夜亚洲伦理| 亚洲日本天堂| 福利一区二区| 日韩高清中文字幕一区| 国内精品嫩模av私拍在线观看| 久久久久观看| 精品网站999| 久久成人综合| 免费看黄裸体一级大秀欧美| 亚洲2区在线| 麻豆久久一区二区| 99久久久国产精品免费调教网站| 99久久伊人| 麻豆久久一区二区| 亚洲理论电影片| 欧美一区二区三区久久精品茉莉花 | 亚洲国产老妈| 国产精品高颜值在线观看| 桃色一区二区| 亚洲深深色噜噜狠狠爱网站| 亚洲裸色大胆大尺寸艺术写真| 日本不卡高清| 国产美女精品| 青草综合视频| 国产一区二区三区四区大秀| 精品久久久久中文字幕小说| 一本色道久久综合亚洲精品不| 欧美第一视频| www.久久久久爱免| 国产精品17p| 香蕉国产精品偷在线观看不卡| jizz久久久久久| 欧美美乳视频| 欧美日韩中字| 国产高潮在线| 亚洲色图综合| 久久蜜桃资源一区二区老牛| 香蕉久久a毛片| 国产精品久久久久9999高清| 亚洲男人都懂第一日本| 精品中文一区| 日本综合视频| 精品视频在线观看网站| 9色国产精品| 国产日韩欧美一区| eeuss鲁片一区二区三区| 亚洲在线日韩| 青青草成人在线观看| 大陆精大陆国产国语精品| 视频在线在亚洲| 91精品国产色综合久久不卡粉嫩| 人体久久天天| 午夜裸体女人视频网站在线观看| 综合亚洲自拍| 亚洲色诱最新|