毛片免费观看_国产99精品一区二区三区免费_99在线精品免费视频_影视先锋每日资源

消息通知

對于微信公眾號開發的配置方式

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

一、服務器配置

進入微信公眾號開發平臺。

找到:開發 => 基本配置

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

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

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

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

使用express應用程序生成器快速創建

npm install -g express-generator

express --no-view myapp

這樣就快速創建了一個項目

├── app.js

├── bin

│   └── www

├── package.json

├── public

│   ├── images

│   ├── javascripts

│   └── stylesheets

│       └── style.css

├── routes

│   ├── index.js

│   └── users.js

└── views

    ├── error.pug

    ├── index.pug

    └── layout.pug

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

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

微信功能開發

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

timestamp:時間戳

nonce:隨機字符串

signature:簽名

echostr:返回的字符串

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

簽名算法:timestamp,nonce,token進行字典排序,把排序后的數據拼接成字符串然后使用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就是靜態資源存放的目錄,打開網址就會顯示這個目錄下的文件,所以把下載好的文件放到這個文件的根目錄即可。沒有這一步的話,添加不成功。倉庫修改了,需要重新提交代碼,重新部署。

三、js-sdk的注入

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

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

1、獲取access_token

2、根據access_token請求拿到ticket

3、創建數據對象包含jsapi_ticket,url,noncestr,timestamp

4、字段字典排序

5、拼接數據

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();

    //創建數據

    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、數據進行字段排序后的對象

    let newObj = {};

    keys.forEach(key => {

        newObj[key] = obj[key];

    })

    //3、拼接數據

    let str = '';

    for (const k in newObj) {

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

    }

    //4、sha1加密

    str = sha1(str.substr(1))

    //5、后臺數據返回

    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參數

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

四、前端接口調用

在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>

請求數據,配置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>

現在已經配置成功,然后就可以調用微信接口了,這里試驗了兩個接口獲取地理位置和調起微信掃一掃。

<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>

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

