国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ php教程 PHP開發(fā) WeChat ミニ プログラム WeChat OpenId の詳細な説明とサンプル コードを入手する

WeChat ミニ プログラム WeChat OpenId の詳細な説明とサンプル コードを入手する

Dec 08, 2016 pm 01:21 PM
微信

WeChat OpenIdを取得します

まずコードを取得します

次に、コードを通じて認証トークンを取得し、認証トークンからopenidを取り出してフロントデスクに渡します

認証コールバックページのドメイン名を設定することを忘れないでくださいWeChatアカウント

フローチャートは次のとおりです

WeChat ミニ プログラム WeChat OpenId の詳細な説明とサンプル コードを入手する

メインコード

ページjsコード

/* 寫cookie */
function setCookie(name, value) {
  var Days = 30;
  var exp = new Date();
  exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
  document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString() + ";path=/";
}
/* 讀cookie */
function getCookie(name) {
  var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
  if (arr != null) {
    return unescape(arr[2]);
  }
  return null;
}
 
/* 獲取URL參數(shù) */
function getUrlParams(name) {
  var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  var r = window.location.search.substr(1).match(reg);
  if (r != null) {
    return unescape(r[2]);
  }
  return null;
}
 
/* 獲取openid */
function getOpenId(url) {
  var openid = getCookie("usropenid");
  if (openid == null) {
    openid = getUrlParams('openid');
    alert("openid="+openid);
    if (openid == null) {
      window.location.href = "wxcode?url=" + url;
    } else {
      setCookie("usropenid", openid);
    }
  }
}

WxCodeサーブレットコード

//訪問微信獲取code
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
  String state = req.getParameter("url");
  //WxOpenIdServlet的地址
  String redirect ="http://"+Configure.SITE+"/wxopenid";
  redirect = URLEncoder.encode(redirect, "utf-8");
  StringBuffer url = new StringBuffer("https://open.weixin.qq.com/connect/oauth2/authorize?appid=")
      .append(Configure.APP_ID).append("&redirect_uri=").append(redirect)
      .append("&response_type=code&scope=snsapi_base&state=").append(state).append("#wechat_redirect");
  resp.sendRedirect(url.toString());
}

WxOpenIdServlet コード

//訪問微信獲取openid
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
  String code = req.getParameter("code");
  String state = req.getParameter("state");
  Result ret = new Result();
  AuthToken token = WXUtil.getAuthToken(code);
  if(null != token.getOpenid()){
    ret.setCode(0);
    log.info("====openid=="+token.getOpenid());
    Map<String,String> map = new HashMap<String,String>();
    map.put("openid", token.getOpenid());
    map.put("state", state);
    ret.setData(map);
  }else{
    ret.setCode(-1);
    ret.setMsg("登錄錯誤");
  }
  String redUrl = state+"?openid="+token.getOpenid();
  resp.sendRedirect(redUrl);
}

AuthToken の取得 (WXUtil.getAuthToken(code)) コード

public static AuthToken getAuthToken(String code){
  AuthToken vo = null;
  try {
    String uri = "https://api.weixin.qq.com/sns/oauth2/access_token?";
    StringBuffer url = new StringBuffer(uri);
    url.append("appid=").append(Configure.APP_ID);
    url.append("&secret=").append(Configure.APP_SECRET);
    url.append("&code=").append(code);
    url.append("&grant_type=").append("authorization_code");
    HttpURLConnection conn = HttpClientUtil.CreatePostHttpConnection(url.toString());
    InputStream input = null;
    if (conn.getResponseCode() == 200) {
      input = conn.getInputStream();
    } else {
      input = conn.getErrorStream();
    }
    vo = JSON.parseObject(new String(HttpClientUtil.readInputStream(input),"utf-8"),AuthToken.class);
  } catch (Exception e) {
    log.error("getAuthToken error", e);
  }
  return vo;
}

HttpClientUtil class

package com.huatek.shebao.util;
 
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
 
public class HttpClientUtil {
 
  // 設置body體
  public static void setBodyParameter(String sb, HttpURLConnection conn)
      throws IOException {
    DataOutputStream out = new DataOutputStream(conn.getOutputStream());
    out.writeBytes(sb);
    out.flush();
    out.close();
  }
 
