ホームページ > バックエンド開発 > PHPチュートリアル > PHPでWeChatの共有配信アドレスを取得する方法を解説

PHPでWeChatの共有配信アドレスを取得する方法を解説

jacklove
リリース: 2023-04-02 15:32:01
オリジナル
2158 人が閲覧しました

この記事では、PHP で WeChat の共​​有配信アドレスを取得する方法を主に詳しく紹介します。一定の参考値があります。興味のある友達は参考にしてください。

この記事の例では、PHP をみんなで共有しています。参考までに、WeChat 共有配信アドレスの具体的なコードを記載します。具体的な内容は次のとおりです。

#WeChat が許可したディレクトリである必要があります。私はルート ディレクトリに直接置き、他のディレクトリは無効です

/* 
* 在执行此操作之前 首先判断您是否开通了 微信支付功能 审核通过后均可使用一下代码 
* 1、设置微信公众平台网页授权 域名 www.abc.com 
* 2、设置下面的 “ 微信参数 ” 
* 3、把 当前文件 index.php 放入根目录 
* 4、用微信访问http://www.abc.com/index.php 就可以了 切记一定是微信哦 
* */
<?php
//微信参数
$appId = &#39;*********&#39;;
$appSecret = &#39;*****************&#39;;

//获取get参数
$code = $_GET[&#39;code&#39;];

//获取 code
$redirect_uri = &#39;http://&#39;.$_SERVER[&#39;HTTP_HOST&#39;].$_SERVER[&#39;REQUEST_URI&#39;];
$url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appId&redirect_uri=".urlencode($redirect_uri)."&response_type=code&scope=jsapi_address&state=cft#wechat_redirect";
if(empty($code)){
 header("location: $url");
}

//获取 access_token
$access_token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appId."&secret=".$appSecret."&code=".$code."&grant_type=authorization_code";
$access_token_json = getUrl($access_token_url);
$access_token = json_decode($access_token_json,true);


// 定义参数
$timestamp = time();
$nonceStr = rand(100000,999999);
$Parameters = array();
//===============下面数组 生成SING 使用=====================
$Parameters[&#39;appid&#39;] = $appId;
$Parameters[&#39;url&#39;] = $redirect_uri;
$Parameters[&#39;timestamp&#39;] = "$timestamp";
$Parameters[&#39;noncestr&#39;] = "$nonceStr";
$Parameters[&#39;accesstoken&#39;] = $access_token[&#39;access_token&#39;];
// 生成 SING
$addrSign = genSha1Sign($Parameters);


function getUrl($url){
 $opts = array(
  CURLOPT_TIMEOUT  => 30,
  CURLOPT_RETURNTRANSFER => 1,
  CURLOPT_SSL_VERIFYPEER => false,
  CURLOPT_SSL_VERIFYHOST => false,
 );
 /* 根据请求类型设置特定参数 */
 $opts[CURLOPT_URL] = $url ;
 $ch = curl_init();
 curl_setopt_array($ch, $opts);
 $data = curl_exec($ch);
 $error = curl_error($ch);
 curl_close($ch);
 return $data;
}
function p($star){
 echo &#39;<pre class="brush:php;toolbar:false">&#39;;
 print_r($star);
 echo &#39;
'; } function logtext($content){ $fp=fopen("json.ini","a"); fwrite($fp,"\r\n".$content); fclose($fp); } //创建签名SHA1 function genSha1Sign($Parameters){ $signPars = ''; ksort($Parameters); foreach($Parameters as $k => $v) { if("" != $v && "sign" != $k) { if($signPars == '') $signPars .= $k . "=" . $v; else $signPars .= "&". $k . "=" . $v; } } //$signPars = http_build_query($Parameters); $sign = SHA1($signPars); $Parameters['sign'] = $sign; return $sign; } ?>
ログイン後にコピー

<!DOCTYPE html>
<html>
<head>
 <title>获取共享地址</title>
 <meta charset="utf-8" />
 <meta id="viewport" name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1; user-scalable=no;" />
</head>
<script language="javascript">
 function getaddr(){
  WeixinJSBridge.invoke(&#39;editAddress&#39;,{
   "appId" : "<?php echo $appId;?>", //公众号名称,由商户传入
   "timeStamp" : "<?php echo $timestamp;?>", //时间戳 这里随意使用了一个值
   "nonceStr" : "<?php echo $nonceStr;?>", //随机串
   "signType" : "SHA1", //微信签名方式:sha1
   "addrSign" : "<?php echo $addrSign;?>", //微信签名
   "scope" : "jsapi_address"
  },function(res){
   if(res.err_msg == &#39;edit_address:ok&#39;){
    document.getElementById("showAddress").innerHTML="收件人:"+res.userName+" 联系电话:"+res.telNumber+" 收货地址:"+res.proviceFirstStageName+res.addressCitySecondStageName+res.addressCountiesThirdStageName+res.addressDetailInfo+" 邮编:"+res.addressPostalCode;
   }
   else{
    alert("获取地址失败,请重新点击");
   }
  });
 }
</script>
<body>
<style>
 section.content{padding:10px 12px;}
 section .showaddr{border:1px dashed #C9C9C9;padding:10px 10px 15px;margin-bottom:20px;color:#666666;font-size:12px;text-align:center;}
 section .showaddr strong{font-weight:normal;color:#9900FF;font-size:26px;font-family:Helvetica;}
</style>

<section class="content">
 <p class="showaddr" id="showAddress" ><a id="editAddress" href="javascript:getaddr();" rel="external nofollow" ><strong>点击设置收货地址</strong></a></p>
</section>
</body>
</html>
ログイン後にコピー

以上がこの記事の全内容ですので、皆様の学習のお役に立てれば幸いです。皆さんが php 中国語 Web サイトをサポートしてくれることを願っています。

#興味があるかもしれない記事:

クラウド仮想ホストに thinkphp5 プロジェクトをデプロイする詳細な手順


##PHPCrawl クローラー ライブラリは、Kugou プレイリストをクロールする方法の説明例を実装します。


PHP でぼやけた画像を生成する方法の説明例


##

以上がPHPでWeChatの共有配信アドレスを取得する方法を解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート