当前位置:首页 > PHP教程 > php高级应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2018-11-04 13:36:16 浏览: 评论:0 

本文实例为大家分享了php获取微信共享收货地址的具体代码,供大家参考,具体内容如下.

必须是微信授权目录 我直接放到了根目录 其他目录无效.

  1. /*  
  2. * 在执行此操作之前 首先判断您是否开通了 微信支付功能 审核通过后均可使用一下代码  
  3. * 1、设置微信公众平台网页授权 域名 www.abc.com  
  4. * 2、设置下面的 “ 微信参数 ”  
  5. * 3、把 当前文件 index.php 放入根目录  
  6. * 4、用微信访问http://www.abc.com/index.php 就可以了 切记一定是微信哦  
  7. * */ 
  8. <?php 
  9. //微信参数 
  10. $appId = '*********'
  11. $appSecret = '*****************'
  12.   
  13. //获取get参数 
  14. $code = $_GET['code']; 
  15.   
  16. //获取 code 
  17. $redirect_uri = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
  18. $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"
  19. if(emptyempty($code)){ 
  20.  header("location: $url"); 
  21.   
  22. //获取 access_token 
  23. $access_token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appId."&secret=".$appSecret."&code=".$code."&grant_type=authorization_code"
  24. $access_token_json = getUrl($access_token_url); 
  25. $access_token = json_decode($access_token_json,true); 
  26.   
  27.   
  28. // 定义参数 
  29. $timestamp = time(); 
  30. $nonceStr = rand(100000,999999); 
  31. $Parameters = array(); 
  32. //===============下面数组 生成SING 使用===================== 
  33. $Parameters['appid'] = $appId
  34. $Parameters['url'] = $redirect_uri
  35. $Parameters['timestamp'] = "$timestamp"
  36. $Parameters['noncestr'] = "$nonceStr"
  37. $Parameters['accesstoken'] = $access_token['access_token']; 
  38. // 生成 SING 
  39. $addrSign = genSha1Sign($Parameters); 
  40.   
  41.   
  42. function getUrl($url){ 
  43.  $opts = array
  44.   CURLOPT_TIMEOUT  => 30, 
  45.   CURLOPT_RETURNTRANSFER => 1, 
  46.   CURLOPT_SSL_VERIFYPEER => false, 
  47.   CURLOPT_SSL_VERIFYHOST => false, 
  48.  ); 
  49.  /* 根据请求类型设置特定参数 */ 
  50.  $opts[CURLOPT_URL] = $url ; 
  51.  $ch = curl_init(); 
  52.  curl_setopt_array($ch$opts); 
  53.  $data = curl_exec($ch); 
  54.  $error = curl_error($ch); 
  55.  curl_close($ch); 
  56.  return $data
  57. function p($star){ 
  58.  echo '<pre>'
  59.  print_r($star); 
  60.  echo '</pre>'
  61. function logtext($content){ 
  62.  $fp=fopen("json.ini","a"); 
  63.  fwrite($fp,"\r\n".$content); 
  64.  fclose($fp); 
  65. //创建签名SHA1 
  66. function genSha1Sign($Parameters){ 
  67.  $signPars = ''
  68.  ksort($Parameters); 
  69.  foreach($Parameters as $k => $v) { 
  70.   if("" != $v && "sign" != $k) { 
  71.    if($signPars == ''
  72.     $signPars .= $k . "=" . $v
  73.    else 
  74.     $signPars .= "&"$k . "=" . $v
  75.   } 
  76.  } 
  77.  //$signPars = http_build_query($Parameters); 
  78.  $sign = SHA1($signPars); 
  79.  $Parameters['sign'] = $sign
  80.  return $sign
  81. ?> 
  82.  
  83. <!DOCTYPE html> 
  84. <html> 
  85. <head> 
  86.  <title>获取共享地址</title> 
  87.  <meta charset="utf-8" /> 
  88.  <meta id="viewport" name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1; user-scalable=no;" /> 
  89. </head> 
  90. <script language="javascript"
  91.  function getaddr(){ 
  92.   WeixinJSBridge.invoke('editAddress',{ 
  93.    "appId" : "<?php echo $appId;?>"//公众号名称,由商户传入 
  94.    "timeStamp" : "<?php echo $timestamp;?>"//时间戳 这里随意使用了一个值 
  95.    "nonceStr" : "<?php echo $nonceStr;?>"//随机串 
  96.    "signType" : "SHA1"//微信签名方式:sha1 
  97.    "addrSign" : "<?php echo $addrSign;?>"//微信签名 
  98.    "scope" : "jsapi_address" 
  99.   },function(res){ 
  100.    if(res.err_msg == 'edit_address:ok'){ 
  101.     document.getElementById("showAddress").innerHTML="收件人:"+res.userName+" 联系电话:"+res.telNumber+" 收货地址:"+res.proviceFirstStageName+res.addressCitySecondStageName+res.addressCountiesThirdStageName+res.addressDetailInfo+" 邮编:"+res.addressPostalCode; 
  102.    } 
  103.    else
  104.     alert("获取地址失败,请重新点击"); 
  105.    } 
  106.   }); 
  107.  } 
  108. </script> 
  109. <body> 
  110. <style> 
  111.  section.content{padding:10px 12px;} 
  112.  section .showaddr{border:1px dashed #C9C9C9;padding:10px 10px 15px;margin-bottom:20px;color:#666666;font-size:12px;text-align:center;} 
  113.  section .showaddr strong{font-weight:normal;color:#9900FF;font-size:26px;font-family:Helvetica;} 
  114. </style> 
  115.   
  116. <section class="content"
  117.  <div class="showaddr" id="showAddress" ><a id="editAddress" href="javascript:getaddr();" rel="external nofollow" ><strong>点击设置收货地址</strong></a></div> 
  118. </section> 
  119. </body> 
  120. </html> 

Tags: php微信共享 php共享收货地址

分享到: