微信小程序-微信登錄,支付

微信小程序官方文檔

概要

開發(fā)中涉及到登錄界面误窖,因為使用原生APP賬號登錄在小程序中幾乎不可行,所有急需開發(fā)
使用微信登錄微信小程序的接口

一 涉及API(application programming interface)

wx.login()

調(diào)用接口獲取登錄憑證code, 進而換取用戶登錄態(tài)信息,包括
(1)用戶的唯一標(biāo)識openid歌馍;
(2)本次登錄的會話密鑰session_key
用戶數(shù)據(jù)的加解密通訊需要依賴會話密鑰完成
code說明:用戶允許登錄后舆乔,回調(diào)內(nèi)容會帶上code赚瘦,有效期5分鐘,
開發(fā)者需要將code發(fā)送到服務(wù)器后臺报咳,使用code換取openid, session_key
code.png

code 換取session_key

是一個https接口椎咧,開發(fā)者服務(wù)器使用登錄憑證code獲取session_key , openid
session_key不應(yīng)該在網(wǎng)絡(luò)上傳輸(不要傳輸?shù)娇蛻舳耍?因為session_key是對用戶數(shù)據(jù)進行加密簽名的密鑰

接口URL

https://api.weixin.qq.com/sns/jscode2session
?appid=APPID
&secret=SECRET
&js_code=JSCODE
&grant_type=authorization_code
四個參數(shù)說明: 
(1)appid, 小程序唯一標(biāo)識
(2)secret 小程序的app 密鑰
(3)js_code 登錄時候獲取的code
(4)grant_type 授權(quán)類型玖详,填寫為 authorization_code
appid_and_secret.png

二 登錄流程

(1)客戶端(小程序)獲取code,傳送到后臺服務(wù)器
(2)后臺服務(wù)器獲取code邑退,結(jié)合appid竹宋,appsecret獲取openid,session_key地技;
(3)后臺服務(wù)器根據(jù)openid, session_key生成唯一的tokenID蜈七,
tokenID需要保證唯一性,設(shè)置一定時間的有效性
(4)后臺服務(wù)器生成的tokenID莫矗,需要存儲于相應(yīng)的數(shù)據(jù)庫中
(5)將tokenID返回到客戶端(小程序)飒硅,
小程序?qū)⒌玫降膖okenID存入本地緩存中,用于后續(xù)用戶獲取
openID作谚,session_key的憑證

三 微信支付

1 接口 wx.requestPayment()

包含參數(shù):
timeStamp 當(dāng)前的時間
nonceStr  隨機的字符串
package   統(tǒng)一下單接口返回的prepay_id 參數(shù)值
signType  簽名算法三娩,MD5
paySign  簽名

2 支付開發(fā)文檔

2.1 基礎(chǔ)知識-支付方式

刷卡支付,掃碼支付妹懒,公眾號支付雀监,App支付,小程序支付
分別介紹:
(1)刷卡支付: 用戶展示微信錢包內(nèi)的刷卡條碼、
二維碼給商戶系統(tǒng)掃描会前,直接完成支付的模式好乐,
線下面對面收銀的場景
(2)掃碼支付:商戶系統(tǒng)按照微信支付協(xié)議,生成支付二維碼瓦宜,
用戶用微信
掃一掃完成支付的模式蔚万,適用于PC網(wǎng)站支付,
實體店單品或者訂單支付临庇,媒體廣告支付等等場景
(3)公眾號支付: 是用戶在微信中打開商戶的H5頁面反璃,
商戶在H5頁面通過調(diào)用微信支付提供的 JSAPI 接口調(diào)用 
微信支付模塊 完成支付
應(yīng)用場景是: 用戶在微信公眾號內(nèi) 進入商家公眾號,
打開某個主頁面假夺,完成支付
用戶的好友在朋友圈淮蜈,聊天窗口等分享商家頁面鏈接, 
用戶點擊鏈接打開商家頁面侄泽,完成支付
將商戶頁面轉(zhuǎn)換成二維碼礁芦, 用戶掃碼后再微信瀏覽器中
打開頁面完成支付
(4)App支付 :移動端支付蜻韭,是商戶通過在移動端應(yīng)用
App中集成開發(fā)的SDK調(diào)用微信支付模塊完成支付的模式
(5)小程序支付:是商戶在微信小程序平臺內(nèi)實現(xiàn)支付功能

2.2基礎(chǔ)知識 - 名詞解釋

