日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微信 第三方登录

發布時間:2023/12/14 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信 第三方登录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://www.cnblogs.com/linjunjie/p/6378166.html#3902595

  • 從http://www.cnblogs.com/v-weiwang/p/5732423.htm
l 申請開發者賬號之內的就不累贅了,網上一大堆:

說下需求,一個網頁要在三類容器運行,公司app,微信自動登錄,瀏覽器。

假設是已經申請完成各平臺開發者賬號。

先來簡單的,微博和QQ

微博:

引入微博JS

<script src="http://tjs.sjs.sinajs.cn/open/api/js/wb.js?appkey=*******&debug=true" type="text/javascript" charset="utf-8"></script>

appkey中,填入你的微博開發者id(替換****)

1<span?id="wb_connect_btn">微博登錄按鈕</span>

在你的頁面微博登錄按鈕標簽上,加入以上id。頁面加載時,微博會自動加載樣式,你也可以自己強行修改。

<script>WB2.anyWhere(function (W) {W.widget.connectButton({id: "wb_connect_btn",type: '3,2',callback: {login: function (o) { //登錄后的回調函數
            console.log(o);thirdparty(null,null,o.avatar_hd, o.name ,3, o.id);//個人方法try{document.getElementsByClassName('loginout')[0].click();//頁面需求,當前頁面登錄完成之后,不進行跳轉,所以模擬點擊事件,讓微博賬號在當前域中退出。不影響下次登錄。(元素為微博動態添加)
               //微博沒有提供退出方法。下面的logout為另一種開發模式調用。
}
catch(e){console.log(e);}},logout: function () { //退出后的回調函數 }}});}); </script>

將以上標簽全部加入html中。

至此,只要在頁面中登錄之后,就能在控制臺看到返回數據。當然,測試要在微博注冊的域下

?QQ登錄:

和微博一樣,引入JavaScript文件

<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-appid="******" charset="utf-8"></script>

微博類似,替換為你的appid

<span id="qqLoginBtn"></span>

登錄標簽中加入id標識

然后JavaScript中加入以下代碼:

QC.Login({//btnId:插入按鈕的節點id,必選btnId:"qqLoginBtn",//用戶需要確認的scope授權項,可選,默認allscope:"all",//按鈕尺寸,可用值[A_XL| A_L| A_M| A_S| B_M| B_S| C_S],可選,默認B_Ssize: "B_S"}, function(reqData, opts){//登錄成功//根據返回數據,更換按鈕顯示狀態方法 console.log(reqData);//查看返回數據QC.Login.getMe(function(openId, accessToken){//獲取用戶的openIdconsole.log('QQOPENID:'+openId);thirdparty(null,null,reqData.figureurl_qq_2,reqData.nickname,1,openId);QC.Login.signOut();//退出QQ登錄調用事件});});

試要在QQ中注冊的域名下。重要的事情,再說一遍。

QQ和微博登錄,大致相同,只要引入JS文件,然后直接調用方法即可,QQ比微博更和諧,直接提供退出事件。上面代碼中有。。

現在來說最蛋疼的微信登錄。

微信登錄提供兩種方法:

第一種,掃碼登錄:

需要在微信開發者平臺中,注冊獲取appId。

微信登錄按鈕:

<span class="weixin-login"></span>

在你微信登錄按鈕上,添加點擊事件,執行以下代碼:

$('.weixin-login').on('click',function(){window.location.href='https://open.weixin.qq.com/connect/qrconnect?' +'appid=*******&redirect_uri=http%3a%2f%2fwww.xxxxxx.com%2f'+window.location.pathname.substr(1)+'&response_type=code&scope=snsapi_login&state=3d6be0a4035d839573b04816624a415e#wechat_redirect';});

需要替換:

redirect_url:要想傳當前url,直接encodeURIComponent(window.location.href) //當然,需要你自己進行拼接,不懂的留言

至此,當用戶點擊之后,跳轉至掃碼界面:

例如:https://passport.yhd.com/wechat/callback.do?code=CODE&state=3d6be0a4035d839573b04816624a415e

至此,拿到第一步令牌,code。在你的回調頁面中,你要獲取url中的code去和微信換取下一步的令牌。因為換取下一步的令牌需要涉及到跨域請求,但是微信不讓跨域請求,只能在后臺進行后續事項。

第二步,后臺請求:https://api.weixin.qq.com/sns/oauth2/access_token?appid=[APPID]&secret=[SECRET]&code=[CODE]&grant_type=authorization_code

替換中括號中的數據。(我走的get請求)。

返回以下數據:

{ "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE", "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL" }

最后一步就不說了:

https://api.weixin.qq.com/sns/userinfo?access_token=[ACCESS_TOKEN]&openid=[OPENID]

替換成上次請求獲取到的數據,再請求一次,獲獎用戶基本信息。

1、OAuth2.0

  OAuth(開放授權)是一個開放標準,允許用戶讓第三方應用訪問該用戶在某一網站上存儲的私密的資源(如照片,視頻,聯系人列表),而無需將用戶名和密碼提供給第三方應用。

允許用戶提供一個令牌而不是用戶名和密碼來訪問他們存放在特定服務提供者的數據。每一個令牌授權一個特定的網站(例如,視頻編輯網站)在特定的時段(例如,接下來的2小時內)內訪問特定的資源(例如僅僅是某一相冊中的視頻)。這樣,OAuth允許用戶授權第三方網站訪問他們存儲在另外的服務提供者上的信息,而不需要分享他們的訪問許可或他們數據的所有內容。2、目標我們這里主要模擬使用OAuth2.0,用戶通過掃描我們網頁應用的二維碼并進行授權登錄來獲取用戶的基本信息的過程。詳細的接口相關信息可以在微信開放平臺上查看:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&lang=zh_CN3、前期準備(獲取微信開發者權限)我們這里主要講的是網站(Web)應用,網站應用微信登錄是基于OAuth2.0協議標準構建的微信OAuth2.0授權登錄系統(即上面的協議)。在微信客戶端授權登錄(獲取用戶信息)的可以查看:http://www.cnblogs.com/0201zcr/p/5131602.html

  在進行微信OAuth2.在進行微信OAuth2.0授權登錄接入之前,在微信開放平臺注冊開發者帳號,并擁有一個已審核通過的網站應用,并獲得相應的AppID和AppSecret,申請微信登錄且通過審核后,可開始接入流程。

3.1、注冊開發者賬號可以在https://open.weixin.qq.com/?這里申請開發的賬號。由于是騰訊的網頁,這里可以直接通過?QQ號進行登錄。3.2、提交網站應用審核在已經登錄的界面中選擇“管理中心”——》網站應用——》創建網站應用將會彈出下面的界面填寫過后,還有有一個頁面需要填寫,提交一份紙質版申請書掃描件(會提供模板,我們下載再來填寫后,需蓋章,簽名),配置回調域名(掃碼登錄后會跳轉的頁面)等。之后提交審核即可,等微信審核通過,我們即可獲得我們需要的網頁應用的appid和AppSecret,并配置后回調的域名了(這三樣是我們開發所必須的)。3.3、開發者資質認證由于我們這里要使用微信登錄的接口,所以我們還需要向微信提出認證,只有認證了才能使用微信那些高級的接口。未認證的如下圖所示認證之后是這樣子的:我現在暫時沒有找到可以向公眾賬號那樣子的測試賬號的申請。如果有知道怎么可以申請到測試賬號的高手,希望能賜教一下。接下來,我們就可以開始我們的網頁微信掃碼登錄開發了。4、授權流程說明微信OAuth2.0授權登錄讓微信用戶使用微信身份安全登錄第三方應用或網站,在微信用戶授權登錄已接入微信OAuth2.0的第三方應用后,第三方可以獲取到用戶的接口調用憑證(access_token),通過access_token可以進行微信開放平臺授權關系接口調用,從而可實現獲取微信用戶基本開放信息和幫助用戶實現基礎開放功能等。

  微信OAuth2.0授權登錄目前支持authorization_code模式,適用于擁有server端的應用授權。該模式整體流程為:

1. 第三方發起微信授權登錄請求,微信用戶允許授權第三方應用后,微信會拉起應用或重定向到第三方網站,并且帶上授權臨時票據code參數; 2. 通過code參數加上AppID和AppSecret等,通過API換取access_token; 3. 通過access_token進行接口調用,獲取用戶基本數據資源或幫助用戶實現基本操作。

?  獲取access_token時序圖:

5、獲取網頁的二維碼當我們通過微信的認證,獲取到了appid和AppSecret,并配置了回調的域名。我們就已經可以獲取屬于我們網頁的二維碼了,獲取的方式很簡單,只需打開一個微信的鏈接,加上我們的appid和回調域名即可在網頁上面打開二維碼,用戶用微信客戶端掃碼并授權登錄之后即會跳轉到我們配置的回調域名下。注意:1、這里填寫的是域名(是一個字符串),而不是URL,因此請勿加http://等協議頭; 2、授權回調域名配置規范為全域名,比如需要網頁授權的域名為:www.qq.com,配置以后此域名下面的頁面http://www.qq.com/music.html 、 http://www.qq.com/login.html 都可以進行OAuth2.0鑒權。但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com無法進行OAuth2.0鑒權

5.1、請求url說明

  第三方使用網站應用授權登錄前請注意已獲取相應網頁授權作用域(scope=snsapi_login),則可以通過在PC端打開以下鏈接:

https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

?

?參數說明參數是否必須說明
appid應用唯一標識(前面認證網頁應用中獲得)
redirect_uri重定向地址,需要進行UrlEncode(前面認證網頁應用中獲得)
response_type填code
scope應用授權作用域,擁有多個作用域用逗號(,)分隔,網頁應用目前僅填寫snsapi_login即可
state用于保持請求和回調的狀態,授權請求后原樣帶回給第三方。該參數可用于防止csrf攻擊(跨站請求偽造攻擊),建議第三方帶上該參數,可設置為簡單的隨機數加session進行校驗
?返回說明用戶允許授權后,將會重定向到redirect_uri的網址上,并且帶上code和state參數redirect_uri?code=CODE&state=STATE

?  若用戶禁止授權,則重定向后不會帶上code參數,僅會帶上state參數

redirect_uri?state=STATE

5.2、事例:

  一號店的微信二維碼鏈接如下:

https://open.weixin.qq.com/connect/qrconnect?appid=wxbdc5610cc59c1631&redirect_uri=https%3A%2F%2Fpassport.yhd.com%2Fwechat%2Fcallback.do&response_type=code&scope=snsapi_login&state=3d6be0a4035d839573b04816624a415e#wechat_redirect

?  將其復制到瀏覽器中打開即可獲得一號店的二維碼,二維碼頁面如下:

  通過使用微信客戶端的掃一掃功能,掃描該二維碼,即會跳轉到上面填寫redirect_uri所在的地址上。假如用戶同意授權,這里就獲得了微信返回的code參數了。

6、獲取用戶信息

假如前面已經獲得code。我們可以通過code參數去獲取用戶openid和access_token,進而獲得用戶的信息。6.1、通過code參數獲取access_tokenhttps://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

?參數說明

參數是否必須說明
appid應用唯一標識,在微信開放平臺提交應用審核通過后獲得
secret應用密鑰AppSecret,在微信開放平臺提交應用審核通過后獲得
code填寫第一步獲取的code參數
grant_type填authorization_code
返回說明

正確的返回:

{ "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE", "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL" }參數說明
access_token接口調用憑證
expires_inaccess_token接口調用憑證超時時間,單位(秒)
refresh_token用戶刷新access_token
openid授權用戶唯一標識
scope用戶授權的作用域,使用逗號(,)分隔
?unionid當且僅當該網站應用已獲得該用戶的userinfo授權時,才會出現該字段。

錯誤返回樣例:

{"errcode":40029,"errmsg":"invalid code"}注意
  • code參數的超時時間是5分鐘,且每次請求的code參數的值都不一樣。
  • access_token的超時時間是32分鐘。
6.2、通過access_token獲取用戶的基本信息獲取的前提條件
  • access_token有效且為超時;
  • 微信用戶已授權給第三方應用賬號相應接口作用域(scope)【在二維碼生成連接那里填寫
對于接口作用域(scope),能調用的接口有以下:授權作用域(scope)接口接口說明
snsapi_base/sns/oauth2/access_token通過code換取access_token、refresh_token和已授權scope
/sns/oauth2/refresh_token刷新或續期access_token使用
/sns/auth檢查access_token有效性
snsapi_userinfo/sns/userinfo獲取用戶個人信息
使用snsapi_base作用域的授權是掃碼之后無需用戶點擊授權,掃碼后直接跳轉,用戶感覺不到授權了,但這種授權方式能獲取的數據量有限,這里我們要獲取用戶的基本信息,我們需要使用snsapi_userinfo授權。使用snsapi_userinfo授權,掃碼后出現類似于下面的授權界面此接口用于獲取用戶個人信息。開發者可通過OpenID來獲取用戶基本信息。特別需要注意的是,如果開發者擁有多個移動應用、網站應用和公眾帳號,可通過獲取用戶基本信息中的unionid來區分用戶的唯一性,因為只要是同一個微信開放平臺帳號下的移動應用、網站應用和公眾帳號,用戶的unionid是唯一的。換句話說,同一用戶,對同一個微信開放平臺下的不同應用,unionid是相同的。請注意,在用戶修改微信頭像后,舊的微信頭像URL將會失效,因此開發者應該自己在獲取用戶信息后,將頭像圖片保存下來,避免微信頭像URL失效后的異常情況。https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

?參數說明

參數是否必須說明
access_token調用憑證(上一個請求中獲得)
openid普通用戶的標識,對當前開發者帳號唯一(上一個請求中獲得)
? ? ? ?lang? 否國家地區語言版本,zh_CN 簡體,zh_TW 繁體,en 英語,默認為zh-CN
返回說明

正確的Json返回結果:

{ "openid":"OPENID", "nickname":"NICKNAME", "sex":1, "province":"PROVINCE", "city":"CITY", "country":"COUNTRY", "headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0", "privilege":[ "PRIVILEGE1", "PRIVILEGE2" ], "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"}參數說明
openid普通用戶的標識,對當前開發者帳號唯一
nickname普通用戶昵稱
sex普通用戶性別,1為男性,2為女性
province普通用戶個人資料填寫的省份
city普通用戶個人資料填寫的城市
country國家,如中國為CN
headimgurl用戶頭像,最后一個數值代表正方形頭像大小(有0、46、64、96、132數值可選,0代表640*640正方形頭像),用戶沒有頭像時該項為空
privilege用戶特權信息,json數組,如微信沃卡用戶為(chinaunicom)
unionid用戶統一標識。針對一個微信開放平臺帳號下的應用,同一用戶的unionid是唯一的。

錯誤的Json返回示例:

{ "errcode":40003,"errmsg":"invalid openid" }

7、總結?

  最近著手開發了微信網頁掃碼登錄和公眾號授權登錄收獲頗豐,兩者的開發很類似。以下是我個人摸索過程中發現的兩者的異同:

  • 兩者都可以通過微信客戶端掃碼授權的方式,讓第三方頁面獲得微信用戶的一些基本信息(昵稱、性別、所在地、在微信唯一標示等……)。他們都是通過提供一個鏈接讓用戶授權的方式。但網頁版需要在頁面打開二維碼之后授權,而公眾號則需要用戶先關注了我們的公眾號,然后點開公眾號里面的鏈接,確認授權即可。
  • 網頁掃碼登錄需要將授權的鏈接(二維碼鏈接)在網頁中打開、而公眾號授權登錄的鏈接必須要微信客戶端中打開。
  • 無論網頁掃碼登錄還是在公眾號中授權登錄,都是通過授權的方式獲得一個code參數,之后通過code參數獲取access_token和openid和通過access_token和openid去獲取用戶的基本信息的請求鏈接是一樣的。
  • 在開發公眾號授權登錄的過程中,我發現了有測試賬號的提供,足以滿足我們的測試和開發,但在開發網頁掃碼時,暫時未發現哪里能獲取測試賬號,我是通過申請獲取的。(希望知道哪里有測試賬號的請求高手賜教)。








第一步:獲取AppID?AppSecret(不做解釋,自己去微信公眾平臺申請)

?

第二步:生成掃描二維碼,獲取code
https://open.weixin.qq.com/connect/qrconnect?appid=AppID&redirect_uri=http://www.baidu.com&response_type=code&scope=snsapi_login&state=2014#wechat_redirect

第三步:通過code獲取access_token
https://api.weixin.qq.com/sns/oauth2/access_token?appid=AppID&secret=AppSecret&code=00294221aeb06261d5966&grant_type=authorization_code第四步:因接口頻率有次數限制,如果需要,刷新access_tokenhttps://api.weixin.qq.com/sns/oauth2/refresh_token?appid=AppID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

????第五步:通過access_token和openid獲取用戶的基礎信息,包括頭像、昵稱、性別、地區https://api.weixin.qq.com/sns/userinfo?access_token=bezXEiiBSKSxW0eoblIewFNHqAG-PyW9OqI_L81E4ZCi2cFpfoJTyQc0xKlPPCtqK1kLJfiRbVrpoOVLw7fjpqh52bn7C68SHa2HSgYsVPXZPvJvtayDa57-_7TeHYw&openid=o39YsbmuV_bIPGpj1MTe

這是接口在線調試工具:http://mp.weixin.qq.com/debug/
這是錯誤碼說明文檔:http://mp.weixin.qq.com/wiki/17/fa4e1434e57290788bde25603fa2fcbd.html? 另外需要特別注意,如果開發者有在多個公眾號,或在公眾號、移動應用之間統一用戶帳號的需求,需要前往微信開放平臺(open.weixin.qq.com)綁定公眾號后,才可利用UnionID機制來滿足上述需求,文檔:
http://mp.weixin.qq.com/wiki/14/bb5031008f1494a59c6f71fa0f319c66.html

微信網頁第三方登錄原理


微信開放平臺和公眾平臺的區別

1.公眾平臺面向的時普通的用戶,比如自媒體和媒體,企業官方微信公眾賬號運營人員使用,當然你所在的團隊或者公司有實力去開發一些內容,也可以調用公眾平臺里面的接口,比如自定義菜單,自動回復,查詢功能。目前大多數微信通過認證之后,都在做這個事情。

mp.weixin.qq.com


2.開放平臺面向的開發者和第三方獨立軟件開發商。我覺得開發平臺最大的開放就是微信登錄。當年騰訊沒有花大力氣去做統一登錄這個事情,導致目前各個網站都要弄一套登錄機制。好在他們現在認清了局勢。開發者或軟件開發商,通過微信開放提供的平臺和接口,可以開發適合企業的電子商務網站,掃描二維碼進去一個游戲界面,然后去購買商品等。當然后續開放平臺要開放支付接口,那么類似口袋通這種軟件開發廠商,就可以為大型,中小企業提供微信小店這種服務和軟件了。

open.weixin.qq.com

?

公眾平臺就是服務號訂閱號的管理開發后臺。

開發平臺說得通俗一點就是實現手機里邊安裝軟件的內容一鍵分享朋友圈;

下面的第三方登陸就是依托于開放平臺(open.weixin.qq.com)的功能

?

準備工作

網站應用微信登錄是基于OAuth2.0協議標準構建的微信OAuth2.0授權登錄系統。

在進行微信OAuth2.在進行微信OAuth2.0授權登錄接入之前,在微信開放平臺注冊開發者帳號,并擁有一個已審核通過的網站應用,并獲得相應的AppID和AppSecret,申請微信登錄且通過審核后,可開始接入流程。

授權流程說明

微信OAuth2.0授權登錄讓微信用戶使用微信身份安全登錄第三方應用或網站,在微信用戶授權登錄已接入微信OAuth2.0的第三方應用后,第三方可以獲取到用戶的接口調用憑證(access_token),通過access_token可以進行微信開放平臺授權關系接口調用,從而可實現獲取微信用戶基本開放信息和幫助用戶實現基礎開放功能等。

微信OAuth2.0授權登錄目前支持authorization_code模式,適用于擁有server端的應用授權。該模式整體流程為:

  1. 第三方發起微信授權登錄請求,微信用戶允許授權第三方應用后,微信會拉起應用或重定向到第三方網站,并且帶上授權臨時票據code參數;

  2. 通過code參數加上AppID和AppSecret等,通過API換取access_token;

  3. 通過access_token進行接口調用,獲取用戶基本數據資源或幫助用戶實現基本操作。

獲取access_token時序圖:

第一步:請求CODE

第三方使用網站應用授權登錄前請注意已獲取相應網頁授權作用域(scope=snsapi_login),則可以通過在PC端打開以下鏈接:
https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

若提示“該鏈接無法訪問”,請檢查參數是否填寫錯誤,如redirect_uri的域名與審核時填寫的授權域名不一致或scope不為snsapi_login。

參數說明
參數是否必須說明
appid應用唯一標識
redirect_uri重定向地址,需要進行UrlEncode
response_type填code
scope應用授權作用域,擁有多個作用域用逗號(,)分隔,網頁應用目前僅填寫snsapi_login即可
state用于保持請求和回調的狀態,授權請求后原樣帶回給第三方。該參數可用于防止csrf攻擊(跨站請求偽造攻擊),建議第三方帶上該參數,可設置為簡單的隨機數加session進行校驗
返回說明

用戶允許授權后,將會重定向到redirect_uri的網址上,并且帶上code和state參數

redirect_uri?code=CODE&state=STATE

若用戶禁止授權,則重定向后不會帶上code參數,僅會帶上state參數

redirect_uri?state=STATE

請求示例

登錄一號店網站應用

https://passport.yhd.com/wechat/login.do

打開后,一號店會生成state參數,跳轉到
https://open.weixin.qq.com/connect/qrconnect?appid=wxbdc5610cc59c1631&redirect_uri=https%3A%2F%2Fpassport.yhd.com%2Fwechat%2Fcallback.do&response_type=code&scope=snsapi_login&state=3d6be0a4035d839573b04816624a415e#wechat_redirect

微信用戶使用微信掃描二維碼并且確認登錄后,PC端會跳轉到

https://passport.yhd.com/wechat/callback.do?code=CODE&state=3d6be0a4035d839573b04816624a415e

為了滿足網站更定制化的需求,我們還提供了第二種獲取code的方式,支持網站將微信登錄二維碼內嵌到自己頁面中,用戶使用微信掃碼授權后通過JS將code返回給網站。

JS微信登錄主要用途:網站希望用戶在網站內就能完成登錄,無需跳轉到微信域下登錄后再返回,提升微信登錄的流暢性與成功率。 網站內嵌二維碼微信登錄JS實現辦法:

步驟1:在頁面中先引入如下JS文件(支持https):

<script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>

步驟2:在需要使用微信登錄的地方實例以下JS對象:

??????????????????????????var obj = new WxLogin({

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? id:"login_container",?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? appid: "",?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? scope: "",?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? redirect_uri: "",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? state: "",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? style: "",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? href: ""

? ? ? ? ? ? ? ? ? ? ? ? ? ? });

參數說明
參數是否必須說明
id第三方頁面顯示二維碼的容器id
appid應用唯一標識,在微信開放平臺提交應用審核通過后獲得
scope應用授權作用域,擁有多個作用域用逗號(,)分隔,網頁應用目前僅填寫snsapi_login即可
redirect_uri重定向地址,需要進行UrlEncode
state用于保持請求和回調的狀態,授權請求后原樣帶回給第三方。該參數可用于防止csrf攻擊(跨站請求偽造攻擊),建議第三方帶上該參數,可設置為簡單的隨機數加session進行校驗
style提供"black"、"white"可選,默認為黑色文字描述。詳見文檔底部FAQ
href自定義樣式鏈接,第三方可根據實際需求覆蓋默認樣式。詳見文檔底部FAQ

?

第二步:通過code獲取access_token

通過code獲取access_token

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

參數說明
參數是否必須說明
appid應用唯一標識,在微信開放平臺提交應用審核通過后獲得
secret應用密鑰AppSecret,在微信開放平臺提交應用審核通過后獲得
code填寫第一步獲取的code參數
grant_type填authorization_code
返回說明

正確的返回:

{?
"access_token":"ACCESS_TOKEN",?
"expires_in":7200,?
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",?
"scope":"SCOPE","unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"}

?

參數說明
access_token接口調用憑證
expires_inaccess_token接口調用憑證超時時間,單位(秒)
refresh_token用戶刷新access_token
openid授權用戶唯一標識
scope用戶授權的作用域,使用逗號(,)分隔
?unionid

只有在用戶將公眾號綁定到微信開放平臺帳號后,才會出現該字段。

錯誤返回樣例:

{"errcode":40029,"errmsg":"invalid code"}

刷新access_token有效期

access_token是調用授權關系接口的調用憑證,由于access_token有效期(目前為2個小時)較短,當access_token超時后,可以使用refresh_token進行刷新,access_token刷新結果有兩種:

  • 1. 若access_token已超時,那么進行refresh_token會獲取一個新的access_token,新的超時時間;

  • 2. 若access_token未超時,那么進行refresh_token不會改變access_token,但超時時間會刷新,相當于續期access_token。

  • refresh_token擁有較長的有效期(30天),當refresh_token失效的后,需要用戶重新授權。

    請求方法

    獲取第一步的code后,請求以下鏈接進行refresh_token:

    https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

    參數說明
    參數是否必須說明
    appid應用唯一標識
    grant_type填refresh_token
    refresh_token填寫通過access_token獲取到的refresh_token參數
    返回說明

    正確的返回:

    {?
    "access_token":"ACCESS_TOKEN",?
    "expires_in":7200,?
    "refresh_token":"REFRESH_TOKEN",?
    "openid":"OPENID",?
    "scope":"SCOPE"?
    }

    參數說明
    access_token接口調用憑證
    expires_inaccess_token接口調用憑證超時時間,單位(秒)
    refresh_token用戶刷新access_token
    openid授權用戶唯一標識
    scope用戶授權的作用域,使用逗號(,)分隔

    ?

    錯誤返回樣例:

    {"errcode":40030,"errmsg":"invalid refresh_token"}

    注意:

    1、Appsecret 是應用接口使用密鑰,泄漏后將可能導致應用數據泄漏、應用的用戶數據泄漏等高風險后果;存儲在客戶端,極有可能被惡意竊取(如反編譯獲取Appsecret);

    2、access_token 為用戶授權第三方應用發起接口調用的憑證(相當于用戶登錄態),存儲在客戶端,可能出現惡意獲取access_token 后導致的用戶數據泄漏、用戶微信相關接口功能被惡意發起等行為;

    3、refresh_token 為用戶授權第三方應用的長效憑證,僅用于刷新access_token,但泄漏后相當于access_token 泄漏,風險同上。

    ?

    建議將secret、用戶數據(如access_token)放在App云端服務器,由云端中轉接口調用請求。

    ?
    第三步:通過access_token調用接口

    獲取access_token后,進行接口調用,有以下前提:

  • 1. access_token有效且未超時;

  • 2. 微信用戶已授權給第三方應用帳號相應接口作用域(scope)。

  • ?

    對于接口作用域(scope),能調用的接口有以下:

    授權作用域(scope)接口接口說明
    snsapi_base/sns/oauth2/access_token通過code換取access_token、refresh_token和已授權scope
    /sns/oauth2/refresh_token刷新或續期access_token使用
    /sns/auth檢查access_token有效性
    snsapi_userinfo/sns/userinfo獲取用戶個人信息

    其中snsapi_base屬于基礎接口,若應用已擁有其它scope權限,則默認擁有snsapi_base的權限。使用snsapi_base可以讓移動端網頁授權繞過跳轉授權登錄頁請求用戶授權的動作,直接跳轉第三方網頁帶上授權臨時票據(code),但會使得用戶已授權作用域(scope)僅為snsapi_base,從而導致無法獲取到需要用戶授權才允許獲得的數據和基礎功能。

    接口調用方法可查閱《微信授權關系接口調用指南》

    F.A.Q
    1. 什么是授權臨時票據(code)?

    答:第三方通過code進行獲取access_token的時候需要用到,code的超時時間為10分鐘,一個code只能成功換取一次access_token即失效。code的臨時性和一次保障了微信授權登錄的安全性。第三方可通過使用https和state參數,進一步加強自身授權登錄的安全性。

    ?

    2. 什么是授權作用域(scope)?

    答:授權作用域(scope)代表用戶授權給第三方的接口權限,第三方應用需要向微信開放平臺申請使用相應scope的權限后,使用文檔所述方式讓用戶進行授權,經過用戶授權,獲取到相應access_token后方可對接口進行調用。

    3. 網站內嵌二維碼微信登錄JS代碼中style字段作用?

    答:第三方頁面顏色風格可能為淺色調或者深色調,若第三方頁面為淺色背景,style字段應提供"black"值(或者不提供,black為默認值),則對應的微信登錄文字樣式為黑色。相關效果如下:

    若提供"white"值,則對應的文字描述將顯示為白色,適合深色背景。相關效果如下:

    4.網站內嵌二維碼微信登錄JS代碼中href字段作用?

    答:如果第三方覺得微信團隊提供的默認樣式與自己的頁面樣式不匹配,可以自己提供樣式文件來覆蓋默認樣式。舉個例子,如第三方覺得默認二維碼過大,可以提供相關css樣式文件,并把鏈接地址填入href字段

    .impowerBox .qrcode {width: 200px;}
    .impowerBox .title {display: none;}
    .impowerBox .info {width: 200px;}
    .status_icon {display:none}
    .impowerBox .status {text-align: center;}?

    ?

    相關效果如下:

    通過code獲取access_token
    接口說明

    通過code獲取access_token的接口。

    請求說明

    http請求方式: GET

    https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

    參數說明
    參數是否必須說明
    appid應用唯一標識,在微信開放平臺提交應用審核通過后獲得
    secret應用密鑰AppSecret,在微信開放平臺提交應用審核通過后獲得
    code填寫第一步獲取的code參數
    grant_type填authorization_code
    返回說明

    正確的返回:

    {?
    "access_token":"ACCESS_TOKEN",?
    "expires_in":7200,?
    "refresh_token":"REFRESH_TOKEN",
    "openid":"OPENID",?
    "scope":"SCOPE"?
    }

    參數說明
    access_token接口調用憑證
    expires_inaccess_token接口調用憑證超時時間,單位(秒)
    refresh_token用戶刷新access_token
    openid授權用戶唯一標識
    scope用戶授權的作用域,使用逗號(,)分隔

    錯誤返回樣例:

    {
    "errcode":40029,"errmsg":"invalid code"
    }

    刷新或續期access_token使用
    接口說明

    access_token是調用授權關系接口的調用憑證,由于access_token有效期(目前為2個小時)較短,當access_token超時后,可以使用refresh_token進行刷新,access_token刷新結果有兩種:

  • 1. 若access_token已超時,那么進行refresh_token會獲取一個新的access_token,新的超時時間;

  • 2.若access_token未超時,那么進行refresh_token不會改變access_token,但超時時間會刷新,相當于續期access_token。

  • refresh_token擁有較長的有效期(30天),當refresh_token失效的后,需要用戶重新授權。

    請求方法

    使用/sns/oauth2/access_token接口獲取到的refresh_token進行以下接口調用:

    http請求方式: GET

    https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

    參數說明
    參數是否必須說明
    appid應用唯一標識
    grant_type填refresh_token
    refresh_token填寫通過access_token獲取到的refresh_token參數
    返回說明

    正確的返回:

    {?
    "access_token":"ACCESS_TOKEN",?
    "expires_in":7200,?
    "refresh_token":"REFRESH_TOKEN",?
    "openid":"OPENID",?
    "scope":"SCOPE"?
    }

    參數說明
    access_token接口調用憑證
    expires_inaccess_token接口調用憑證超時時間,單位(秒)
    refresh_token用戶刷新access_token
    openid授權用戶唯一標識
    scope用戶授權的作用域,使用逗號(,)分隔

    錯誤返回樣例:

    {
    "errcode":40030,"errmsg":"invalid refresh_token"
    }

    接口說明

    檢驗授權憑證(access_token)是否有效

    請求說明

    http請求方式: GET

    https://api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID

    參數說明
    參數是否必須說明
    access_token調用接口憑證
    openid普通用戶標識,對該公眾帳號唯一
    返回說明

    正確的Json返回結果:

    {?
    "errcode":0,"errmsg":"ok"
    }

    錯誤的Json返回示例:

    {?
    "errcode":40003,"errmsg":"invalid openid"
    }

    獲取用戶個人信息(UnionID機制)
    接口說明

    此接口用于獲取用戶個人信息。開發者可通過OpenID來獲取用戶基本信息。特別需要注意的是,如果開發者擁有多個移動應用、網站應用和公眾帳號,

    可通過獲取用戶基本信息中的unionid來區分用戶的唯一性,因為只要是同一個微信開放平臺帳號下的移動應用、網站應用和公眾帳號,用戶的unionid是唯一的。換句話說,同一用戶,對同一個微信開放平臺下的不同應用,unionid是相同的。

    請求說明

    http請求方式: GET

    https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

    參數說明
    參數是否必須說明
    access_token調用憑證
    openid普通用戶的標識,對當前開發者帳號唯一
    返回說明

    正確的Json返回結果:

    {?
    "openid":"OPENID",
    "nickname":"NICKNAME",
    "sex":1,
    "province":"PROVINCE",
    "city":"CITY",
    "country":"COUNTRY",
    "headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
    "privilege":[
    "PRIVILEGE1",?
    "PRIVILEGE2"
    ],
    "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"

    }

    參數說明
    openid普通用戶的標識,對當前開發者帳號唯一
    nickname普通用戶昵稱
    sex普通用戶性別,1為男性,2為女性
    province普通用戶個人資料填寫的省份
    city普通用戶個人資料填寫的城市
    country國家,如中國為CN
    headimgurl用戶頭像,最后一個數值代表正方形頭像大小(有0、46、64、96、132數值可選,0代表640*640正方形頭像),用戶沒有頭像時該項為空
    privilege用戶特權信息,json數組,如微信沃卡用戶為(chinaunicom)
    unionid用戶統一標識。針對一個微信開放平臺帳號下的應用,同一用戶的unionid是唯一的。

    錯誤的Json返回示例:

    {?
    "errcode":40003,"errmsg":"invalid openid"
    }

    調用頻率限制
    接口名頻率限制
    通過code換取access_token1萬/分鐘
    刷新access_token5萬/分鐘
    獲取用戶基本信息5萬/分鐘




    第一步:填寫服務器配置

    第二步:驗證服務器地址的有效性

    第三步:依據接口文檔實現業務邏輯

    用戶向公眾號發送消息時,公眾號方收到的消息發送者是一個OpenID,是使用用戶微信號加密后的結果,每個用戶對每個公眾號有一個唯一的OpenID。此外,由于開發者經常有需在多個平臺(移動應用、網站、公眾帳號)之間共通用戶帳號,統一帳號體系的需求,微信開放平臺(open.weixin.qq.com)提供了UnionID機制。開發者可通過OpenID來獲取用戶基本信息,而如果開發者擁有多個應用(移動應用、網站應用和公眾帳號,公眾帳號只有在被綁定到微信開放平臺帳號下后,才會獲取UnionID),可通過獲取用戶基本信息中的UnionID來區分用戶的唯一性,

    1.獲取access_token

    公眾號可以使用AppID和AppSecret調用本接口來獲取access_token;

    接口調用:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

    2.獲知微信服務器的IP地址列表:https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=ACCESS_TOKEN

    自定義菜單

    自定義菜單接口可實現多種類型按鈕,如下:

    ?1、click:點擊推事件

    用戶點擊click類型按鈕后,微信服務器會通過消息接口推送消息類型為event 的結構給開發者(參考消息接口指南),并且帶上按鈕中開發者填寫的key值,開發者可以通過自定義的key值與用戶進行交互;

    2、view:跳轉URL

    用戶點擊view類型按鈕后,微信客戶端將會打開開發者在按鈕中填寫的網頁URL,可與網頁授權獲取用戶基本信息接口結合,獲得用戶基本信息。

    3、scancode_push:掃碼推事件

    4、scancode_waitmsg:掃碼推事件且彈出“消息接收中”提示框

    5、pic_sysphoto:彈出系統拍照發圖

    6、pic_photo_or_album:彈出拍照或者相冊發圖
    7、pic_weixin:彈出微信相冊發圖器

    8、location_select:彈出地理位置選擇器

    9、media_id:下發消息(除文本消息)

    10、view_limited:跳轉圖文消息URL

    請注意,3到8的所有事件,僅支持微信iPhone5.4.1以上版本,和Android5.4以上版本的微信用戶,舊版本微信用戶點擊后將沒有回應,開發者也不能正常接收到事件推送。9和10,是專門給第三方平臺旗下未微信認證(具體而言,是資質認證未通過)的訂閱號準備的事件類型,它們是沒有事件推送的,能力相對受限,其他類型的公眾號不必使用。

    ?

    微信網頁授權
    如果用戶在微信客戶端中訪問第三方網頁,公眾號可以通過微信網頁授權機制,來獲取用戶基本信息,進而實現業務邏輯。
    1.到公眾平臺官網中的開發者中心頁配置授權回調域名
    snsapi_base 只獲取到用戶的openid snsapi_userinfo 用來獲取用戶的基本信息

    關于網頁授權access_token和普通access_token的區別 1、微信網頁授權是通過OAuth2.0機制實現的,在用戶授權給公眾號后,公眾號可以獲取到一個網頁授權特有的接口調用憑證(網頁授權access_token),通過網頁授權access_token可以進行授權后接口調用,如獲取用戶基本信息; 2、其他微信接口,需要通過基礎支持中的“獲取access_token”接口來獲取到的普通access_token調用。 網頁授權獲取用戶基本信息也遵循UnionID機制,可通過獲取用戶基本信息中的unionid來區分用戶的唯一性 具體而言,網頁授權流程分為四步:
      • 1?第一步:用戶同意授權,獲取code
      • 2?第二步:通過code換取網頁授權access_token
      • 3?第三步:刷新access_token(如果需要)
      • 4?第四步:拉取用戶信息(需scope為 snsapi_userinfo)
      • 5?附:檢驗授權憑證(access_token)是否有效
    ?
    微信網頁授權自我總結:

    首先打開OAuth 配置;確定Scopes是snsapi_base還是snsapi_userinfo?

    1、以snsapi_base為scope發起的網頁授權,是用來獲取進入頁面的用戶的openid的,并且是靜默授權并自動跳轉到回調頁的。用戶感知的就是直接進入了回調頁(往往是業務頁面) 2、以snsapi_userinfo為scope發起的網頁授權,是用來獲取用戶的基本信息的。但這種授權需要用戶手動同意,并且由于用戶同意過,所以無須關注,就可在授權后獲取該用戶的基本信息。

    然后可通過

    $wechat = app('wechat');
    $oauth = $wechat->oauth;
    $wechat_user = $oauth->user();
    實例來獲取用戶信息;從中拿去到對應微信的openid;
    亦或者也可通過微信公眾平臺文檔中的接口逐步獲取code,access_token等

    如果需要微信授權登錄的情況下,獲取到用戶的信息之后可繼續邏輯操作。比如:判斷用戶如果有登錄過就直接跳轉到網站首頁或者個人中心;若未登錄需授權登錄方可繼續下一步操作。
    微信JS-SDK說明文檔
    微信JS-SDK是微信公眾平臺面向網頁開發者提供的基于微信內的網頁開發工具包。網頁開發者可借助微信高效地使用拍照、選圖、語音、位置等手機系統的能力,同時可以直接使用微信分享、掃一掃、卡券、支付等微信特有的能力,為微信用戶提供更優質的網頁體驗。

    JSSDK使用步驟

    步驟一:綁定域名

    步驟二:引入JS文件

    步驟三:通過config接口注入權限驗證配置

    步驟四:通過ready接口處理成功驗證

    所有接口調用都必須在config接口獲得結果之后,config是一個客戶端的異步操作,所以如果需要在頁面加載時就調用相關接口,則須把相關接口放在ready函數中調用來確保正確執行。對于用戶觸發時才調用的接口,則可以直接調用,不需要放在ready函數中

    判斷當前客戶端版本是否支持指定JS接口

    wx.checkJsApi({jsApiList: ['chooseImage'], // 需要檢測的JS接口列表,所有JS接口列表見附錄2,success: function(res) {// 以鍵值對的形式返回,可用的api值true,不可用為false// 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}} });

    獲取“分享給朋友”按鈕點擊狀態及自定義分享內容接口

    wx.onMenuShareAppMessage({title: '', // 分享標題desc: '', // 分享描述link: '', // 分享鏈接imgUrl: '', // 分享圖標type: '', // 分享類型,music、video或link,不填默認為linkdataUrl: '', // 如果type是music或video,則要提供數據鏈接,默認為空success: function () { // 用戶確認分享后執行的回調函數},cancel: function () { // 用戶取消分享后執行的回調函數} });

    相關例子:

    ?

    開發公眾號需要用到微信公眾平臺的服務號,不能是訂閱號;因為訂閱號可能會對一些權限有限制;從而不能使用到安正超給我們提供的laravel-wechat當中的一些方法和package.

    在開發公眾號之前我們需要在公眾平臺的基本配置里面拿到AppId、AppSecret、URL、Token、AESkey.

    1.安裝包文件:composer require?"overtrue/laravel-wechat:~3.0"

    2.配置:

    (1)注冊?ServiceProvider:

      Overtrue\LaravelWechat\ServiceProvider::class,

    (2)添加外觀到?config/app.php?中的?aliases?部分:

    'EasyWeChat' => Overtrue\LaravelWechat\Facade::class,

    (3)創建配置文件:

      php artisan vendor:publish

    創建成功之后進入到config/wehcat.php文件當中找到appid,secret,token;然后在.env文件中進行配置

    然后創建路由:

      Route::any('/wechat',?'WechatController@serve');

    這里用到any請求的原因是因為是通過get請求驗證的,但后面發送消息是通過post請求發送的。

    創建控制器WechatController:

    <?php namespace App\Http\Controllers; use Log; class WechatController extends Controller { /** * 處理微信的請求消息 * * @return string */ public function serve() { Log::info('request arrived.'); # 注意:Log 為 Laravel 組件,所以它記的日志去 Laravel 日志看,而不是 EasyWeChat 日志 $wechat = app('wechat'); $wechat->server->setMessageHandler(function($message){ return "歡迎關注 overtrue!"; }); Log::info('return response.'); return $wechat->server->serve();//這一句是對微信進行了驗證 } }
    最后把這一段代碼publish到與服務器同步,再對之前公眾平臺的基本配置進行提交,提交成功之后在接口權限中的網頁授權獲取用戶信息處點擊修改;把相對應的域名放上去,如果沒有放上去,它的權限也就獲取不到。



    紅包接口調用:

    在使用紅包請求功能的時候,注意mch_billno(商戶訂單號)這個參數;

    商戶訂單號(每個訂單號必須唯一)

    組成:?mch_id+yyyymmdd+10位一天內不能重復的數字。

    微信支付:

    用easywechat來開發微信支付功能,步驟如下:

    ?

    一,需要有一個商品下單頁面,頁面上有你的商品的信息,還要有購買數量,和一個購買按鈕。

    ? ? ? ? 用戶在這個頁面瀏覽商品信息的時候,可以選擇購買的數量,然后點擊提交進入下一個頁面。

    ? ? ? ?(這個頁面,跟淘寶的商品購買頁面一樣。)

    ?

    二,創建一個頁面,接收上面一步提交來的數據,然后做如下計算 。

    ?

    ? ? ? ?1,根據商品ID或是提交來的商品信息,生成商品的參數數組。

    ?

    ?

    [php]?view plain?copy?
  • $product?=?[??
  • ????'trade_type'???????=>?'JSAPI',?//?微信公眾號支付填JSAPI??
  • ????'body'?????????????=>?'一盒火柴',??
  • ????'detail'???????????=>?'一盒火柴',??
  • ????'out_trade_no'?????=>?'MYERPORDERID12345678',?//?這是自己ERP系統里的訂單ID,不重復就行。??
  • ????'total_fee'????????=>?8888,?//?金額,這里的8888分人民幣。單位只能是分。??
  • ????'notify_url'???????=>?'http://www.xxx.com/order_notify',?//?支付結果通知網址,如果不設置則會使用配置里的默認地址 ?(填寫發起支付請求的網址)
  • ????'openid'???????????=>?'you-open-id',?//?這個不能少,少了要報錯。??
  • ????//?...??基本上這些參數就夠了,或者參考微信文檔自行添加刪除。??
  • ];??

  • ? ? ? ? 2,接下來,生成商品對象。

    ?

    ?

    ?

    [php]?view plain?copy?
  • $order?=?new?Order($product);??

  • ? ? ? ? 3,再接下來,要進行調用前計算了。

    ?

    ?

    ?

    [php]?view plain?copy?
  • $app?=?new?Application(config('wechat'));??
  • $payment?=?$app->payment;??
  • //統一下單(像公眾號支付、掃碼支付、APP支付都使用這個接口)
  • $result?=?$payment->prepare($order);?//?這里的order是上面一步得來的。?這個prepare()幫你計算了校驗碼,幫你獲取了prepareId.省心。
  • //刷卡支付使用下面這個接口:
  • //$result = $payment->pay($order);
  • $prepayId?=?null;??
  • if?($result->return_code?==?'SUCCESS'?&&?$result->result_code?==?'SUCCESS'){??
  • ????$prepayId?=?$result->prepay_id;?//?這個很重要。有了這個才能調用支付。??
  • }?else?{??
  • ????var_dump($result);??
  • ????die("出錯了。");??//?出錯就說出來,不然還能怎樣???
  • }??
  • $config?=?$payment->configForJSSDKPayment($prepayId);?//?這個方法是取得js里支付所必須的參數用的。?沒這個啥也做不了,除非你自己把js的參數生成一遍??
  • ?

    ?

    ? ? ? ? 4,就快進入正題,但是,還沒完。還要取得一個數據。

    ?

    ?

    [php]?view plain?copy?
  • $app?=?new?Application(config('wechat'));??
  • $js?=?$app->js;??//?這個是jssdk里頁面上需要用到的js參數信息。??


  • ?

    ? ? ? ? 5,上面獲得的$js 和 $config數據,要在頁面里顯示出來。

    ? ? ? ? ? ? ? ? 注意,上面幾步都不涉及顯示,只是在生成頁面顯示所需要的數據。

    ? ? ? ? ? ? ? ? 現在才需要把這些顯示在頁面上。

    ?

    ?

    [php]?view plain?copy?
  • <script?src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"?type="text/javascript"?charset="utf-8"></script>??
  • <script?type="text/javascript"?charset="utf-8">??
  • ????wx.config({{?$js->config(array('chooseWXPay'))?}});??
  • </script>
  • <script>??
  • ????$(function(){??
  • ??
  • ????????$(".btn-do-it").click(function(){??
  • ????????????wx.chooseWXPay({??
  • ????????????????timestamp:?"{{$config['timestamp']}}",?//?支付簽名時間戳,注意微信jssdk中的所有使用timestamp字段均為小寫。但最新版的支付后臺生成簽名使用的timeStamp字段名需大寫其中的S字符??
  • ????????????????nonceStr:?'{{$config['nonceStr']}}',?//?支付簽名隨機串,不長于?32?位??
  • ????????????????package:?'{{$config['package']}}',?//?統一支付接口返回的prepay_id參數值,提交格式如:prepay_id=***)??
  • ????????????????signType:?'{{$config['signType']}}',?//?簽名方式,默認為'SHA1',使用新版支付需傳入'MD5'??
  • ????????????????paySign:?'{{$config['paySign']}}',?//?支付簽名??
  • ????????????????success:?function?(res)?{??
  • ????????????????????//?支付成功后的回調函數??
  • ????????????????????if(res.err_msg?==?"get_brand_wcpay_request:ok"?)?{??
  • ????????????????????????alert('支付成功。');??
  • ????????????????????????window.location.href="{{url("wechat/pay_ok")}}";??
  • ????????????????????}else{??
  • ????????????????????????//alert(res.errMsg);??
  • ????????????????????????alert("支付失敗,請返回重試。");??
  • ????????????????????}??
  • ????????????????},??
  • ????????????????fail:?function?(res)?{??
  • ????????????????????alert("支付失敗,請返回重試。");??
  • ????????????????}??
  • ????????????});??
  • ????????});??
  • ????});??
  • </script>??

  • ? ? ? ? 沒錯,只需要修改這些。

    ?

    ?

    ? ? ? ? 再來理一個,第二步里,這個頁面需要顯示一個確認信息,比如商品的名稱,和支付的總金額。

    ? ? ? ? 頁面上應該有一個按鈕,用來觸發支付(.btn-do-it)。

    ? ? ? ? 頁面里的js就是第5步里要顯示的內容。

    ?

    ?

    ? ? ? ? 總結:

    ? ? ? ? 第一步,商品信息頁面,用戶選擇購買數據,點購買,提交到第二步的確認頁面。

    ? ? ? ? 第二步的確認頁面,根據商品信息,和微信配置信息,生成必要的支付數據,并顯示購買確認信息,和一個支付按鈕,

    ? ? ? ? 用戶點擊支付按鈕,發起支付。

    ? ? ? ? 支付完成,提示用戶,或轉到相應頁面。

    ? ? ? ? 微信的開發團隊提醒我們,請以微信的推送信息為準來處理訂單,不然有可能人財兩空。

    product.html

    ?

    ?

    [html]?view plain?copy?
  • <!DOCTYPE?html>??
  • <html?lang="en">??
  • <head>??
  • ????<meta?charset="UTF-8">??
  • ????<title>一盒火柴</title>??
  • </head>??
  • <body>??
  • ??
  • <h1>一盒火柴</h1>??
  • ??
  • <div>??
  • ????賣火柴的小女孩,手里有一堆火柴。??
  • </div>??
  • ??
  • <hr>??
  • ??
  • <div>??
  • ????<form?name="form1"?action="payment.php"?method="post">??
  • ????????<lable>數量:</lable>??
  • ????????<input?name="qty"?value="1"?/>??
  • ????????<input?name="submit"?type="submit"?value="購買"?/>??
  • ????</form>??
  • </div>??
  • ??
  • </body>??
  • </html>??


  • ?

    payment.php

    ?

    ?

    [php]?view plain?copy?
  • <?php??
  • use?EasyWeChat\Foundation\Application;??
  • use?EasyWeChat\Payment\Order;??
  • ??
  • $product?=?[??
  • ????'body'?????????????=>?'一盒火柴',??
  • ????'trade_type'???????=>?'JSAPI',??
  • ????'out_trade_no'?????=>?'ERP'.time(),??
  • ????'total_fee'????????=>?1,??
  • ????'notify_url'???????=>?'http://test.xxoo.com/wechat/notify/',??
  • ????'openid'???????????=>?$_SESSION['openid'],??
  • ????'attach'???????????=>?'賣火柴的小女孩',??
  • ];??
  • ??
  • $order?=?new?Order($product);??
  • ??
  • $app?=?new?Application(config('wechat'));??
  • $js?=?$app->js;??
  • $payment?=?$app->payment;??
  • $result?=?$payment->prepare($order);??
  • $prepayId?=?null;??
  • if?($result->return_code?==?'SUCCESS'?&&?$result->result_code?==?'SUCCESS'){??
  • ????$prepayId?=?$result->prepay_id;??
  • }?else?{??
  • ????var_dump($result);??
  • ????die("出錯了。");??
  • }??
  • $config?=?$payment->configForJSSDKPayment($prepayId);??
  • ?>??
  • <!DOCTYPE?html>??
  • <html?lang="en">??
  • <head>??
  • ????<meta?charset="UTF-8">??
  • ????<title>購買支付</title>??
  • </head>??
  • <body>??
  • ??
  • <h1>一盒火柴</h1>??
  • ??
  • <div>??
  • ????<p>您購買了“一盒火柴”,總價格:?0.01元。</p>??
  • ????<p>數量:1盒。</p>??
  • </div>??
  • ??
  • <hr>??
  • ??
  • <div>??
  • ????<input?name="button"?id="btnPay"?type="button"?value="支付"?/>??
  • </div>??
  • ??
  • ??
  • ??
  • ??
  • <script?src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"?type="text/javascript"?charset="utf-8"></script>??
  • <script?type="text/javascript"?charset="utf-8">??
  • ????wx.config({{?$js->config(array('chooseWXPay'))?}});??
  • </script>??
  • <script>??
  • ????$(function(){??
  • ??
  • ????????$(".btn-do-it").click(function(){??
  • ????????????wx.chooseWXPay({??
  • ????????????????timestamp:?"{{$config['timestamp']}}",?//?支付簽名時間戳,注意微信jssdk中的所有使用timestamp字段均為小寫。但最新版的支付后臺生成簽名使用的timeStamp字段名需大寫其中的S字符??
  • ????????????????nonceStr:?'{{$config['nonceStr']}}',?//?支付簽名隨機串,不長于?32?位??
  • ????????????????package:?'{{$config['package']}}',?//?統一支付接口返回的prepay_id參數值,提交格式如:prepay_id=***)??
  • ????????????????signType:?'{{$config['signType']}}',?//?簽名方式,默認為'SHA1',使用新版支付需傳入'MD5'??
  • ????????????????paySign:?'{{$config['paySign']}}',?//?支付簽名??
  • ????????????????success:?function?(res)?{??
  • ????????????????????//?支付成功后的回調函數??
  • ????????????????????if(res.err_msg?==?"get_brand_wcpay_request:ok"?)?{??
  • ????????????????????????alert('支付成功。');??
  • ????????????????????????window.location.href="{{url("wechat/pay_ok")}}";??
  • ????????????????????}else{??
  • ????????????????????????//alert(res.errMsg);??
  • ????????????????????????alert("支付失敗,請返回重試。");??
  • ????????????????????}??
  • ????????????????},??
  • ????????????????fail:?function?(res)?{??
  • ????????????????????alert("支付失敗,請返回重試。");??
  • ????????????????}??
  • ????????????});??
  • ????????});??
  • ????});??
  • </script>??
  • </body>??
  • </html>??


  • ?

    這些是偽代碼,payment.php并沒有對product.html傳來的商品信息做處理。

    其實只要看payment.php文件應該知道怎么做了。

    ?

    其它就兩點。a,獲取$config,b, 自己寫wx.chooseWXPay。

    其它的看easywechat文檔就行了。





    總結

    以上是生活随笔為你收集整理的微信 第三方登录的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    国产性天天综合网 | 一级特黄av | 久久永久免费 | 福利av在线 | 小草av在线播放 | 久久久在线免费观看 | 色老板在线视频 | 天天干天天干天天色 | 国产精品久久久久毛片大屁完整版 | 免费又黄又爽视频 | 久久成人国产精品入口 | 久草在线资源网 | 日韩在线免费观看视频 | 成人在线免费视频 | 成人av免费在线看 | 日韩影视在线 | 国产精品一区二区久久精品爱涩 | 国产成人三级一区二区在线观看一 | 国产五月天婷婷 | 91成人久久 | 亚洲三级在线免费观看 | 欧美一级片在线免费观看 | 操操操干干干 | 亚洲免费成人 | 97香蕉久久超级碰碰高清版 | av免费看网站 | 96久久久| 国产精品自产拍在线观看桃花 | 国产婷婷一区二区 | 97理论片 | 欧美色图亚洲图片 | 97国产精品一区二区 | 成人久久久精品国产乱码一区二区 | 日韩色视频在线观看 | 久久视频精品在线 | 色多多污污 | 欧美aaa一级 | 久久艹久久 | 99在线精品免费视频九九视 | 久久精品久久精品久久精品 | 久久电影色 | 亚洲91网站 | 欧美日韩国产精品一区 | 99在线免费观看视频 | 国产免费一区二区三区网站免费 | 亚洲高清视频在线观看免费 | 午夜视频在线观看一区二区三区 | 欧美aaa视频 | 在线观看播放av | 97在线成人 | 干 操 插| 热re99久久精品国产66热 | av福利在线播放 | 不卡的av片 | 91人人人 | 三级动态视频在线观看 | 久久天天拍 | 欧美一级高清片 | 中文字幕 国产专区 | 久久国产露脸精品国产 | 五月在线视频 | www.狠狠插.com| 欧美在线free | 青青视频一区 | 啪嗒啪嗒免费观看完整版 | 91在线免费观看国产 | 成人国产综合 | 国产精品久久久久久一区二区 | 日日夜夜中文字幕 | 91香蕉视频黄色 | 国产五码一区 | 久久久精品国产免费观看一区二区 | 亚洲播放一区 | 毛片网站免费 | 国产免费成人av | 久久久在线免费观看 | 国产做爰视频 | 高清中文字幕av | 九九在线视频免费观看 | 97电影在线看视频 | 久草影视在线 | 亚洲男模gay裸体gay | 国产在线精品福利 | 国产视频一区在线免费观看 | 国产精品va视频 | 激情网五月天 | 久久久久久综合网天天 | 亚洲国产字幕 | 免费福利片2019潦草影视午夜 | 91香蕉视频在线 | 999久久久久 | 中文字幕在线观看2018 | 日韩欧美99 | 中文字幕在线观看2018 | 成人在线播放网站 | 日韩在线观看 | 中文字幕在线看视频国产 | www亚洲一区 | 天天天干天天射天天天操 | 欧美日韩视频网站 | 丁香六月婷婷开心 | 8x成人免费视频 | 毛片网站免费 | 国产不卡一二三区 | 成人app在线播放 | 91av视频在线观看免费 | 97超碰人人澡 | 综合中文字幕 | 在线观看av网站 | 国产精品99免费看 | 亚洲免费一级电影 | 黄色av网站在线免费观看 | 日日精品| se婷婷| 精品欧美一区二区三区久久久 | 国产一区二区三精品久久久无广告 | 69av国产 | 亚洲乱码久久 | 人人超碰在线 | 色先锋资源网 | 高潮毛片无遮挡高清免费 | 久久久久久高潮国产精品视 | 欧美日韩国产一区二 | 激情欧美一区二区三区免费看 | 精品国产成人在线影院 | 国产91免费观看 | 91成品视频 | www中文在线 | av不卡中文 | 亚洲国产高清在线观看视频 | 激情九九 | 操操操日日日干干干 | 久久久久久高潮国产精品视 | 日韩在线电影一区 | 国产精品女同一区二区三区久久夜 | 精品免费视频123区 午夜久久成人 | 97福利视频 | 日本一区二区高清不卡 | 去干成人网 | 夜色成人网 | 人人爽人人爽人人爽 | 午夜av在线播放 | 欧美日韩一级视频 | 国产成人av片 | 99视频+国产日韩欧美 | 日日爽视频 | 亚洲日韩欧美视频 | 久久久久久蜜av免费网站 | 亚洲免费高清视频 | 黄色电影在线免费观看 | 一区久久久 | 亚洲视频在线免费观看 | 在线视频 影院 | 亚洲成人av影片 | 九九在线国产视频 | 亚洲综合色视频在线观看 | 91理论电影 | av黄色大片| 九九九视频在线 | 玖玖视频国产 | 日韩网站视频 | 天堂av网在线 | 中文在线字幕免费观看 | 欧美精品一区二区在线观看 | 91精品视频在线看 | 国产一区电影在线观看 | 二区三区av | 毛片基地黄久久久久久天堂 | 久久精品中文字幕少妇 | 精品一区二区三区电影 | 天天爽人人爽 | 国产精品你懂的在线观看 | 色综合久久久久综合体桃花网 | 不卡的av电影在线观看 | 岛国精品一区二区 | 婷婷丁香花五月天 | 免费a网站 | 黄色官网在线观看 | 成人在线观看免费视频 | 99精品黄色 | 美女视频黄免费 | www久久精品 | 97色婷婷| 欧美电影在线观看 | 亚洲成年人av | 尤物97国产精品久久精品国产 | 国产精品一码二码三码在线 | 99精品国产高清在线观看 | 国产日韩在线视频 | 日韩视频一区二区在线观看 | 亚洲最大成人免费网站 | 探花视频在线观看+在线播放 | 国产一级黄色电影 | 午夜视频在线观看网站 | 91精品国产91久久久久福利 | 不卡的av电影在线观看 | av在线播放一区二区三区 | 欧美精品三级 | 人人干在线 | 天堂va在线高清一区 | 国产一区二区网址 | 日韩在线电影 | 亚洲一区二区精品 | 国产免费人成xvideos视频 | 九九亚洲精品 | 麻豆国产在线视频 | 91久久久久久久一区二区 | 999在线视频 | 欧美三级高清 | 免费观看一级 | 国产一级精品在线观看 | 在线观看91| 国产系列 在线观看 | 国产黄大片在线观看 | 色福利网站 | 中文字幕在线观看免费 | 免费看国产曰批40分钟 | 久久人人爽人人爽人人片av软件 | 天天干天天做天天操 | 久久艹欧美 | 久久免费播放 | 欧美日韩综合在线观看 | 国产69精品久久久久9999apgf | 国产区免费 | 欧美性黄网官网 | 在线看成人 | 天天操天天操天天操天天操天天操 | 久艹视频免费观看 | 最近中文字幕视频网 | 欧美一级电影片 | 亚洲一区二区三区四区精品 | 日p视频 | 久久伊人免费视频 | a级片在线播放 | 成人毛片在线视频 | 麻豆va一区二区三区久久浪 | 天天想夜夜操 | 天天操天天射天天 | 精品在线你懂的 | 国产精品永久免费观看 | 国产视频一区在线播放 | 能在线看的av | 国产二区电影 | 午夜精品99久久免费 | 国产精品久久久 | 国产91aaa | 亚洲免费a| 国产一区国产二区在线观看 | 干 操 插| 欧美在线视频第一页 | 五月天综合色 | 国产色婷婷 | 91欧美视频网站 | 国产很黄很色的视频 | 久久国产精品视频免费看 | 人人超碰人人 | 亚洲视频每日更新 | 超碰人人99 | 激情婷婷欧美 | 天天天操天天天干 | 在线观看激情av | 玖玖国产精品视频 | 国产黄影院色大全免费 | 免费网址在线播放 | 精品久久国产精品 | 九九视频在线观看视频6 | 在线免费中文字幕 | 国产黄a三级三级 | 99热在线国产精品 | 成人黄性视频 | 成人在线播放视频 | 国产小视频在线观看免费 | 国产成人免费观看久久久 | 99久在线精品99re8热视频 | 日韩一级理论片 | 在线视频免费观看 | 日韩精品一区二区三区高清免费 | www婷婷 | 综合色在线观看 | 日韩中文字幕免费视频 | 亚洲精品久久久久www | 国产精品国产三级国产aⅴ无密码 | 精品在线播放视频 | 很黄很污的视频网站 | 精品久久久久久亚洲综合网 | 国产精品video爽爽爽爽 | 久热久草在线 | 亚洲一区二区91 | 成片免费| 欧美高清视频不卡网 | 日韩精品中文字幕在线不卡尤物 | av永久网址 | 久久与婷婷 | 亚洲电影第一页av | 国产视频不卡一区 | 久草视频在线免费播放 | 在线观看的黄色 | 99在线热播精品免费 | 国产1区2区 | 91精品国产乱码 | 又污又黄网站 | 久久艹中文字幕 | 中文字幕精品一区二区三区电影 | 国产精品美乳一区二区免费 | 草樱av | 99久久精品午夜一区二区小说 | 91视频免费国产 | 欧美国产精品久久久久久免费 | 国产一级片一区二区三区 | av理论电影 | 日本成人免费在线观看 | 国产精品久久一卡二卡 | 久久蜜桃av | 亚洲在线激情 | 亚洲精品视频中文字幕 | 国产一级片一区二区三区 | 久久国产网| 91网页版在线观看 | 日韩精品一区二区免费 | 精品亚洲一区二区 | 五月婷婷黄色 | 国产美女在线免费观看 | 在线免费高清视频 | 欧美日韩高清在线一区 | 少妇自拍av | 欧美va天堂在线电影 | 四虎永久免费网站 | 精品国产成人在线影院 | 四虎影视精品成人 | 久久综合九色九九 | 久久久久久久久久久久99 | 久久视频在线观看 | 色a网| 欧美性大胆 | 国产精品igao视频网网址 | 久草综合在线观看 | 亚州精品天堂中文字幕 | 久久久精品影视 | 国产一区二区三区网站 | 亚洲一级片在线观看 | 国产在线超碰 | 成人三级网址 | 99视频在线观看一区三区 | 欧美日韩激情网 | 九色精品在线 | 国产在线91在线电影 | 日韩精品视频免费专区在线播放 | 欧美日韩一级在线 | 久久99国产精品自在自在app | 成人午夜剧场在线观看 | 91av视频在线播放 | 日韩一级网站 | 久久婷婷开心 | 国产欧美精品在线观看 | 日韩一区二区三区视频在线 | 亚洲狠狠丁香婷婷综合久久久 | 西西大胆啪啪 | 欧美一区视频 | 欧美久久影院 | 三级av中文字幕 | 日韩免费电影一区二区 | 日韩视频中文字幕 | 韩日电影在线观看 | 国产在线国产 | 在线成人免费电影 | 91成人精品一区在线播放69 | 在线视频精品 | 欧美亚洲久久 | 四虎影视成人精品 | 国产成人一区二区精品非洲 | 亚洲黄色片在线 | 999成人| 激情久久影院 | 一区二区三区日韩在线观看 | 91超国产 | 日p在线观看 | www.色com | 国产 欧美 在线 | 丁香激情网 | 久草在线| se视频网址 | 亚洲天天在线日亚洲洲精 | 国产h片在线观看 | 亚洲国产精品资源 | 人人干人人艹 | h动漫中文字幕 | 亚洲精品小区久久久久久 | 国产精品18久久久久久久久久久久 | 丁香激情五月 | 国产在线久久久 | 激情伊人五月天 | 808电影| 91大神dom调教在线观看 | 国产在线精品一区 | 久久久激情视频 | 亚洲国产wwwccc36天堂 | 久久综合免费 | 免费在线国产 | 91成年人在线观看 | 欧洲av在线 | 男女激情麻豆 | 亚洲va天堂va欧美ⅴa在线 | 黄色一区二区在线观看 | 国产成人一区二区在线观看 | 国产午夜三级 | 久久免费看毛片 | 黄色三级免费片 | 丰满少妇高潮在线观看 | 精品国产黄色片 | 99久久精品国产一区二区三区 | 亚洲另类视频在线观看 | 国产一级视频 | 久草在线中文视频 | 国产视频1 | 久久久国产电影 | 人人澡超碰碰97碰碰碰软件 | 天天射色综合 | 97成人啪啪网 | 欧美另类亚洲 | www.狠狠操.com | 在线播放亚洲 | 亚洲欧美少妇 | 久久夜色精品国产欧美一区麻豆 | 国产91成人 | 欧美日韩精品在线视频 | 国产精品毛片久久蜜 | 91成人精品国产刺激国语对白 | 天天插夜夜操 | 香蕉久久国产 | 中文字幕在线观看第二页 | 久久精品亚洲一区二区三区观看模式 | 欧美日韩精品在线一区二区 | 国产精品va在线播放 | 国产黄色观看 | 国产在线精品一区二区不卡了 | 国产精品久久久久久久久久直播 | 女人高潮一级片 | 日本免费久久高清视频 | 中文字幕成人在线 | 中文字幕久久网 | 欧美日韩在线看 | 在线成人中文字幕 | 久久香蕉影视 | 一区二区三区视频 | 国产精品视频全国免费观看 | 国产精品精品久久久 | 亚洲国产视频在线 | 亚洲欧美日韩精品久久奇米一区 | 午夜精品久久久久久久99水蜜桃 | 午夜精品久久久久久久99热影院 | 日日日视频 | 成人国产精品入口 | 正在播放日韩 | 天天av天天 | 国产护士hd高朝护士1 | 天天操天天射天天舔 | 97偷拍视频 | 久久 地址 | 亚洲精品视频在线看 | 久99久久| 日本在线精品视频 | 免费毛片一区二区三区久久久 | 91天堂素人约啪 | 99免费看片| 免费观看性生交大片3 | 成人午夜网址 | 国产一级片直播 | 日韩电影一区二区在线 | 久久99久国产精品黄毛片入口 | 免费看的视频 | 国产精品麻豆99久久久久久 | 国产私拍在线 | av电影中文 | 亚洲无在线 | 久久天天操 | 黄色大片日本免费大片 | 欧美精品一区二区在线观看 | 精品网站999www | 96超碰在线 | 日韩av一区二区在线影视 | 涩涩爱夜夜爱 | 国产精品永久久久久久久久久 | 天天综合色网 | 久久久精品小视频 | 在线观看的黄色 | 97超碰总站| 国产一区网址 | 精品一区二区精品 | 国色天香永久免费 | 国产精品99免视看9 国产精品毛片一区视频 | 就操操久久 | 亚洲精品h | 一级c片| 在线a人v观看视频 | www.亚洲黄色 | 黄色大全在线观看 | 久久久久久久av麻豆果冻 | 国产高清综合 | 久久久国产99久久国产一 | 一区二区三区国 | 97精品国自产拍在线观看 | 中文字幕高清免费日韩视频在线 | 国产在线观看地址 | 91精品国产九九九久久久亚洲 | 久久视频 | av大全免费在线观看 | 在线观看av不卡 | 500部大龄熟乱视频使用方法 | 国产五十路毛片 | 亚洲一区免费在线 | 国产成人黄色 | 国产精品mm | 色综合久久五月天 | 日韩在线不卡视频 | 99精品久久久久久久 | 在线观看aa | 久久久久久久久久福利 | 精品国自产在线观看 | 日日草视频 | 一区在线电影 | 日韩精品在线视频 | 精品久久一 | 国产精品一区二区在线观看免费 | 免费十分钟 | 亚洲最新av在线网址 | 久久手机在线视频 | 99久久日韩精品免费热麻豆美女 | 一区二区三区国产精品 | 国产精品91一区 | 国产精品理论在线观看 | 日韩精品专区在线影院重磅 | 国产成人亚洲在线观看 | 精品视频123区在线观看 | 玖玖精品在线 | 精品a级片 | 国产一级在线播放 | 国产精品igao视频网网址 | 在线观看的黄色 | 色a网| 日韩在观看线 | 91一区一区三区 | 911香蕉视频 | 99久久精品久久久久久动态片 | 丁香激情网 | 免费黄色网址网站 | 另类老妇性bbwbbw高清 | 久久精品中文 | 999国产在线 | 国产a高清 | 日本少妇久久久 | 国产成人久久av免费高清密臂 | 亚洲精品成人av在线 | 免费色视频网站 | 亚洲婷婷伊人 | 欧美午夜a| 午夜.dj高清免费观看视频 | 久久视频国产精品免费视频在线 | 色av色av色av| 久久精品欧美一区 | 九九热精品国产 | 国产精品久久久久久久久久免费 | 日韩精品五月天 | 日本中文字幕网址 | 久久这里有精品 | 九九在线播放 | 中文字幕在线久一本久 | 狂野欧美激情性xxxx | 日p视频| 欧美极品久久 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 五月天丁香视频 | 免费看特级毛片 | 精品字幕在线 | 99久久99久久精品国产片果冰 | 伊人色综合久久天天网 | 国产精品不卡在线播放 | 9999在线 | 97超碰资源| 国产午夜精品一区二区三区嫩草 | 日韩一区二区三区免费视频 | 日韩性xxxx | 国产精品久久久久久久久久免费看 | 中文字幕乱在线伦视频中文字幕乱码在线 | 精品国产福利在线 | 国产剧情一区二区 | 美女激情影院 | 久草在线欧美 | 日韩免费一区二区在线观看 | 狠狠操导航| 久久久久久久久久久黄色 | 国产综合精品一区二区三区 | 免费av电影网站 | 中文字幕在线资源 | 91丨九色丨国产在线观看 | 夜夜澡人模人人添人人看 | 久久婷婷一区二区三区 | 日韩在线视频在线观看 | 亚洲h视频在线 | 久久精品96 | 一区二区三区免费在线观看视频 | 日韩黄色免费在线观看 | 天天操天天爱天天爽 | 亚洲精品在线二区 | 中文字幕韩在线第一页 | 久久精品99国产精品亚洲最刺激 | 日韩视频中文字幕 | 国产精品免费久久久 | 欧美日韩精品久久久 | 综合色综合| 成年人在线免费看 | 热久久国产精品 | 91人人人 | 天天综合狠狠精品 | 四虎国产永久在线精品 | 日韩在线免费播放 | 久久久久久久久久久久久久av | 国产 日韩 在线 亚洲 字幕 中文 | 黄色毛片一级 | 欧洲精品久久久久毛片完整版 | 999久久久国产精品 高清av免费观看 | 韩国av电影在线观看 | 亚洲人精品午夜 | 久久精品亚洲一区二区三区观看模式 | 96精品高清视频在线观看软件特色 | 久久免费视频网 | 中文字幕在线一区观看 | 日韩av在线不卡 | 久久人人爽爽人人爽人人片av | 日韩理论影院 | av在线短片 | 国产午夜影院 | 日韩美女免费线视频 | 激情婷婷av | 免费观看91视频大全 | 亚州精品成人 | 麻豆视频观看 | 亚洲一区视频免费观看 | 在线观看精品黄av片免费 | 亚洲综合激情小说 | 亚洲欧美色婷婷 | 国产麻豆精品一区 | 色www精品视频在线观看 | av大全在线播放 | 手机成人免费视频 | 国产中文字幕在线免费观看 | 激情亚洲综合在线 | 日韩欧美在线高清 | 国产精品久一 | 久久在线观看视频 | 一区二区三区免费网站 | 最新国产精品拍自在线播放 | 在线观看a视频 | 中文av资源站 | 日韩在线观看免费 | 最近免费中文字幕大全高清10 | 成人中文字幕在线 | 99精品在这里 | 中文乱码视频在线观看 | 操操综合网 | 久久久久国产精品一区二区 | 亚洲成人一区 | 99热只有精品在线观看 | 色综合天天天天做夜夜夜夜做 | 97香蕉超级碰碰久久免费软件 | 亚洲国产网址 | 国内成人精品视频 | 久久精品第一页 | 亚洲成人黄色在线 | 日本视频精品 | 亚洲精品久久久久久中文传媒 | 91精品免费视频 | 99热在线网站 | 欧美人操人| 精品久久在线 | 亚洲在线黄色 | 中文字幕资源在线 | 国产欧美精品在线观看 | 又黄又爽又色无遮挡免费 | 91资源在线免费观看 | 日韩三级视频在线观看 | 黄色精品一区二区 | 精品一区二区久久久久久久网站 | 国产免费一区二区三区最新6 | 国产亚洲精品电影 | 视频 天天草| 欧美一级免费 | 99在线视频网站 | 激情婷婷综合 | 韩国在线视频一区 | 91精品久久久久久久久久入口 | 国产91aaa | 久久国产精品一区二区三区 | 91免费版在线观看 | 欧美成年人在线观看 | av成人在线播放 | 高清av中文在线字幕观看1 | 国产亚洲精品久久19p | 91成人在线视频观看 | 五月婷婷亚洲 | 国产一区在线免费 | 久久少妇免费视频 | 国内精品在线一区 | 四虎国产精品成人免费4hu | 91网页版免费观看 | 波多野结衣电影一区二区 | 丁香激情五月婷婷 | 在线播放国产精品 | 精品国产一区二区三区免费 | 91大神dom调教在线观看 | 成人国产精品一区二区 | 婷婷色网视频在线播放 | 在线观看岛国av | 18做爰免费视频网站 | 婷婷深爱 | 国产v亚洲v| 日韩av成人| 久久99久久精品国产 | 欧美日韩一区二区视频在线观看 | 久久视精品| 亚洲成a人片在线www | 午夜婷婷综合 | 久久久www成人免费精品张筱雨 | 国产成人精品久久二区二区 | 少妇bbbb| 国产高清小视频 | 中文字幕在线不卡国产视频 | 午夜视频免费在线观看 | av在线免费观看网站 | av免费片 | 精品一区av | 超碰在线人 | 91桃色免费视频 | 国产黄色网| 欧美精品成人在线 | 国产看片 色| 成人av直播 | 国产真实在线 | 国产精品一区二区美女视频免费看 | 日韩免费视频线观看 | 成年人在线观看视频免费 | 一区三区视频 | 国产日韩欧美在线看 | av亚洲产国偷v产偷v自拍小说 | 日韩精品一区二区三区免费观看视频 | 日日婷婷夜日日天干 | 欧美日韩一区二区在线观看 | 久久特级毛片 | 欧美 亚洲 另类 激情 另类 | 五月天久久久久 | 日韩av看片 | 国产精品毛片一区视频播不卡 | 波多野结衣在线视频一区 | av 一区二区三区四区 | 免费观看性生活大片3 | 亚洲亚洲精品在线观看 | 国产精品a久久久久 | 免费观看久久久 | 国产99久久久国产精品免费二区 | 国产热re99久久6国产精品 | 午夜影院在线观看18 | 久久综合国产伦精品免费 | 蜜桃视频成人在线观看 | 成人免费看黄 | 欧美在线aa | 这里只有精品视频在线 | 97超碰人人模人人人爽人人爱 | 99视频一区 | 天天干天天草 | 91九色视频网站 | www.亚洲激情.com | 婷婷伊人五月天 | 日本公妇色中文字幕 | 国产亚洲va综合人人澡精品 | 丁香婷婷综合激情五月色 | 91热视频 | 天天射天天 | 91中文在线 | 亚洲专区在线播放 | 在线观看国产日韩 | 在线观看黄网站 | 久久免费播放 | 欧美综合色在线图区 | 亚洲欧美日韩在线一区二区 | 亚洲黄色免费在线看 | 国产精品久久久久久久久久白浆 | 色综合激情网 | 在线观看韩日电影免费 | 一区二区三区韩国免费中文网站 | 久久免费视频在线 | 国产精品大全 | 亚洲国产精品人久久电影 | 好看的国产精品视频 | 国产一区国产二区在线观看 | 91精品老司机久久一区啪 | 欧美日韩免费一区二区三区 | 国产一区二区在线免费播放 | 波多在线视频 | 婷婷资源站 | 奇米影视四色8888 | 一级片免费观看视频 | 久久久久久久综合色一本 | 99热精品久久 | 西西大胆免费视频 | 丁香电影小说免费视频观看 | 在线视频 影院 | 超碰99人人 | 婷婷六月天综合 | 日本精品视频一区二区 | 亚洲永久精品在线 | 九九在线视频 | 天天鲁一鲁摸一摸爽一爽 | 亚洲最快最全在线视频 | 一区二区在线电影 | 国产免费人成xvideos视频 | 久久成人国产精品一区二区 | 狠狠操狠狠插 | 日韩大片在线观看 | 99精品国产99久久久久久福利 | 夜夜嗨av色一区二区不卡 | 99c视频在线 | 国产精品乱码一区二区视频 | 国产精品国产三级国产不产一地 | 天天操天天操天天操 | 91在线影院 | 久久婷婷国产色一区二区三区 | 国产亚洲字幕 | 国语黄色片 | 亚洲,播放 | 免费观看成人 | 日p视频在线观看 | 丁香婷婷激情啪啪 | 天天做日日爱夜夜爽 | 99视频免费播放 | 99久久夜色精品国产亚洲 | 久久久久亚洲精品成人网小说 | 婷婷日| 青青草国产在线 | 日韩精品一区二区免费 | 中文一区在线 | 久久久久激情电影 | 天天操天天干天天干 | 人人添人人澡 | 天堂资源在线观看视频 | 亚洲欧美日韩国产一区二区三区 | 九九在线免费视频 | 日韩精品一区二区三区在线视频 | 97在线影视 | 99视频在线免费看 | 麻豆国产网站 | 亚洲精品天天 | 最新99热 | 福利一区在线视频 | 99中文字幕视频 | 91精品视频导航 | 97超级碰碰碰视频在线观看 | 中文字幕日本特黄aa毛片 | 偷拍精品一区二区三区 | 国产一区二区在线免费视频 | 99国产精品一区 | 国产在线永久 | 午夜精品一区二区三区在线 | 97理论片| 国产成人99av超碰超爽 | 91女神的呻吟细腰翘臀美女 | 国产一区黄色 | 久久视频国产精品免费视频在线 | 国产视频手机在线 | 欧美精品三级在线观看 | 手机看片99 | 麻豆视频成人 | 97看片网| 中文字幕在线视频免费播放 | 欧美一级日韩三级 | 99精品国产视频 | 精品国产诱惑 | 欧美日韩一区二区久久 | 精品国产自在精品国产精野外直播 | 中文字幕影片免费在线观看 | 久久亚洲综合国产精品99麻豆的功能介绍 | 手机看国产毛片 | 国产精品观看视频 | 亚洲理论在线观看 | 国产免费xvideos视频入口 | 亚洲国产中文在线 | 成全在线视频免费观看 | 欧美一二区在线 | 欧美日韩18 | 成人一区在线观看 | 久久99热这里只有精品 | 日韩有码第一页 | 国产精品久久久777 成人手机在线视频 | 久久国产欧美日韩精品 | 久久精品成人欧美大片古装 | 亚洲免费在线播放视频 | 国内精品免费久久影院 | 91av视频在线免费观看 | 98精品国产自产在线观看 | 久久久久久久久久电影 | 久久国产美女视频 | avv天堂| 亚洲情感电影大片 | 国产免费人成xvideos视频 | 免费成人短视频 | 亚洲dvd| www黄色com | 久久久久久久综合色一本 | 日韩一三区 | 99精品国自产在线 | 一区二区日韩av | 在线成人高清电影 | av在线永久免费观看 | 国产精品美乳一区二区免费 | 久章操 | 国产精品专区h在线观看 | 福利一区二区三区四区 | 日韩网站在线观看 | 色综合天天色 | 黄色毛片观看 | 精品av网站 | 天天爽夜夜爽人人爽一区二区 | 麻豆传媒视频在线播放 | 国产中文字幕久久 | 在线观看免费黄视频 | 在线国产一区二区三区 | 国产精品精品久久久久久 | 久久免费视频这里只有精品 | 国产精品不卡视频 | 国产精品手机看片 | 丰满少妇一级片 | 就操操久久| 中文字幕一区二区三区在线播放 | 久久久久免费精品国产小说色大师 | 成人黄色在线 | 综合久久久久久 | 免费午夜网站 | 国产专区在线播放 | 色橹橹欧美在线观看视频高清 | 99久久精品日本一区二区免费 | 高清av在线免费观看 | 看片一区二区三区 | 麻花传媒mv免费观看 | 色婷婷在线播放 | 亚洲精品国产麻豆 | 欧美极品xxxxx | 97成人超碰| 国产麻豆精品在线观看 | 在线视频 亚洲 | 欧美aa一级片 | 亚洲欧美国内爽妇网 | 欧美成人精品三级在线观看播放 | 91热爆视频 | 四虎永久精品在线 | 四虎成人av| 亚洲h色精品 | 五月婷婷亚洲 | 亚洲视频电影在线 | av片中文 | 亚洲经典视频 | 久久精品国产免费 | 伊人五月天婷婷 | 97视频在线观看视频免费视频 | 最近av在线 | www.国产高清| 看片网站黄 | 激情深爱五月 | 亚洲午夜精品福利 | 99在线播放 | av丝袜在线 | 欧美xxxxx在线视频 | 99re8这里有精品热视频免费 | 欧美日韩一区二区视频在线观看 | 欧美日韩性视频 | 天堂网一区二区 | 91大神dom调教在线观看 | 亚洲视频电影在线 | 成人免费xyz网站 | 国产精品大片 | 欧美日韩视频观看 | 成人a视频片观看免费 | 国产精品美女999 | 黄色的视频 | 黄色电影在线免费观看 | 亚洲91中文字幕无线码三区 | 亚洲一级电影在线观看 | 色就是色综合 | 中文字幕在线观看国产 | 国产精品a成v人在线播放 | 麻豆精品视频在线观看免费 | 欧美日韩亚洲第一页 | 欧美日韩国产综合一区二区 | 91香蕉视频在线下载 | 在线观看播放av | 午夜精品一二三区 | 亚洲国产高清在线观看视频 | 最新色站 | 国产精品视频线看 | 91丨porny丨九色 | 亚洲视频免费在线看 |