国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

微信公眾號開發(fā)

nifhlheimr / 2827人閱讀

摘要:接口安全域名主要是在調(diào)用微信時用到。到這里為止測試號配置就完成了二微信網(wǎng)頁授權(quán)篇接口地址為這里你可以使用此地址上的接口進行自己編寫,也可以使用別人封裝好的。

說明:由于最近開發(fā)公眾號,特寫篇文章來記錄下開發(fā)流程和開發(fā)中的坑。
開發(fā)用的技術(shù)為 react + express , nodejs作為中間層。

一.配置篇

首先申請接口測試號
地址:https://mp.weixin.qq.com/wiki...

上面為測試號配置頁面

1.接口配置信息 修改

這里的接口配置信息 需要和 微信進行一次通信,才能夠填寫。
這一層通信是在nodejs層里進行的。
在項目里創(chuàng)建一個路由,通信代碼如下:

const sha1 = require("sha1");
router.get("/wx", function(req, res) {
    const {
        signature,
        timestamp,
        nonce,
        echostr
    } = req.query;

    const token = config.token;

    let str = [token, timestamp, nonce].sort().join("");
    const sha = sha1(str);

    if( sha === signature) {
        console.log("驗證成功")
        res.send(echostr);
    } else {
        console.log("驗證失敗")
        res.send("驗證失敗");
    }
});


這里的URL就是填寫你通信路由的地址,Token要和 通信代碼中的 token保持一致。
然后點擊 提交 按鈕,微信就會向你填寫的URL發(fā)起請求。URL和Token無誤,即可提交成功。

2.JS接口安全域名

主要是在調(diào)用微信JS-SDK時用到。
這里我們有做一個朋友圈分享功能,要調(diào)用SDK的頁面和分享的鏈接,要填寫在安全域名下,才能成功
(在下面的微信JS-SDK使用會講到)

3.授權(quán)回調(diào)頁面


這里的域名填寫你項目的域名(例如): xxx.com 即可,不需要加http/https。
到這里為止測試號配置就完成了!!!

二.微信網(wǎng)頁授權(quán)篇

接口地址為:https://mp.weixin.qq.com/wiki...
這里你可以使用此地址上的接口進行自己編寫,也可以使用別人封裝好的SDK。
這里我使用的別人封裝好的SDK
https://github.com/node-webot...
這里也是在node層進行處理

$ npm install wechat-oauth

