如何愉快的进行微信开发

这2天接触了微信服务号的开发, 分享一下我的小技巧

存在问题

由于需要和微信服务器进行主动和被动通信. 在做微信开发进行调试时会比较麻烦

  1. access token, 的获取需要到微信后台添加服务器ip白名单, 不在白名单中ip 无法获取, 而本地开发端的ip经常变化, 且添加ip到白名单还需要惊动公众号管理员
  2. 微信需要主动推消息给我们后台配的服务器地址, 而本地网络端通常不能被公网中其他端, 直接访问到.
  3. 开发中有时需要给其他人测试, 又是公网问题

解决方法

由于以上问题的存在, 很多人直接选择在服务器端调试. 不过这真的很烦, 每次改动都要上传. 首先去申请个测试公众号, 当然, 如果你开发的公众号还没开始运营,也可以不申请.

  1. 把本地端口暴露到公网, 且绑定一个固定公网ip

在开发端执行(如果是win下, putty也有建立隧道的方法,请自行百度之)

ssh -N -v -R 3000:127.0.0.1:80 root@app.dev.peterq.cn

app.dev.peterq.cn 是我的一台拥有公网ip的服务器
这个命令会让app.dev.peterq.cn监听127.0.0.1:3000, 并把所有数据传给本机ssh, shh再把数据转发到127.0.0.1:80(这里可以是任何你电脑能访问的ip和端口)
由于app.dev.peterq.cn监听的是它的本地端口, 外网还是访问不到这个代理端口的. 我们借助nginx(其他服务器软件也行啦)实现,新增nginx虚拟主机:

server {
    listen 80;
    listen [::]:80;

    server_name app.dev.peterq.cn;

    location / {
            proxy_pass http://127.0.0.1:3000;
            proxy_set_header Host $host:80;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Via "nginx";
     }
}

这样就能通过 http://app.dev.peterq.cn 直接访问到你本地开发的项目啦,而且不影响你服务器原有web应用, 你可以在微信后台把相关配置填写app.dev.peterq.cn这个域名的了, 微信将能正常的主动向你的开发端发起通信

  1. 解决获取access_token的ip限制. 由于本地开发端的公网ip时常变动, 而添加ip至白名单又不方便, 所以我们把app.dev.peterq.cn的服务器ip地址加入白名单并让其代理获取.
    app.dev.peterq.cn 这里可以写个脚本(这个脚本你就不要在转发到3000端口啦, 不然数据转一圈又回来了)例如:
<?php 
$_GET['secret'] === 'your_secret' or die('access denied');
echo file_get_contents('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET');

然后本地端, 如果你使用easy wechat 包的话, 可以这样设置

$wechat = new \EasyWeChat\Foundation\Application($options);
$wechat->access_token->setToken(json_decode(file_get_contents('http://app.dev.peterq.cn/token.php?secret=your_secret'))->access_token);
  1. 同一份代码区分开发环境和线上环境.
    上面代理获取token是在开发环境下, 线上是不需要代理获取的, 那么怎么在用同一份代码的情况下区分呢. 可以用不同的配置文件. 而我是这样解决的:

在开发端的nginx配置添加:

location ~ \.php$ {
   fastcgi_param APP_DEV_MODE true;
}

修改上述提到的代码:

$wechat = new \EasyWeChat\Foundation\Application($options);
isset($_SERVER['APP_DEV_MODE']) and $wechat->access_token->setToken(json_decode(file_get_contents('http://app.dev.peterq.cn/token.php?secret=your_secret'))->access_token);

The end!


欢迎阅读及投稿: laravel5.5框架解析 (ps: 最近太忙, 好多天没更新了)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,084评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,623评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,450评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,322评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,370评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,274评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,126评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,980评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,414评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,599评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,773评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,470评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,080评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,713评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,852评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,865评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,689评论 2 354

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,654评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,097评论 25 707
  • 名词延伸 通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。如果把IP地址比作一间房子...
    杨大虾阅读 20,602评论 2 57
  • 要修炼平淡的心境,拿得起,放得下,如此便能举重若轻,超然物外; 要追求平和的心态,得之不大喜,失之不狂悲,世界还是...
    清竹霄霄z十只鹰贸易阅读 222评论 0 0
  • 暮色四合,从九寨沟归途中的大巴还在穿越诺尔盖草原的公路上摇摇晃晃地行驶。有几颗不太起眼的星星迫不及待地从夜幕中钻了...
    一念清宁阅读 1,058评论 12 21