  // 添加簽名header
  public static HttpURLConnection CreatePostHttpConnection(String uri) throws MalformedURLException,
      IOException, ProtocolException {
    URL url = new URL(uri);
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setUseCaches(false);
    conn.setDoInput(true);
    conn.setDoOutput(true);
    conn.setRequestMethod("POST");
    conn.setInstanceFollowRedirects(true);
    conn.setConnectTimeout(30000);
    conn.setReadTimeout(30000);
    conn.setRequestProperty("Content-Type","application/json");
    conn.setRequestProperty("Accept-Charset", "utf-8");
    conn.setRequestProperty("contentType", "utf-8");
    return conn;
  }
 
  public static byte[] readInputStream(InputStream inStream) throws Exception {
    ByteArrayOutputStream outStream = new ByteArrayOutputStream();
    byte[] buffer = new byte[1024];
    int len = 0;
    while ((len = inStream.read(buffer)) != -1) {
      outStream.write(buffer, 0, len);
    }
    byte[] data = outStream.toByteArray();
    outStream.close();
    inStream.close();
    return data;
  }
 
}

AuthToken をカプセル化する VO クラス

package com.huatek.shebao.wxpay;
 
public class AuthToken {
  private String access_token;
  private Long expires_in;
  private String refresh_token;
  private String openid;
  private String scope;
  private String unionid;
  private Long errcode;
  private String errmsg;
  public String getAccess_token() {
    return access_token;
  }
  public void setAccess_token(String access_token) {
    this.access_token = access_token;
  }
  public Long getExpires_in() {
    return expires_in;
  }
  public void setExpires_in(Long expires_in) {
    this.expires_in = expires_in;
  }
  public String getRefresh_token() {
    return refresh_token;
  }
  public void setRefresh_token(String refresh_token) {
    this.refresh_token = refresh_token;
  }
  public String getOpenid() {
    return openid;
  }
  public void setOpenid(String openid) {
    this.openid = openid;
  }
  public String getScope() {
    return scope;
  }
  public void setScope(String scope) {
    this.scope = scope;
  }
  public String getUnionid() {
    return unionid;
  }
  public void setUnionid(String unionid) {
    this.unionid = unionid;
  }
  public Long getErrcode() {
    return errcode;
  }
  public void setErrcode(Long errcode) {
    this.errcode = errcode;
  }
  public String getErrmsg() {
    return errmsg;
  }
  public void setErrmsg(String errmsg) {
    this.errmsg = errmsg;
  }
}


このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Tiktok Webバージョン入學ログインリンクアドレスhttps tiktok webバージョン入學ウェブサイト無料 Tiktok Webバージョン入學ログインリンクアドレスhttps tiktok webバージョン入學ウェブサイト無料 May 22, 2025 pm 04:24 PM

Douyin Webバージョンのログインポータルはhttps://www.douyin.com/です。ログイン手順には次のものが含まれます。1。ブラウザを開きます。 2。URLを入力してくださいhttps://www.douyin.com/; 3. [ログイン]ボタンをクリックして、ログインメソッドを選択します。 4.アカウントのパスワードを入力します。 5。完全にログインします。 Webバージョンは、ブラウジング、検索、インタラクション、ビデオのアップロード、個人用ホームページ管理などの機能を提供し、大畫面エクスペリエンス、マルチタスク、便利なアカウント管理、データ統(tǒng)計などの利點があります。

コピーコミック(公式ウェブサイトの入り口)_COPYコミック(NBA)本物のオンライン読書ポータル コピーコミック(公式ウェブサイトの入り口)_COPYコミック(NBA)本物のオンライン読書ポータル Jun 05, 2025 pm 04:12 PM

コミックのコピーは間違いなく見逃せない寶物です。ここでは、情熱的で刺激的な競爭力のあるストーリーからリラックスしたユーモラスな毎日のコメディまで、さまざまなスタイルのバスケットボールコミックを見つけることができます。クラシックを追體験したいか、新しい作品を発見したいかにかかわらず、漫畫をコピーすることであなたのニーズを満たすことができます。 Copy Comicsが提供する本物のオンライン読書ポータルを通じて、海賊版のリソースのトラブルに別れを告げ、高解像度とスムーズな読書體験を楽しんで、お気に入りのコミック作家をサポートし、本物のコミックの発展に貢獻できます。

