php获取微信共享收货地址的方法
发布:smiling 来源: PHP粉丝网 添加日期:2018-11-04 13:36:16 浏览: 评论:0
本文实例为大家分享了php获取微信共享收货地址的具体代码,供大家参考,具体内容如下.
必须是微信授权目录 我直接放到了根目录 其他目录无效.
- /*
- * 在执行此操作之前 首先判断您是否开通了 微信支付功能 审核通过后均可使用一下代码
- * 1、设置微信公众平台网页授权 域名 www.abc.com
- * 2、设置下面的 “ 微信参数 ”
- * 3、把 当前文件 index.php 放入根目录
- * 4、用微信访问http://www.abc.com/index.php 就可以了 切记一定是微信哦
- * */
- <?php
- //微信参数
- $appId = '*********';
- $appSecret = '*****************';
- //获取get参数
- $code = $_GET['code'];
- //获取 code
- $redirect_uri = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
- $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(emptyempty($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['appid'] = $appId;
- $Parameters['url'] = $redirect_uri;
- $Parameters['timestamp'] = "$timestamp";
- $Parameters['noncestr'] = "$nonceStr";
- $Parameters['accesstoken'] = $access_token['access_token'];
- // 生成 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 '<pre>';
- print_r($star);
- echo '</pre>';
- }
- 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('editAddress',{
- "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 == 'edit_address:ok'){
- 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">
- <div class="showaddr" id="showAddress" ><a id="editAddress" href="javascript:getaddr();" rel="external nofollow" ><strong>点击设置收货地址</strong></a></div>
- </section>
- </body>
- </html>
Tags: php微信共享 php共享收货地址
- 上一篇:php实现socket推送技术的示例
- 下一篇:为何说PHP引用是个坑,要慎用
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)