企業開發高端應用的優勢!
企業開發高端應用的優勢!
產品設計過程中的幾個重要點
產品設計過程中的幾個重要點
毛片免费观看_国产99精品一区二区三区免费_99在线精品免费视频_影视先锋每日资源

    欧美一区二区女人| 国产精品麻豆成人av电影艾秋| 亚洲日本aⅴ片在线观看香蕉| 国产精品xxxxx| 久久精品视频免费观看| 亚洲三级影片| 国产一区二区三区免费在线观看| 欧美全黄视频| 麻豆av一区二区三区| 羞羞色国产精品| 136国产福利精品导航| 欧美日韩中文在线| 美女91精品| 久久久另类综合| 欧美资源在线| 欧美一级免费视频| 一区二区精品在线| 亚洲免费成人av| 亚洲精品乱码| 亚洲国内精品在线| 狠狠爱www人成狠狠爱综合网| 国产精品久久久久天堂| 欧美日韩国产成人| 欧美激情精品久久久久久大尺度 | 欧美大片免费看| 久久久噜久噜久久综合| 久久九九国产精品| 久久久国产亚洲精品| 久久精品青青大伊人av| 久久精品国产成人| 欧美亚洲综合在线| 久久精品国产亚洲5555| 久久精品视频在线观看| 久久久亚洲成人| 久久一日本道色综合久久| 久久蜜桃香蕉精品一区二区三区| 久久久久se| 欧美精品www| 欧美日韩精品在线| 国产精品一页| 国产亚洲综合性久久久影院| 黄色一区二区三区四区| 在线观看欧美亚洲| 夜夜夜精品看看| 亚洲欧美精品在线| 久久精品盗摄| 欧美成人免费播放| 欧美日韩视频不卡| 国产丝袜美腿一区二区三区| 一区二区三区中文在线观看 | 伊人激情综合| 91久久精品国产91久久| 中日韩美女免费视频网址在线观看| 亚洲视频在线观看一区| 欧美在线观看www| 免费观看在线综合| 国产精品白丝av嫩草影院| 国产欧美一区二区三区久久| 亚洲第一精品夜夜躁人人爽 | 国产精品国产三级国产专播品爱网| 国产精品区一区二区三| 黄色成人av网站| 在线亚洲电影| 久久在线免费观看视频| 欧美三级在线| 在线观看亚洲一区| 亚洲欧美日本国产有色| 欧美91大片| 国产精品亚洲一区| 日韩天堂av| 久久久久久黄| 国产麻豆一精品一av一免费| 亚洲日本欧美天堂| 久久er99精品| 国产精品一区免费观看| 亚洲精品一区在线观看| 久久久xxx| 国产欧美va欧美va香蕉在| 亚洲美女视频在线观看| 久久久久国产成人精品亚洲午夜| 欧美日韩性生活视频| 精品动漫3d一区二区三区免费版 | 国产精品久久久久一区| 亚洲精品乱码久久久久久按摩观 | 久久午夜视频| 国内精品嫩模av私拍在线观看| 亚洲视频综合| 欧美调教视频| 亚洲乱码精品一二三四区日韩在线 | 午夜久久久久久久久久一区二区| 欧美激情一区二区三区成人 | 亚洲电影在线| 久久国产精品久久w女人spa| 国产精品私人影院| 亚洲欧美激情一区| 国产精品久久久久毛片大屁完整版 | 99riav国产精品| 欧美高清在线一区| 亚洲黄色在线观看| 欧美精品麻豆| 日韩午夜精品视频| 欧美精品一区二区三区久久久竹菊 | 国产精品视频自拍| 午夜精品视频一区| 国产片一区二区| 久久精品免费播放| 有码中文亚洲精品| 欧美福利小视频| 亚洲美女在线国产| 欧美日韩一区二区三区| 一本久久青青| 国产精品一区二区三区免费观看| 亚洲欧美日韩国产| 黄色亚洲大片免费在线观看| 蜜桃久久av| 在线亚洲国产精品网站| 国产精品一区=区| 久久美女艺术照精彩视频福利播放| 国产中文一区二区三区| 欧美成人免费一级人片100| 亚洲伦理在线免费看| 国产精品家庭影院| 久久亚洲一区二区| 99国产麻豆精品| 国产乱码精品一区二区三| 久久精品一级爱片| 亚洲精品在线免费观看视频| 国产精品免费福利| 免费观看成人| 亚洲欧美电影院| 亚洲国产欧美精品| 国产精品久久99| 老司机午夜精品视频| 亚洲一区999| 伊人精品视频| 欧美午夜不卡影院在线观看完整版免费 | 国产女人精品视频| 欧美韩国日本综合| 欧美一区二区三区四区在线观看地址| 在线精品高清中文字幕| 欧美婷婷久久| 久久精品成人一区二区三区蜜臀 | 亚洲免费观看在线观看| 国产亚洲永久域名| 欧美日韩不卡| 久久看片网站| 西瓜成人精品人成网站| 日韩午夜av电影| 亚洲高清毛片| 激情文学一区| 国产性色一区二区| 欧美天天综合网| 欧美区高清在线| 欧美二区在线看| 久久亚洲欧美| 久久国产天堂福利天堂| 亚洲视频免费在线观看| 亚洲精品美女91| 亚洲国产婷婷香蕉久久久久久99| 国产视频一区在线观看一区免费| 国产精品xvideos88| 欧美日韩久久久久久| 欧美成人免费全部| 欧美不卡高清| 欧美国产日韩精品免费观看| 美女国产一区| 你懂的视频一区二区| 久久亚洲欧美国产精品乐播| 久久精品麻豆| 久久精品在线观看| 欧美一区二视频| 欧美在线观看天堂一区二区三区| 亚洲欧美国产高清| 午夜视频一区| 久久精品国产v日韩v亚洲| 久久精品91| 美女主播精品视频一二三四| 榴莲视频成人在线观看| 免费高清在线视频一区·| 免费中文日韩| 欧美日韩精品免费观看视一区二区 | 日韩视频一区二区| 亚洲卡通欧美制服中文| 一本色道久久综合狠狠躁篇怎么玩 | 国产欧美精品va在线观看| 国产欧美日韩一区二区三区| 国产日韩欧美综合精品| 在线欧美电影| 亚洲精品小视频| 亚洲一级二级| 久久精品123| 欧美激情综合在线| 国产精品久久激情| 国内精品美女av在线播放| 亚洲国产欧美一区二区三区久久 | 国产精品久久久久国产精品日日| 国产精品亚洲精品| 在线成人黄色| 亚洲男人的天堂在线观看| 久久久久久久久久久一区|