【移動應(yīng)用開發(fā)技術(shù)】微信小程序獲取用戶session-key、openid、unioni的方法_第1頁
【移動應(yīng)用開發(fā)技術(shù)】微信小程序獲取用戶session-key、openid、unioni的方法_第2頁
【移動應(yīng)用開發(fā)技術(shù)】微信小程序獲取用戶session-key、openid、unioni的方法_第3頁
【移動應(yīng)用開發(fā)技術(shù)】微信小程序獲取用戶session-key、openid、unioni的方法_第4頁
【移動應(yīng)用開發(fā)技術(shù)】微信小程序獲取用戶session-key、openid、unioni的方法_第5頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

【移動應(yīng)用開發(fā)技術(shù)】微信小程序獲取用戶session_key、openid、unioni的方法

這篇文章主要介紹了微信小程序獲取用戶session_key、openid、unioni的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓在下帶著大家一起了解一下。node.js的微信小程序獲取用戶session_key,openid,unionid的方法實現(xiàn)。步驟:1、通過wx.login接口獲取code既jscode,傳遞到后端;2、后端請求/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code地址,就能獲取到openid和unionid。小程序接口promise化和封裝1、utils文件夾下創(chuàng)建wechat.js文件/**

*

Promise化小程序接口

*/

class

Wechat

{

/**

*

登陸

*

@return

{Promise}

*/

static

login()

{

return

new

Promise((resolve,

reject)

=>

wx.login({

success:

resolve,

fail:

reject

}));

};

/**

*

獲取用戶信息

*

@return

{Promise}

*/

static

getUserInfo()

{

return

new

Promise((resolve,

reject)

=>

wx.getUserInfo({

success:

resolve,

fail:

reject

}));

};

/**

*

發(fā)起網(wǎng)絡(luò)請求

*

@param

{string}

url

*

@param

{object}

params

*

@return

{Promise}

*/

static

request(url,

params,

method

=

"GET",

type

=

"json")

{

console.log("向后端傳遞的參數(shù)",

params);

return

new

Promise((resolve,

reject)

=>

{

let

opts

=

{

url:

url,

data:

Object.assign({},

params),

method:

method,

header:

{

'Content-Type':

type

},

success:

resolve,

fail:

reject

}

console.log("請求的URL",

opts.url);

wx.request(opts);

});

};

/**

*

獲取微信數(shù)據(jù),傳遞給后端

*/

static

getCryptoData()

{

let

code

=

"";

return

this.login()

.then(data

=>

{

code

=

data.code;

console.log("login接口獲取的code:",

code);

return

this.getUserInfo();

})

.then(data

=>

{

console.log("getUserInfo接口",

data);

let

obj

=

{

js_code:

code,

};

return

Promise.resolve(obj);

})

.catch(e

=>

{

console.log(e);

return

Promise.reject(e);

})

};

/**

*

從后端獲取openid

*

@param

{object}

params

*/

static

getMyOpenid(params)

{

let

url

=

'/api/openid';

return

this.request(url,

params,

"POST",

"application/x-www-form-urlencoded");

};

}

module.exports

=

Wechat;2、修改小程序的app.js文件let

wechat

=

require('./utils/wechat.js');

App({

onLaunch()

{

this.getUserInfo();

},

getUserInfo()

{

wechat.getCryptoData()

.then(d

=>

{

return

wechat.getMyOpenid(d);

})

.then(d

=>

{

console.log("從后端獲取的openid",

d.data);

})

.catch(e

=>

{

console.log(e);

})

}

})后端nodejs,是用的express命令行生成的項目框架,1、創(chuàng)建common文件夾,創(chuàng)建utils文件,使用request模塊請求接口,promise化requestconst

request

=

require("request");

class

Ut

{

/**

*

promise化request

*

@param

{object}

opts

*

@return

{Promise<[]>}

*/

static

promiseReq(opts

=

{})

{

return

new

Promise((resolve,

reject)

=>

{

request(opts,

(e,

r,

d)

=>

{

if

(e)

{

return

reject(e);

}

if

(r.statusCode

!=

200)

{

return

reject(`back

statusCode:${r.statusCode}`);

}

return

resolve(d);

});

})

};

};

module.exports

=

Ut;2、新增路由,appId、secret在小程序的后臺獲取router.post("/openid",

async

(req,

res)

=>

{

const

Ut

=

require("../common/utils");

try

{

console.log(req.body);

let

appId

=

"wx70xxxxxxbed01b";

let

secret

=

"5ec6exxxxxx49bf161a79dd4";

let

{

js_code

}

=

req.body;

let

opts

=

{

url:

`/sns/jscode2session?appid=${appId}&secret=${secret}&js_code=${js_code}&grant_type=authorization_code`

}

let

r1

=

await

UmiseReq

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論