(1)[微信公眾平臺](http://mp.weixin.qq.com):
微信公眾賬號申請入口和管理后臺
商戶可以在公眾平臺提交基本資料悼尾,業(yè)務(wù)資料,財務(wù)資料肖方,
申請開通微信支付功能
(2)[微信開放平臺](http://open.weixin.qq.com):
商戶App接入微信支付開放平臺的申請入口闺魏,
通過此平臺可以申請微信App支付
(3)[微信商戶平臺](http://pay.weixin.qq.com)
微信支付相關(guān)的商戶功能集合,包括參數(shù)配置俯画,支付數(shù)據(jù)查詢和統(tǒng)計析桥,
在線退款,代金券艰垂,立減優(yōu)惠運營等功能
(4)[微信企業(yè)號](http://qy.weixin.qq.com)
企業(yè)號的申請入口和管理后臺泡仗,商戶可以在企業(yè)號中提交基本資料
等資料申請開通微信支付功能
(5)微信支付系統(tǒng)
完成微信支付流程中涉及的API接口,后臺業(yè)務(wù)處理系統(tǒng)猜憎,財務(wù)系統(tǒng)娩怎,
回調(diào)通知系統(tǒng)的總稱
(6)[微信小程序](https://mp.weixin.qq.com/debug/wxadoc/dev/)
微信提供給商戶實現(xiàn)App的一種輕應(yīng)用,開發(fā)起來簡單易用
(7)商戶后臺系統(tǒng)
商戶后臺處理業(yè)務(wù)系統(tǒng)的總稱胰柑,例如: 商戶網(wǎng)站截亦,收銀系統(tǒng),
進銷存系統(tǒng)柬讨,發(fā)貨系統(tǒng)崩瓤,客服系統(tǒng)等等
(8)商戶證書
微信提供的二進制文件,商戶系統(tǒng)發(fā)起和
微信支付后臺服務(wù)器通信請求的時候踩官,
作為微信支付后臺識別商戶真實身份的憑據(jù)
(9)簽名
商戶后臺和微信支付后臺根據(jù)相同的密鑰和算法生成一個結(jié)果却桶,
用于校驗雙方身份合法性
簽名的算法由微信支付制定并公開,常用的簽名方式有:
MD5蔗牡, SHA1颖系, SHA256畴嘶, HMAC等等
(10)JSAPI網(wǎng)頁支付
公眾號支付,可以在微信公眾號集晚,朋友圈窗悯,聊天會話中點擊頁面鏈接,
或者用微信掃一掃偷拔,掃描頁面地址二維碼
在微信中打開商戶的HTML5頁面蒋院,在頁面下單,完成支付
(11)支付密碼
用戶開通微信支付時候莲绰,單獨設(shè)置的密碼欺旧,
用于確認(rèn)支付完成交易授權(quán),與微信登錄密碼不相同
(12)Openid
用戶在小程序內(nèi)的身份標(biāo)識蛤签,不同的小程序擁有不同的openid
商戶后臺系統(tǒng)通過登錄授權(quán)辞友,支付通知,
查詢訂單等API可以獲取
用戶的openid震肮,主要用途判斷是否是同一個用戶

2.3 基礎(chǔ)規(guī)范-協(xié)議規(guī)則

接口規(guī)則
傳輸方式    HTTPS傳輸
提交方式    POST方法提交
數(shù)據(jù)格式    提交返回數(shù)據(jù)是 XML格式称龙, 根節(jié)點名為xml
字符編碼    UTF-8
簽名算法    MD5 后續(xù)會有其他算法
簽名要求    請求和接收數(shù)據(jù)需要校驗簽名
證書要求    調(diào)用申請退款  撤銷訂單接口需要商戶證書
判斷邏輯    先判斷協(xié)議字段返回  ,再判斷業(yè)務(wù)返回戳晌, 最后判斷交易狀態(tài)
參數(shù)規(guī)定
body字段格式要求
字段規(guī)則 ---商家名稱-銷售商品類目
樣例 ---(羅輯思維-圖書)
備注 ---線上電商 鲫尊,商家名稱必須為實際銷售商品的商家
交易金額
默認(rèn)為人民幣交易,接口中參數(shù)支付金額單位為分
參數(shù)值不能帶小數(shù)沦偎, 對賬單中的交易金額單位為元
外幣交易的支付金額精確到幣種的最小單位疫向,參數(shù)值不能帶小數(shù)點
交易類型
JSAPI---小程序支付統(tǒng)一下單接口 trade_type的傳參數(shù)可參考此處
貨幣類型
CNY:人民幣
時間
標(biāo)準(zhǔn)北京時間,東八區(qū)
時間戳
標(biāo)準(zhǔn)北京時間豪嚎,東八區(qū)  基礎(chǔ)單位是秒
商戶訂單號
商戶支付的訂單號由 商戶自定義生成搔驼, 微信支付要求商戶訂單號 保持唯一性
建議根據(jù)系統(tǒng)的時間加上隨機序列生成訂單號
重新發(fā)起一筆支付要使用原訂單號, 避免重復(fù)支付
已經(jīng)支付過或者已經(jīng)調(diào)用關(guān)閉訂單侈询, 撤銷的訂單號不能重新發(fā)起支付
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末舌涨,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子妄荔,更是在濱河造成了極大的恐慌泼菌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啦租,死亡現(xiàn)場離奇詭異哗伯,居然都是意外死亡,警方通過查閱死者的電腦和手機篷角,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門焊刹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事虐块×├模” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵贺奠,是天一觀的道長霜旧。 經(jīng)常有香客問我,道長儡率,這世上最難降的妖魔是什么挂据? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮儿普,結(jié)果婚禮上崎逃,老公的妹妹穿的比我還像新娘。我一直安慰自己眉孩,他們只是感情好个绍,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著浪汪,像睡著了一般巴柿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吟宦,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天篮洁,我揣著相機與錄音,去河邊找鬼殃姓。 笑死,一個胖子當(dāng)著我的面吹牛瓦阐,可吹牛的內(nèi)容都是我干的蜗侈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼睡蟋,長吁一口氣:“原來是場噩夢啊……” “哼踏幻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起戳杀,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤该面,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后信卡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體隔缀,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年傍菇,在試婚紗的時候發(fā)現(xiàn)自己被綠了猾瘸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖牵触,靈堂內(nèi)的尸體忽然破棺而出淮悼,到底是詐尸還是另有隱情,我是刑警寧澤揽思,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布袜腥,位于F島的核電站,受9級特大地震影響钉汗,放射性物質(zhì)發(fā)生泄漏瞧挤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一儡湾、第九天 我趴在偏房一處隱蔽的房頂上張望特恬。 院中可真熱鬧,春花似錦徐钠、人聲如沸癌刽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽显拜。三九已至,卻和暖如春爹袁,著一層夾襖步出監(jiān)牢的瞬間远荠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工失息, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留譬淳,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓盹兢,卻偏偏與公主長得像邻梆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子绎秒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容