UCブラウザまたはQQブラウザのどちらが良いですか? UCおよびQQブラウザーの詳細な比較と評価 UCブラウザまたはQQブラウザのどちらが良いですか? UCおよびQQブラウザーの詳細な比較と評価 May 22, 2025 pm 08:33 PM

UCブラウザまたはQQブラウザの選択は、ニーズに依存します。1。UCブラウザは、高速負荷とリッチなエンターテイメント機能を追求するユーザーに適しています。 2。QQブラウザは、Tencent製品との安定性とシームレスな接続が必要なユーザーに適しています。

トップ10 AIライティングソフトウェアランキングは、どのAIライティングソフトウェアが無料であるかを推奨しています トップ10 AIライティングソフトウェアランキングは、どのAIライティングソフトウェアが無料であるかを推奨しています Jun 04, 2025 pm 03:27 PM

2025年の最新の業(yè)界動向と多次元評価データを組み合わせることで、以下は、一般的な創(chuàng)造、學術研究、商業(yè)マーケティングなどの主流のシナリオをカバーしながら、中國の最適化とローカリゼーションサービスを考慮しながら、包括的なAIライティングソフトウェアの推奨事項のトップ10です。

無料のコミックについては、NISコミックのオンラインで公式ページをご覧ください。 NIS Comicsログインページの無料エントリWebサイト 無料のコミックについては、NISコミックのオンラインで公式ページをご覧ください。 NIS Comicsログインページの無料エントリWebサイト Jun 12, 2025 pm 08:18 PM

コミック愛好家のために作成することに専念する沒入型の読書體験プラットフォームである素敵なコミックは、自宅と海外で多數(shù)の高品質のコミックリソースを集めます。コミックリーディングプラットフォームであるだけでなく、コミックアーティストや読者をつなぎ、コミック文化を共有するコミュニティでもあります。 NES Comicsを使用すると、シンプルで直感的なインターフェイスデザインと強力な検索機能を通じて、お気に入りの作品を簡単に見つけて、スムーズで快適な読書體験を楽しむことができます。長い待っていて退屈な作戦に別れを告げ、すぐに素敵な漫畫の世界に入り、コミックの旅を始めましょう!

カエルマンオンライン視聴玄関マンカエルマン(ウェブページの入り口)オンラインで見る カエルマンオンライン視聴玄関マンカエルマン(ウェブページの入り口)オンラインで見る Jun 12, 2025 pm 08:06 PM

フロッグマンコミックは、豊かで多様なコミックリソースと便利でスムーズなオンライン読書體験を備えた多くのコミック愛好家にとって最初の選択肢となっています。それは活気のある池のようなもので、新鮮で興味深い物語が絶えず現(xiàn)れており、あなたが発見して探索するのを待っています。 Frog Man Comicsは、情熱的な冒険から甘い愛、ファンタジーやサイエンスフィクションからサスペンス推論まで、どんなジャンルが好きであっても、お気に入りの作品を見つけることができます。シンプルで直感的なインターフェイスデザインにより、簡単に開始したり、読みたい漫畫をすぐに見つけたり、エキサイティングなコミックの世界に沒頭したりできます。

Baoziコミック(入り口)_ Baoziコミック(新しい入り口)2025 Baoziコミック(入り口)_ Baoziコミック(新しい入り口)2025 Jun 05, 2025 pm 04:18 PM

ここでは、漫畫の広大な海を楽しみ、情熱的な若い男のコミックから繊細で感動的な女の子のコミック、サスペンスで脳を燃やすミステリーコミックから、リラックスした面白い毎日のコミックまで、すべてがあり、常にあなたの心に觸れることができるものがあります。私たちは大量の本物のコミックリソースを持っているだけでなく、最新の作品を常に紹介し、更新して、お気に入りのコミックをできるだけ早く読むことができるようにします。

b最新の登録アドレス_ Exchangeを登録する方法 b最新の登録アドレス_ Exchangeを登録する方法 May 26, 2025 pm 07:12 PM

2025b Anhuiの最新の公式ウェブサイトは、https://www.marketwebb.co/zh-cn/join?ref=507720986&amp; Type = Wenzi; Binance Exchangeは、北米、ヨーロッパ、臺灣、中東、香港、マレーシアを含む180か國と地域にサービスを提供するグローバルな暗號通貨取引所です。 600を超える暗號通貨を提供し、世界中に2億7000萬人の登録ユーザーがいます。

See all articles