


Ausführliche Erl?uterung des Beispiels zum Erhalten der OAuth2.0-Webseitenautorisierungsauthentifizierung und zum Abrufen von Benutzerinformationen für die WeChat-Entwicklung
Apr 26, 2017 pm 02:58 PM Vor Kurzem haben wir eine Funktion zur Autorisierung der Benutzerzuordnung zwischen ?ffentlichen WeChat-Konten und Benutzern unserer eigenen Website implementiert. Der Hauptzweck besteht darin, dass Benutzer dem ?ffentlichen Konto folgen und auf das Mitgliedercenter und eine Website klicken Es wird eine Seitenautorisierung angezeigt, für die eine Zuordnungsautorisierung erforderlich ist: OAuth2.0-Webseitenautorisierung, Dann erkl?rt sich der Benutzer damit einverstanden, Benutzerinformationen zu erhalten, den Benutzer mit der Website zu verknüpfen, und dann kann sich der Benutzer mit anmelden WeChat.
Diesmal verarbeiten wir jeden Rückgabeparameter, um Daten in der Aktionsschicht von Java zu erhalten.
1. Verwendete Werkzeuge:
1. ngrok, verwende dein eigenes The local Maschine ist dem ?ffentlichen Netzwerk zugeordnet, sodass sie jederzeit getestet und weiterentwickelt werden kann ??> 2. Legen Sie die Datei im Tomcat-Verzeichnis ab und führen Sie ngrok -config ngrok.cfg -subdomain xinzhi 8080
3. Das Ngrok-Tool befindet sich im MOOC-Netzwerk @LAOBI.2. Testen Sie das ?ffentliche WeChat-Konto, testen Sie es jederzeit und stellen Sie zun?chst sicher, dass keine Probleme vorliegen unter dem Testkonto, bevor Sie das ?ffentliche Konto übertragen.
2. Verwenden Sie es, um eine HTTP-Anfrage in Java zu senden, dann die JSON-Parameter zurückzugeben, die JSON-Parameter abzurufen und sie dann zu verarbeiten.Rufen Sie zun?chst das Testkonto für das ?ffentliche Konto ab und fügen Sie es in die Eigenschaftendatei ein, damit wir es aufrufen oder ersetzen k?nnen. Zum Beispiel: Bitte verwenden Sie https
Eigenschaftscode
Diese URL ist die Adresse, die wir dem externen Netzwerk zuordnen , die wir sp?ter brauchen werden. Dann werden zwei Tool-Klassen ben?tigt. Die Funktion dieser Tool-Klasse besteht darin, den Rückgabewert nach dem Senden einer http-Anfrage in der Java-Aktion zu erhalten.
AppID = wxf00**c3dd2ebfa0 AppSecret = 3cb220755f****506dc35391aa5c03ec url = https://xinzhi.tunnel.mobi
WeixinUtil.java und MyX509TrustManager.java
Java-Code Für https-Anfragen ben?tigen wir einen Zertifikat-Trust-Manager, der jedoch die X509TrustManager-Schnittstelle implementieren muss wie folgt:
Java-Code
package com.zhtx.common.util; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.ConnectException; import java.net.URL; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.TrustManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 公眾平臺(tái)通用接口工具類 * * @author xinz * @date 2015-10-14 */ public class WeixinUtil { private static Logger log = LoggerFactory.getLogger(WeixinUtil.class); /** * 發(fā)起https請(qǐng)求并獲取結(jié)果 * * @param requestUrl 請(qǐng)求地址 * @param requestMethod 請(qǐng)求方式(GET、POST) * @param outputStr 提交的數(shù)據(jù) * @return JSONObject(通過JSONObject.get(key)的方式獲取json對(duì)象的屬性值) */ public static String httpRequest(String requestUrl, String requestMethod, String outputStr) { StringBuffer buffer = new StringBuffer(); try { // 創(chuàng)建SSLContext對(duì)象,并使用我們指定的信任管理器初始化 TrustManager[] tm = { new MyX509TrustManager() }; SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE"); sslContext.init(null, tm, new java.security.SecureRandom()); // 從上述SSLContext對(duì)象中得到SSLSocketFactory對(duì)象 SSLSocketFactory ssf = sslContext.getSocketFactory(); URL url = new URL(requestUrl); HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection(); httpUrlConn.setSSLSocketFactory(ssf); httpUrlConn.setDoOutput(true); httpUrlConn.setDoInput(true); httpUrlConn.setUseCaches(false); // 設(shè)置請(qǐng)求方式(GET/POST) httpUrlConn.setRequestMethod(requestMethod); if ("GET".equalsIgnoreCase(requestMethod)) httpUrlConn.connect(); // 當(dāng)有數(shù)據(jù)需要提交時(shí) if (null != outputStr) { OutputStream outputStream = httpUrlConn.getOutputStream(); // 注意編碼格式,防止中文亂碼 outputStream.write(outputStr.getBytes("UTF-8")); outputStream.close(); } // 將返回的輸入流轉(zhuǎn)換成字符串 InputStream inputStream = httpUrlConn.getInputStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8"); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String str = null; while ((str = bufferedReader.readLine()) != null) { buffer.append(str); } bufferedReader.close(); inputStreamReader.close(); // 釋放資源 inputStream.close(); inputStream = null; httpUrlConn.disconnect(); } catch (ConnectException ce) { log.error("Weixin server connection timed out."); } catch (Exception e) { log.error("https request error:{}", e); } return buffer.toString(); } }
WeChat gibt eine POJO-Parameterklasse zurück:
Java-Code
package com.zhtx.common.util; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import javax.net.ssl.X509TrustManager; /** * 證書信任管理器(用于https請(qǐng)求) * * @author xinz * @date 2015-10-14 */ public class MyX509TrustManager implements X509TrustManager { public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public X509Certificate[] getAcceptedIssuers() { return null; } }
Klasse zur überprüfung der Berechtigungsnachweise: Java-Code
private String openid; //用戶的唯一標(biāo)識(shí) private String nickname;//用戶昵稱 private Integer sex;// 用戶的性別,值為1時(shí)是男性,值為2時(shí)是女性,值為0時(shí)是未知 private String province;//用戶個(gè)人資料填寫的省份 private String city;//普通用戶個(gè)人資料填寫的城市 private String country;// 國(guó)家,如中國(guó)為CN private String headimgurl; // 用戶頭像,最后一個(gè)數(shù)值代表正方形頭像大?。ㄓ?、46、64、96、132數(shù)值可選,0代表640*640正方形頭像),用戶沒有頭像時(shí)該項(xiàng)為空。若用戶更換頭像,原有頭像URL將失效。 private String privilege;// 用戶特權(quán)信息,json 數(shù)組,如微信沃卡用戶為(chinaunicom) private String unionid;// 只有在用戶將公眾號(hào)綁定到微信開放平臺(tái)帳號(hào)后,才會(huì)出現(xiàn)該字段。詳見:獲取用戶個(gè)人信息(UnionID機(jī)制) private String access_token;
Austauschcode für Webseitenautorisierung access_tokenJava-Code
private String access_token; private String expires_in; private String refresh_token; private String openid; private String scope; private String unionid;
關(guān)于微信頭像的,獲取的是一個(gè)http的url,則需要將圖片下載到服務(wù)器存儲(chǔ),然后獲得相對(duì)路徑:
Java代碼
/** * 使用url或者h(yuǎn)ttp存入文件 * @Title: fileUpload * @param @param fileUrl 文件url,可以是http * @param @param path 文件存儲(chǔ)路徑 * @return void * @throws xinz */ public static void fileUpload (String fileUrl,String path){ //讀取文件 String s1 = fileUrl; java.io.InputStream is = null; //定義一個(gè)輸入流。 BufferedInputStream bis = null;//定義一個(gè)帶緩沖的輸入流 。 //寫到本地 BufferedOutputStream bos = null; //定義一個(gè)帶緩沖的輸出流。 try{ java.net.URL url = new java.net.URL(s1);//創(chuàng)建一個(gè)URL對(duì)象。 is = url.openStream();//打開到此 URL 的連接并返回一個(gè)用于從該連接讀入的 InputStream。 bis = new java.io.BufferedInputStream(is); File file = new File(path); if(!file.exists()){ //測(cè)試此抽象路徑名表示的文件或目錄是否存在。 file.createNewFile(); //創(chuàng)建此抽象路徑名表示的文件或目錄。 } bos = new BufferedOutputStream(new FileOutputStream(file));; byte[] b = new byte[1024]; //創(chuàng)建字節(jié)數(shù)組。 while(bis.read(b)!=-1){//輸入流中的數(shù)據(jù)如果還有下一行(!=-1)將繼續(xù)循環(huán) bos.write(b);//將字節(jié)數(shù)組寫入輸出流。 } }catch(Exception e){ System.out.println(e.toString()); }finally{ try{ bos.flush();//刷新此緩沖的輸出流。 bis.close(); //關(guān)閉此輸入流 。 }catch(Exception e){ System.out.println(e.toString()); } } }
現(xiàn)在是基礎(chǔ)工作都做完了,現(xiàn)在開發(fā)代碼的開發(fā),在微信開發(fā)文檔中 http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html 有提到每一個(gè)步驟,然后我們按照這個(gè)步驟開發(fā):
1第一步:用戶同意授權(quán),獲取code
2第二步:通過code換取網(wǎng)頁(yè)授權(quán)access_token
3第三步:刷新access_token(如果需要)
4第四步:拉取用戶信息(需scope為 snsapi_userinfo)
5附:檢驗(yàn)授權(quán)憑證(access_token)是否有效
第一步:用戶同意授權(quán),獲取code
這里的url就是前面所準(zhǔn)備在properties中的url了。
Java代碼
/** * 微信用戶授權(quán) * @Title: wechatOauth * @param @param request * @param @param response * @param @param model * @param @return * @return String * @throws xinz */ @RequestMapping("wechatOauth") public String wechatOauth(HttpServletRequest request,HttpServletResponse response,Model model) { /** * 1 第一步:用戶同意授權(quán),獲取code */ //首先拿到微信公眾號(hào)的AppID、AppSecret等參數(shù) String AppID = ZhtxHelper.getApplicationResourcesProp("sendSms","AppID"); String urlOpen = ZhtxHelper.getApplicationResourcesProp("sendSms","url"); //如果用戶授權(quán)成功則跳轉(zhuǎn)到此url String loginUrl = ""+urlOpen+"/zhtx-wap/weixin/getAccessToken"; //用戶授權(quán),獲取code String url = "https://open.weixin.qq.com/connect/oauth2/authorize?" + "appid="+AppID+"" + "&redirect_uri="+loginUrl+"" + "&response_type=code" + "&scope=snsapi_userinfo" + "&state=123#wechat_redirect"; //forward redirect return "redirect:"+url+""; }
第二步:通過code換取網(wǎng)頁(yè)授權(quán)access_token
Java代碼
/** * 通過code換取網(wǎng)頁(yè)授權(quán)access_token * @Title: getAccessToken * @param @param request * @param @param response * @param @param model * @param @return * @return String * @throws xinz */ @RequestMapping("getAccessToken") public String getAccessToken(HttpServletRequest request,HttpServletResponse response,Model model) { //獲取到返回的參數(shù) try { //首先拿到微信公眾號(hào)的AppID、AppSecret等參數(shù) String AppID = ZhtxHelper.getApplicationResourcesProp("sendSms","AppID"); String AppSecret = ZhtxHelper.getApplicationResourcesProp("sendSms","AppSecret"); String code = request.getParameter("code"); String url = null; if(code!=null){ /** * 2 第二步:通過code換取網(wǎng)頁(yè)授權(quán)access_token */ //用戶授權(quán),獲取code url = "https://api.weixin.qq.com/sns/oauth2/access_token?" + "appid="+AppID+"" + "&secret="+AppSecret+"" + "&code="+code+"" + "&grant_type=authorization_code"; String requestMethod = "GET"; String outputStr = ""; String httpRequest = WeixinUtil.httpRequest(url, requestMethod, outputStr); System.out.println("通過code換取網(wǎng)頁(yè)授權(quán)access_token="+httpRequest); AccessTokenModel accTok = JSON.parseObject(httpRequest, AccessTokenModel.class); /** * 4 第四步:拉取用戶信息(需scope為 snsapi_userinfo) */ //用戶授權(quán),獲取code String urlUser = "https://api.weixin.qq.com/sns/userinfo?" + "access_token="+accTok.getAccess_token()+"" + "&openid="+accTok.getOpenid()+"" + "&lang=zh_CN"; String httpUser = WeixinUtil.httpRequest(urlUser, requestMethod, outputStr); System.out.println("拉取用戶信息=="+httpUser); WechatUser wechatUser = JSON.parseObject(httpUser, WechatUser.class); wechatUser.setAccess_token(accTok.getAccess_token()); /** * 5 附:檢驗(yàn)授權(quán)憑證(access_token)是否有效 */ WechatMsg checkAccessToken = checkAccessToken(wechatUser.getAccess_token(), wechatUser.getOpenid()); if(checkAccessToken.getErrcode().equals("0")){ CurrentSession.setAttribute("wechatUser", wechatUser); WechatUser wechatU = new WechatUser(); wechatU.setOpenid(wechatUser.getOpenid()); List<WechatUser> findWechatUser = wechatUserService.findWechatUser(wechatU); if(findWechatUser.size()>0){ UserRegister userRegister = userService.findUserByOpenid(wechatUser.getOpenid()); CurrentSession.setAttribute("user", userRegister); return "redirect:/user/userCenter"; }else{ return "/jsp/wechat/wechatregister"; } }else{ //如果access_token失效,則再次進(jìn)行調(diào)用,并存儲(chǔ)access_token值,access_token有效期為2個(gè)小時(shí) this.wechatOauth(request, response, model); } } } catch (Exception e) { System.out.println("===拉取用戶出錯(cuò)==="); e.printStackTrace(); } //forward redirect return "/jsp/wechat/wechatregister"; }
第四步:拉取用戶,和自己網(wǎng)站用戶綁定
Java代碼
/** * 微信關(guān)聯(lián)用戶 * @Title: saveWechatUser * @param @param mobilePhone * @param @param password * @param @param validataCode * @param @return * @return String * @throws xinz */ @RequestMapping("saveWechatUser") public String saveWechatUser(HttpServletResponse response,String mobilePhone,String password,String validataCode){ //使用手機(jī)號(hào)來判斷該手機(jī)是否在注冊(cè) UserRegister userRegister = userService.findUserByPhone(mobilePhone); WechatUser wechatUser = (WechatUser)CurrentSession.getAttribute("wechatUser"); WechatUser wechatU = new WechatUser(); wechatU.setOpenid(wechatUser.getOpenid()); List<WechatUser> findWechatUser = wechatUserService.findWechatUser(wechatU); if(findWechatUser.size()>0 && userRegister.getOpenid()!=null){ CurrentSession.setAttribute("user", userRegister); return "redirect:/user/userCenter"; }else{ //如果沒有注冊(cè),開始注冊(cè) if(userRegister==null){ Result<UserRegister> saveUserInfoApp = userRegisterService.saveUserInfoApp(mobilePhone, password, validataCode,wechatUser); if(saveUserInfoApp.getState()==1){ //進(jìn)行微信和用戶的關(guān)聯(lián) wechatUserService.saveWechatUser(wechatUser); CurrentSession.setAttribute("user", userRegister); return "redirect:/user/userCenter"; } }else if(userRegister.getOpenid()==null || userRegister.getOpenid().equals("")){ //否則,查詢出用戶信息,放入session中,關(guān)聯(lián)微信,跳轉(zhuǎn)到用戶中心 UserRegister userReg = new UserRegister(); userReg.setId(userRegister.getId()); //存入微信openid userReg.setOpenid(wechatUser.getOpenid()); userService.upUser(userReg); UserInfo user = new UserInfo(); //存入微信頭像 //圖片類型 String dateStr =DateUtil.format(DateUtil.getCurrentDate(), "yyyyMMdd") + "/"; //圖片類型 String imgType = "JPG"; //微信頭像名稱 String app2DBarNameAndType = UuidUtil.getUUID()+"."+imgType; //微信頭像路徑 String path = ZhtxHelper.getApplicationResourcesProp("application","app.img.projectpath")+ SysConstant.GOODS2DBARPATH + dateStr; File file1 = new File(path); file1.mkdirs(); //圖片全路徑 String imgUrl = SysConstant.GOODS2DBARPATH + dateStr+app2DBarNameAndType; FileUtil.fileUpload(wechatUser.getHeadimgurl(), path); user.setRegisterId(userRegister.getId()); user.setImageUrl(imgUrl); userInfoService.updateUserInfo(user); //存入微信用戶 wechatUserService.saveWechatUser(wechatUser); UserRegister userW = userService.findUserByPhone(mobilePhone); CurrentSession.setAttribute("user", userW); return "redirect:/user/userCenter"; }else{ CurrentSession.setAttribute("user", userRegister); return "redirect:/user/userCenter"; } } return "redirect:/user/userCenter"; }
附:檢驗(yàn)授權(quán)憑證(access_token)是否有效
Java代碼
/** * 檢驗(yàn)授權(quán)憑證(access_token)是否有效 * @Title: checkAccessToken * @param @param access_token 網(wǎng)頁(yè)授權(quán)接口調(diào)用憑證,注意:此access_token與基礎(chǔ)支持的access_token不同 * @param @param openid 用戶的唯一標(biāo)識(shí) * @return WechatMsg 返回消息實(shí)體 * @throws xinz */ public static WechatMsg checkAccessToken(String access_token,String openid){ String requestMethod = "GET"; String outputStr = ""; String url = "https://api.weixin.qq.com/sns/auth?" + "access_token="+access_token+"" + "&openid="+openid+""; String httpmsg = WeixinUtil.httpRequest(url, requestMethod, outputStr); System.out.println("拉取用戶信息返回消息=="+httpmsg); WechatMsg msg = JSON.parseObject(httpmsg, WechatMsg.class); return msg; }
?然后在網(wǎng)頁(yè)端,則是需要編寫H5頁(yè)面,進(jìn)行自己網(wǎng)站和微信用戶的關(guān)聯(lián),我這里是使用手機(jī)號(hào),用戶輸入手機(jī)號(hào),進(jìn)行判斷,如果注冊(cè)過就直接關(guān)聯(lián),如果用戶沒有注冊(cè)則進(jìn)行注冊(cè)后關(guān)聯(lián),完成后跳轉(zhuǎn)到會(huì)員中心。
Das obige ist der detaillierte Inhalt vonAusführliche Erl?uterung des Beispiels zum Erhalten der OAuth2.0-Webseitenautorisierungsauthentifizierung und zum Abrufen von Benutzerinformationen für die WeChat-Entwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP ist eine Open-Source-Skriptsprache, die in der Webentwicklung und serverseitigen Programmierung, insbesondere in der WeChat-Entwicklung, weit verbreitet ist. Heutzutage beginnen immer mehr Unternehmen und Entwickler, PHP für die WeChat-Entwicklung zu verwenden, da es sich zu einer wirklich leicht zu erlernenden und benutzerfreundlichen Entwicklungssprache entwickelt hat. Bei der WeChat-Entwicklung sind die Nachrichtenverschlüsselung und -entschlüsselung ein sehr wichtiges Thema, da sie die Datensicherheit betreffen. Bei Nachrichten ohne Verschlüsselungs- und Entschlüsselungsmethoden k?nnen Hacker leicht an die Daten gelangen, was eine Bedrohung für Benutzer darstellt.

Bei der Entwicklung ?ffentlicher WeChat-Konten wird h?ufig die Abstimmungsfunktion verwendet. Die Voting-Funktion ist eine tolle M?glichkeit für Nutzer, sich schnell an Interaktionen zu beteiligen und ist darüber hinaus ein wichtiges Tool für die Durchführung von Veranstaltungen und Meinungsumfragen. In diesem Artikel erfahren Sie, wie Sie PHP zur Implementierung der WeChat-Abstimmungsfunktion verwenden. Holen Sie sich die Autorisierung des offiziellen WeChat-Kontos. Zuerst müssen Sie die Autorisierung des offiziellen WeChat-Kontos einholen. Auf der ?ffentlichen WeChat-Plattform müssen Sie die API-Adresse des ?ffentlichen WeChat-Kontos, des offiziellen Kontos und des dem ?ffentlichen Konto entsprechenden Tokens konfigurieren. Bei unserer Entwicklung mit der PHP-Sprache müssen wir den von WeChat offiziell bereitgestellten PH verwenden

Mit der Popularit?t von WeChat beginnen immer mehr Unternehmen, es als Marketinginstrument zu nutzen. Die WeChat-Gruppen-Messaging-Funktion ist für Unternehmen eines der wichtigen Mittel zur Durchführung von WeChat-Marketing. Wenn Sie sich jedoch nur auf den manuellen Versand verlassen, ist dies für Vermarkter eine ?u?erst zeitaufw?ndige und mühsame Aufgabe. Daher ist es besonders wichtig, ein WeChat-Massen-Messaging-Tool zu entwickeln. In diesem Artikel wird erl?utert, wie Sie mit PHP WeChat-Massen-Messaging-Tools entwickeln. 1. Vorbereitungsarbeiten Um WeChat-Massen-Messaging-Tools zu entwickeln, müssen wir die folgenden technischen Punkte beherrschen: Grundkenntnisse der PHP-Entwicklung der ?ffentlichen WeChat-Plattform Entwicklungstools: Sub

WeChat ist derzeit eine der sozialen Plattformen mit der gr??ten Nutzerbasis weltweit. Mit der Popularit?t des mobilen Internets beginnen immer mehr Unternehmen die Bedeutung des WeChat-Marketings zu erkennen. Bei der Durchführung von WeChat-Marketing ist der Kundenservice ein entscheidender Bestandteil. Um das Kundenservice-Chatfenster besser verwalten zu k?nnen, k?nnen wir die PHP-Sprache für die WeChat-Entwicklung verwenden. 1. Einführung in die PHP-WeChat-Entwicklung PHP ist eine serverseitige Open-Source-Skriptsprache, die im Bereich der Webentwicklung weit verbreitet ist. In Kombination mit der Entwicklungsschnittstelle der ?ffentlichen WeChat-Plattform k?nnen wir die PHP-Sprache zur Durchführung von WeChat verwenden

Bei der Entwicklung ?ffentlicher WeChat-Konten ist die Benutzer-Tag-Verwaltung eine sehr wichtige Funktion, die es Entwicklern erm?glicht, ihre Benutzer besser zu verstehen und zu verwalten. In diesem Artikel wird erl?utert, wie Sie mit PHP die WeChat-Benutzer-Tag-Verwaltungsfunktion implementieren. 1. Erhalten Sie die OpenID des WeChat-Benutzers. Bevor wir die WeChat-Benutzer-Tag-Verwaltungsfunktion verwenden, müssen wir zun?chst die OpenID des Benutzers abrufen. Bei der Entwicklung ?ffentlicher WeChat-Konten ist es üblich, die OpenID durch Benutzerautorisierung zu erhalten. Nachdem die Benutzerautorisierung abgeschlossen ist, k?nnen wir den Benutzer über den folgenden Code abrufen

Da WeChat zu einem immer wichtigeren Kommunikationsmittel im Leben der Menschen wird, wird seine agile Messaging-Funktion schnell von einer gro?en Anzahl von Unternehmen und Einzelpersonen bevorzugt. Für Unternehmen ist die Entwicklung von WeChat zu einer Marketingplattform zu einem Trend geworden, und die Bedeutung der WeChat-Entwicklung ist nach und nach immer wichtiger geworden. Unter diesen wird die Gruppensendefunktion noch h?ufiger verwendet. Wie implementiert man als PHP-Programmierer Datens?tze zum Senden von Gruppennachrichten? Im Folgenden erhalten Sie eine kurze Einführung. 1. Verstehen Sie die Entwicklungskenntnisse im Zusammenhang mit ?ffentlichen WeChat-Konten, bevor Sie verstehen, wie Datens?tze zum Senden von Gruppennachrichten implementiert werden

So verwenden Sie PHP zur Entwicklung ?ffentlicher WeChat-Konten. ?ffentliche WeChat-Konten sind für viele Unternehmen zu einem wichtigen Kanal für Werbung und Interaktion geworden. PHP als h?ufig verwendete Websprache kann auch zur Entwicklung ?ffentlicher WeChat-Konten verwendet werden. In diesem Artikel werden die spezifischen Schritte zur Verwendung von PHP zum Entwickeln ?ffentlicher WeChat-Konten vorgestellt. Schritt 1: Erhalten Sie das Entwicklerkonto des offiziellen WeChat-Kontos. Bevor Sie mit der Entwicklung des offiziellen WeChat-Kontos beginnen, müssen Sie ein Entwicklerkonto des offiziellen WeChat-Kontos beantragen. Informationen zum spezifischen Registrierungsprozess finden Sie auf der offiziellen Website der ?ffentlichen WeChat-Plattform

PHP Amazon API-Entwicklung: So erhalten Sie Benutzerinformationen und Kontoberechtigungen Einführung Amazon bietet einen umfangreichen Satz an APIs, die Entwicklern eine einfache Interaktion mit der Amazon-Plattform erm?glichen. Unter diesen ist das Abrufen von Benutzerinformationen und Kontoberechtigungen eine der am h?ufigsten verwendeten Funktionen in der Entwicklung. In diesem Artikel wird erl?utert, wie Sie mit PHP die Amazon-API entwickeln, um Benutzerinformationen und Kontoberechtigungen zu erhalten. Schritt 1: Erstellen Sie ein Amazon-Entwicklerkonto. Bevor Sie beginnen, müssen Sie ein Amazon-Entwicklerkonto erstellen. Besuchen Sie das Amazon Developer Center (https:
