麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > PHP > 正文

php開發微信支付獲取用戶地址

2024-05-04 23:39:25
字體:
來源:轉載
供稿:網友

微信支付的收貨地址共享功能,主要是統一的管理微信用戶個人的收貨地址,其收貨地址可以被應用于所有可以調用的開發者。用戶的收貨地址包含了很多個人信息,因此該接口必須要通過申請,申請的方式可以在mp平臺上查看到。

使用微信獲取地址信息是和微信支付一道申請的,微信支付申請通過,就可以使用該功能。

微信商城中,使用微信支付獲取用戶的收貨地址,可以省略用戶輸入地址信息的繁復流程,提高用戶體驗。

但是可能是因為牽扯到用戶隱私,所以在使用過程中,需要用戶自己主動選擇使用該功能,并且是通過點擊的操作,我們才可以獲取到用戶的收貨地址,這一點是要注意的。

操作流程如下:

1.用戶打開購物車頁面,點擊結算,跳轉到一個微信的oauth2的頁面,地址為:https://open.weixin.qq.com/connect/oauth2/authorize

2.oauth2頁面將鏈接redirect到結算頁面,使用PHP獲取到鏈接中的code參數,經過處理獲取到accessToken值。生成簽名,組裝成數組參數傳遞到頁面。

3.結算頁面使用用戶點擊事件,結合2中生成的數組參數完成獲取地址的功能。這里可以有一個將獲取到的地址使用ajax記錄到數據庫的功能,那么客戶下次購物的時候,就不用麻煩了。

詳細的講下需要注意的幾點:

1.跳轉到微信oauth2的這個步驟,在用戶看來是沒有多少差別的,但是在程序這里就有很多的事情要做。首先是oauth2頁面的參數,其中appid為微信appid,redirect_uri為urlencode后的訂單結算頁面的地址,response_type為固定的code,scope為固定的snsapi_base,state在這個地方可隨意填寫,還有一個#wechat_redirect,那么該鏈接的最終樣子為:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=訂單結算地址&response_type=code&scope=snsapi_base&state=隨意填寫#wechat_redirect

2.用戶訪問到該地址,被重新定位到追加了code參數訂單結算地址,在此頁面需要由程序獲取到accessToken,注意該accessToken為獲取用戶信息的accessToken跟另外一個和微信交互的access token不是同一個。

使用GET請求就可以獲取該accessToken,可以使用curl或者是file_get_contents。請求地址為:

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

這里有一點需要注意,有時候微信會抽風,會連續多次請求訂單結算頁面,造成accessToken失效,需特殊處理。

這里的簽名生成和微信支付里面的簽名不一樣,這里的要簡單很多,只是加密一個字符串,格式為:accesstoken=ACCESSTOKEN&appid=APPID&noncestr=32位隨機字符串×tamp=時間戳&url=當前頁面的URL,然后對該字符串進行sha1加密。

在前端頁面中需要使用一連串的參數來實現獲取地址的功能,分別是appID,scope(默認為jsapi_address),signType(默認為sha1),addrSign(上面sha1加密后的字符串),timeStamp(同上文的時間戳),nonceStr(同上文的隨機字符串)。

3.在前端頁面,使用下面的js函數來完成獲取用戶地址的操作:

 

 
  1. function get_addr() 
  2. WeixinJSBridge.invoke('editAddress',{ 
  3. "appId" : "<?php echo $sign['appId']?>"
  4. "scope" : "jsapi_address"
  5. "signType" : "sha1"
  6. "addrSign" : "<?php echo $sign['addrSign']?>"
  7. "timeStamp" : "<?php echo $sign['timeStamp']?>"
  8. "nonceStr" : "<?php echo $sign['nonceStr']?>"
  9. },function(res){ 
  10. if(res.err_msg == 'edit_address:ok'
  11.  
  12.  
  13. //將地址信息存入數據庫 
  14. //將地址信息顯示在當前頁面 
  15.    
  16. document.getElementById("address_info").innerHTML="<b>收件人:"+res.userName+"</b> <b>"+res.telNumber+"</b><br /> 收貨地址:"+res.proviceFirstStageName+res.addressCitySecondStageName+res.addressCountiesThirdStageName+res.addressDetailInfo; 
  17.  
  18. else{ alert("獲取地址失敗,請重新點擊"); } }); } 

至此,使用微信獲取用戶共享地址的開發就完畢了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 操操操日日日干干干 | 国产精品成人久久 | 久久99精品久久久久久久久久久久 | 91九色福利 | 久久精品久 | 久久久久久久久日本理论电影 | 欧美日本综合 | 欧美成人黄色小视频 | 欧美一级做性受免费大片免费 | 99国产精成人午夜视频一区二区 | 免费a观看 | 色97在线 | 欧美性生交zzzzzxxxxx | 911色_911色sss主站色播 | 一区二区三区在线观看视频 | 成人aaaaa片毛片按摩 | 亚洲第一成网站 | 欧美一区黄色 | 亚洲嫩草av | 日本a∨精品中文字幕在线 狠狠干精品视频 | a集毛片 | 姑娘第四集免费看视频 | 最新中文字幕第一页视频 | 做羞羞视频 | 欧美三日本三级少妇三级99观看视频 | 欧美一区二区三区久久精品视 | 看免费5xxaaa毛片 | 亚洲免费毛片基地 | 免费一级欧美在线观看视频 | 日日鲁夜夜视频热线播放 | 欧美第1页| 国产羞羞视频在线观看 | 亚洲人成综合第一网 | 国产99久久久久久免费看 | 国产免费观看视频 | 亚洲第一综合色 | 久久午夜神器 | 日韩精品中文字幕一区二区三区 | 依人在线视频 | 中文字幕在线观看精品 | 国产精品免费一区二区三区都可以 |