php获取微信共享收货地址的方法


Posted in PHP onDecember 21, 2017

本文实例为大家分享了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(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['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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
网友原创的PHP模板类代码
Sep 07 PHP
JS 网站性能优化笔记
May 24 PHP
使用dump函数,给php加断点测试
Jun 25 PHP
测试php连接mysql是否成功的代码分享
Jan 24 PHP
ThinkPHP模板判断输出Defined标签用法详解
Jun 30 PHP
php获取textarea的值并处理回车换行的方法
Oct 20 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
Aug 18 PHP
浅谈PHP的反射机制
Dec 15 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
Aug 30 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
May 11 PHP
tp5.1 框架数据库高级查询技巧实例总结
May 25 PHP
PhpSpreadsheet设置单元格常用操作汇总
Nov 13 PHP
php实现socket推送技术的示例
Dec 20 #PHP
PHP实现模拟http请求的方法分析
Dec 20 #PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 #PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 #PHP
PHP实现的最大正向匹配算法示例
Dec 19 #PHP
PHP实现的字符串匹配算法示例【sunday算法】
Dec 19 #PHP
PHP实现的折半查找算法示例
Dec 19 #PHP
You might like
php实现购物车功能(下)
2016/01/05 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
详解php用static方法的原因
2018/09/12 PHP
jquery实现商品拖动选择效果代码(自写)
2013/05/28 Javascript
使用jquery中height()方法获取各种高度大全
2014/04/02 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
学习JavaScript设计模式之装饰者模式
2016/01/19 Javascript
javascript冒泡排序小结
2016/04/10 Javascript
jQuery layui常用方法介绍
2016/07/25 Javascript
js removeChild 方法深入理解
2016/08/16 Javascript
AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
2016/11/03 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
vue+iview实现文件上传
2020/11/17 Vue.js
javascript实现下拉菜单效果
2021/02/09 Javascript
python使用psutil模块获取系统状态
2016/08/27 Python
python编程实现希尔排序
2017/04/13 Python
Python判断文件和字符串编码类型的实例
2017/12/21 Python
python 拼接文件路径的方法
2018/10/23 Python
pygame游戏之旅 python和pygame安装教程
2018/11/20 Python
python实现连续图文识别
2018/12/18 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
Python中IP地址处理IPy模块的方法
2019/08/16 Python
Python3 合并二叉树的实现
2019/09/30 Python
如何写python的配置文件
2020/06/07 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
2020/07/07 Python
Smallable英国家庭概念店:设计师童装及家居装饰
2017/07/05 全球购物
巴西在线鞋店:Shoestock
2017/10/28 全球购物
Stefania Mode美国:奢华设计师和时尚服装
2018/01/07 全球购物
How TDD works
2012/09/30 面试题
销售简历自我评价
2014/01/24 职场文书
2014年社区庆元旦活动方案
2014/03/08 职场文书
音乐教师求职信
2014/06/28 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
2014年教师思想工作总结
2014/12/03 职场文书
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python
教你nginx跳转配置的四种方式
2022/07/07 Servers