thinkphp + 微信公众号获取经纬度

微信公众号获取经纬度好几个坑,很大,不注意搞,老惨了。相关文档

这一部分,强烈建议使用官方配置好的demo,至少不会死得惨。网上好多自己封装的,理解起来头疼,demo位置在完档最下方
官方demo示例代码
在这里插入图片描述
下载好之后,解压里面的结构大概长这个样子,像我是php开发,选择相应demo
在这里插入图片描述
在这里插入图片描述
这里面的四个文件都有点用,最后一个我自己换成了一个html,方便前端联调使用,放入框架结构大概就是这个样,一个最基本的类放在\extend文件夹下。其他的两个文件放在public下,因为公众号里面的
access_token 每天有查询限制,所以不建议用一次查一次,最好是设置一个时间,在时间内直接读取文件,不用来老是请求公众号,具体位置如下:
在这里插入图片描述
在这里插入图片描述
最后的一个被我变成html,放在你自己的视图层就行。这三个里面的内容如下:

access_token.php

<?php exit();?>
{
   
	"expire_time":1621336235,
	"access_token":"45_M7bldvfOAiq5***********WGcUBLFEdABABVU"//这里很长。请求接口后返回的值,存起来就行
}

jsapi_ticket.php

<?php exit();?>{
   
	"expire_time":1621336235,
	"jsapi_ticket":"kgt8O*********mJ_w1w"//这里很长。请求接口后返回的值,存起来就行
}

最关键的类:jssdk.php这里有个大坑,很坑 这里的 $url 使用的是你调用的界面的地址,=也就是说我写这个html代码的位置就是我要用的url,他原先是写在php文件里,所以用它原有的获取没问题,会找到他自己的方法,写出html时候就不行了,需要改成html的访问地址才行

<?php
namespace jssdk_php;
class jssdk {
   
  private $appId;
  private $appSecret;

    public function __construct() {
   
        $this->appId = "你自己的appid";
        $this->appSecret = "你自己的appSecret ";
    }

  public function getSignPackage() {
   
    $jsapiTicket = $this->getJsApiTicket();
     // 注意 URL 一定要动态获取,不能 hardcode.(原本的写法)
     //$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
    // $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

    // 注意 URL 一定要动态获取,不能 hardcode.(我的写法)
    $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
   
    **这里很重要html的访问地址才行
    $url = "http://************/¥%%%%%/sand.html";**

    $timestamp = time();
    $nonceStr = $this->createNonceStr();

    // 这里参数的顺序要按照 key 值 ASCII 码升序排序
    $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr&timestamp=$timestamp&url=$url";

    $signature = sha1($string);

    $signPackage = array(
      "appId"     => $this->appId,
      "nonceStr"  =>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值