var OAuth = require("wechat-oauth");
var client = new OAuth("your appid", "your secret’);

生成引導(dǎo)用戶點擊的URL。

var url = client.getAuthorizeURL("redirectUrl", "state", "scope");

如果是PC上的網(wǎng)頁,請使用以下方式生成

var url = client.getAuthorizeURLForWebsite("redirectUrl");

獲取Openid和AccessToken
用戶點擊上步生成的URL后會被重定向到上步設(shè)置的 redirectUrl,并且會帶有code參數(shù),我們可以使用這個code換取access_token和用戶的openid

client.getAccessToken("code", function (err, result) {
  var accessToken = result.data.access_token;
  var openid = result.data.openid;
});

復(fù)制代碼獲取用戶信息
如果我們生成引導(dǎo)用戶點擊的URL中scope參數(shù)值為snsapi_userinfo,接下來我們就可以使用openid換取用戶詳細信息(必須在getAccessToken方法執(zhí)行完成之后)

client.getUser(openid, function (err, result) {
  var userInfo = result;
});

通過以上這幾個步驟,就可以拿到用戶的信息!!!

三. 微信JS-SDK使用篇(這里以朋友圈分享為例子)

微信JS-SDK說明文檔
地址:https://mp.weixin.qq.com/wiki...
sdk使用:(這里搬用下官網(wǎng)的文檔,這里可詳細參考文檔,這里唯一麻煩一點的地方就是 簽名算法)

步驟一:綁定域名
先登錄微信公眾平臺進入“公眾號設(shè)置”的“功能設(shè)置”里填寫“JS接口安全域名”。

步驟二:引入JS文件
在需要調(diào)用JS接口的頁面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/...

步驟三:通過config接口注入權(quán)限驗證配置

wx.config({
    debug: true, // 開啟調(diào)試模式,調(diào)用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數(shù),可以在pc端打開,參數(shù)信息會通過log打出,僅在pc端時才會打印。
    appId: "", // 必填,公眾號的唯一標識
    timestamp: , // 必填,生成簽名的時間戳
    nonceStr: "", // 必填,生成簽名的隨機串
    signature: "",// 必填,簽名
    jsApiList: [] // 必填,需要使用的JS接口列表
});

這里的timestamp,nonceStr,signature需要通過接口獲取,接下來我們就來獲取 timestamp,nonceStr,signature(在node層處理)
這里第一步就需要獲取access_token,
要調(diào)取微信的SDK,必須要獲取access_token,access_token是公眾號的全局唯一接口調(diào)用憑據(jù),公眾號調(diào)用各接口時都需使用access_token,access_token有效期為2個小時,而調(diào)取access_token接口的次數(shù)限制為2000,所以需要存儲下來(存的方式看你自己)
獲取access_token接口:
https://mp.weixin.qq.com/wiki...

獲取access_token 和timestamp,nonceStr,signature代碼如下:

const rp = require("request-promise’);
const {sign} = require(‘./sign");
rp(`https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${config.appID}&secret=${config.appsecret}`)
    .then(function (response) {
        const access_token = JSON.parse(response).access_token;
        setCookie(res, "at", access_token);
        rp(`https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=${access_token}&type=jsapi`)
            .then(function (response2) {
                let ticket = JSON.parse(response2).ticket;
                let signObj = sign(ticket, config.originUrl + req.originalUrl);
                setCookie(res, "timestamp", signObj.timestamp);
                setCookie(res, "nonceStr", signObj.nonceStr);
                setCookie(res, "signature", signObj.signature);
                /*...*/
            }).catch(function () {
                /*...*/
            });
    }).catch(function () {
        /*...*/
    });

這里setCookie是我自己寫的存cookie的方法,
這里的sign是微信的簽名算法:
sign.js

"use strict";
const jsSHA = require("jssha");


var createNonceStr = function () {
    return Math.random().toString(36).substr(2, 15);
};

var createTimestamp = function () {
    return parseInt(new Date().getTime() / 1000) + "";
};

var raw = function (args) {
    var keys = Object.keys(args);
    keys = keys.sort();
    var newArgs = {};
    keys.forEach(function (key) {
        newArgs[key.toLowerCase()] = args[key];
    });

    var string = "";
    for (var k in newArgs) {
        string += "&" + k + "=" + newArgs[k];
    }
    string = string.substr(1);
    return string;
};

/**
 * @synopsis 簽名算法
 *
 * @param jsapi_ticket 用于簽名的 jsapi_ticket
 * @param url 用于簽名的 url ,注意必須動態(tài)獲取,不能 hardcode
 *
 * @returns
 */
exports.sign = function (jsapi_ticket, url) {
    var ret = {
        jsapi_ticket: jsapi_ticket,
        nonceStr: createNonceStr(),
        timestamp: createTimestamp(),
        url: url
    };
    var string = raw(ret);
    let shaObj = new jsSHA(string, "TEXT");
    ret.signature = shaObj.getHash("SHA-1", "HEX");
    return ret;
};

此時我們已經(jīng)把timestamp,nonceStr,signature存了起來,然后我們來到前臺頁面獲取(我這里使用的react)

componentDidMount () {
    wx.config({
        debug: false, // 開啟調(diào)試模式,調(diào)用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數(shù),可以在pc端打開,參數(shù)信息會通過log打出,僅在pc端時才會打印。
        appId: appID, // 必填,公眾號的唯一標識
        timestamp: Cookies.get("timestamp"), // 必填,生成簽名的時間戳
        nonceStr: Cookies.get("nonceStr"),   // 必填,生成簽名的隨機串
        signature: Cookies.get("signature"), // 必填,簽名
        jsApiList: [
            "onMenuShareTimeline",
            "onMenuShareAppMessage"
        ] // 必填,需要使用的JS接口列表
    });
}

步驟四:在需要的地方調(diào)用接口,
代碼如下:

wx.ready(function() {
//分享給朋友
    wx.onMenuShareTimeline({
        title: "", // 分享標題
        link: href, // 分享鏈接,該鏈接域名或路徑必須與當(dāng)前頁面對應(yīng)的公眾號JS安全域名一致
        imgUrl: imgUrl, // 分享圖標
    });
    wx.onMenuShareAppMessage({
        title: "", // 分享標題
        link: href, // 分享鏈接,該鏈接域名或路徑必須與當(dāng)前頁面對應(yīng)的公眾號JS安全域名一致
        imgUrl: imgUrl, // 分享圖標
    });
});

這里就完成了對微信JS-SDK的調(diào)用!!!
第一次寫文章,很多地方有漏洞,不完善,希望各位指出。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/98310.html

相關(guān)文章

  • 淺析微信支付:開發(fā)前的準備

    摘要:本文是淺析微信支付系列文章的第三篇,主要會講一下在開發(fā)前的一些注意事項。淺析微信支付系列已經(jīng)更新兩篇了喲,沒有看過的朋友們可以看一下。開通微信支付需要注冊登陸微信商戶平臺,微信支付相關(guān)的信息都需要在這個平臺上進行操作。 本文是【淺析微信支付】系列文章的第三篇,主要會講一下在開發(fā)前的一些注意事項。 淺析微信支付系列已經(jīng)更新兩篇了喲~,沒有看過的朋友們可以看一下。 淺析微信支付:前篇大綱...

    yanest 評論0 收藏0
  • 企業(yè)只能申請兩個微信公眾微信開發(fā)不夠用?不,一個公眾就夠了!

    摘要:微信年月日發(fā)公告稱,個人主體注冊公眾號數(shù)量上限由個調(diào)整為個。大家都知道每個微信公眾號在進行開發(fā)時,授權(quán)回調(diào)的域名只能設(shè)置一個,正常的開發(fā)一般一套環(huán)境就對應(yīng)一個域名。 微信2018年11月16日發(fā)公告稱,個人主體注冊公眾號數(shù)量上限由2個調(diào)整為1個。企業(yè)類主體注冊公眾號數(shù)量上限由5個調(diào)整為2個。這個對馬上要注冊公眾號的企業(yè)來說頓時心情不好了。 大家都知道每個微信公眾號在進行開發(fā)時,授權(quán)回調(diào)...

    wthee 評論0 收藏0
  • 微信公眾開發(fā)小記——1.接入微信服務(wù)器

    摘要:描述由于馬上要做一波公眾號開發(fā),今天先調(diào)研,把基本的服務(wù)器接起來。手腳架地址文檔微信公眾號公眾號開發(fā)首先你要有個公眾號,這里就不說了按照流程申請。腳手架的說明微信公眾號接入的時候要做很多事情,為了簡化開發(fā),提供一個版本的服務(wù)器。 描述 由于馬上要做一波公眾號開發(fā),今天先調(diào)研,把基本的服務(wù)器接起來。微信公眾號服務(wù)器在接入的時候要做一些煩躁的事情,改配置的時候要進行握手,api調(diào)用要做一些...

    sshe 評論0 收藏0
  • 慕課網(wǎng)_《初識Java微信公眾開發(fā)》學(xué)習(xí)總結(jié)

    摘要:時間年月日星期五說明本文部分內(nèi)容均來自慕課網(wǎng)。本套課程介紹微信公眾號開發(fā),主要涉及公眾號介紹編輯模式介紹開發(fā)模式介紹等。慕課網(wǎng)是垂直的互聯(lián)網(wǎng)技能免費學(xué)習(xí)網(wǎng)站。 時間:2017年08月11日星期五說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:https://github.com/zccodere/s...學(xué)習(xí)源碼:https://github...

    PrototypeZ 評論0 收藏0
  • 淺析微信支付:微信支付簡單介紹(小程序、公眾、App、H5)

    摘要:本文是淺析微信支付系列文章的第二篇,主要講解一下普通商戶接入的支付方式以及其中的不同之處。淺析微信支付前篇大綱微信支付是集成在微信客戶端的支付功能,用戶可以通過手機完成快速的支付流程。目前微信支付支持手機系統(tǒng)有蘋果安卓和。 本文是【淺析微信支付】系列文章的第二篇,主要講解一下普通商戶接入的支付方式以及其中的不同之處。 上篇文章講了本系列的大綱,沒有看過的朋友們可以看一下。 淺析微信支...

    shadowbook 評論0 收藏0
  • Koa2微信公眾開發(fā)(一) 本地開發(fā)調(diào)試環(huán)境搭建

    摘要:本篇是該系列的第一篇,本地開發(fā)環(huán)境搭建以及接入微信。若確認此次請求來自微信服務(wù)器,原樣返回參數(shù)內(nèi)容,則接入生效,成為開發(fā)者成功,否則接入失敗。 一、簡介 關(guān)于微信公眾號的介紹就省略了,自行搜索。注冊過程也不說了。我們會直接注冊測試號來實現(xiàn)代碼。這將會是個全面講解微信公眾號開發(fā)的系列教程。本篇是該系列的第一篇,本地開發(fā)環(huán)境搭建以及接入微信。在開始之前最好去看看開發(fā)者文檔微信公眾平臺技術(shù)文...

    snifes 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<