# __ .______ __ __ .______ .___________. ______ ______ .___ ___. # | | | _ \ | | | | | _ \ | | / | / __ \ | \/ | # | | | |_) | | |__| | | |_) | `---| |----` | ,----'| | | | | \ / | # | | | ___/ | __ | | ___/ | | | | | | | | | |\/| | # | | | | | | | | | | | | __ | `----.| `--' | | | | | # |__| | _| |__| |__| | _| |__| (__) \______| \______/ |__| |__| # ""$o o$"" ""$o o$" o "$""""o "o $" o""" $" "$o "$o" $o " $ o$" "$o $$$o$$$$o$$$$ $" "oooo o "" ""$$$$$$$$""o"" oo oooo" "$$$$$$oo"oo$$$o" o$$$$oo" o$$$o "o$$$$$$$ "$ $$$$$$$$$oo o$$$$$$$$$o"$" $ $$$ $$$$$$ o$$$$$$ "$$o"o $ $$$$o $$$$$$ $$$$$$$ $$$$o"o $ $$$$$ $$$$$" "$$$$$ $$$$$$ $ $o""""" """" """ """"""$" $ o$$$$$"""$$$$$"$$$$$""$$$$$ooo"o $ o"$o $$$$$$$$oo$$$$$$$$o $$"" $ oo$ "$$$$$$$$$$$$$$$$$$$$" o" o $oo o$$$"$ $$o"o $$$$$$$"" "$$$$$$$ o$$ $$$$o IPHPT BUG o$$$$" $ $$$$ o "$$$$$oo o$$$$$$ "o$$$$ $ $$$$$ o$$"" $ $$$$$o" "$$$$$$$$$$$$$ o o$$$$$o$ "" $$ $$" $ $$$" o"o$$$$$$$$$$$$ " "$$$ $ $$o o$$ "o $$ " $$$$$$$$$$$"o "$$ $ $$$ $$$ oo$ $ o""$$""$$$o " $"o$o $$$o o$$$$ o$$$"o"$oo$$$$o" o $o $$$$$oo$ $$$$o $$$$ $$$$ $$$$" $ $$$$$"" $$ o$$$ """$$$$"o" "$$$o "$$$o $$$" o """ $ $$$oo $$$$o" $$ o$$$"o" """"$ o$$$ o$" $$$ $ "$"" o$"o"$$o$$$$ "$$"o" o$$ "$oo $ " $$o $ "oo$"o$$$"o$o"$$$$o" o" $$$ ""$o $$ $$$o "o$$o$"$$"$$o$$o$$"$$o" $$$ ""o $$$ ""$$$ $$$$$$ $$$$ $" $$$$ $$ $$$$ $$$$"$$$o$ $"" $$$ $$$$ "$$$ """ $$$$ $$"" "$$ oo$" $ooo $ "$$ (新手)该公众号提供的服务出现故障,请稍后再试   -  叶落山城秋

(新手)该公众号提供的服务出现故障,请稍后再试

按照demo写的,但是一直出现 该公众号提供的服务出现故障,请稍后再试

我虽然已经用微信做过很多事情,但是微信的实现不是我弄的,是同事弄好服务与微信的交互,然后我直接调用代码即可,比如 发送消息,比如发送红包(已超过百万RMB),等等!所以这次我想自己试一试!

同事的微信包是自己找的代码,然后自己封装的,我没那么多时间弄(晚上回家写会代码),所以直接用现成的吧!安正超的包!

前提环境

操作

根据文档操作!

  1. 注册 ServiceProvider:

Overtrue\LaravelWechat\ServiceProvider::class,

  1. 创建配置文件: > php artisan vendor:publish –provider=“Overtrue\LaravelWechat\ServiceProvider”

请修改应用根目录下的 config/wechat.php 中对应的项即可;

  1. (可选)添加外观到 config/app.php 中的 aliases 部分:

‘EasyWeChat’ => Overtrue\LaravelWechat\Facade::class,

  1. 然后在建立一个WechatController,并写好路由

路由:

Route::any(‘/wechat’, ‘WechatController@serve’);

<?php
/**
 * Created by PhpStorm.
 * User: zhu
 * Email: ylsc633@gmail.com
 * Date: 2017/11/16
 * Time: 下午10:44
 */
namespace App\Http\Controllers\Wechat;

use App\Http\Controllers\Controller;
use EasyWeChat\Foundation\Application;

class WechatController extends Controller
{
    protected $app;
    public function __construct()
    {
        $this->app = new Application(config('wechat'));
    }

    public function serve()
    {
        $server = $this->app->server;
        $server->setMessageHandler(function($message){
            return "叶落山城秋";
        });

        $this->log('this is log by myself. you can use Log what with Laravel');

        return $server->serve();
    }
}
  1. 修改 config/wechat.php 或者在 .env 里添加也可以

WECHAT_TOKEN=wechat

  • note: 这个token随意写

  • 进入你微信公众号的测试号(或者认证的号,功能多)

我以测试号为例:

点击修改:接口配置信息

URL: 你的域名/wechat

token: wechat(上面你随意写的那个,必须一样)

点击修改,如果可以,则通过!

如果token不通过,可能是你服务器配置没有对,你可以试试在浏览器里访问一下这个网址,如果有日志,说明路径没有错,如果日志有问题,可能是你路由设置的问题了!

  • note: 我发现我测试的时候,我随意填一个token都是配置正确!奇了怪了! 我打开nginx日志,发现全部301跳转了

JS接口安全域名填 你的域名就行了,不带http/https

  1. 修改5

WECHAT_APPID=测试号里的appID

WECHAT_SECRET=测试号里的appsecret

最后去微信里回复

发现一直报错:

该公众号提供的服务出现故障,请稍后再试

按照一般情况会给我返回 叶落山城秋

最后我解决了!

有这么写情况!

  • laravel的 csrf,因为laravel框架自带了这个,微信请求肯定没有这个,所以不成功!所以你要么关了csrf,要么,把微信请求的这个地址放在设置外!

  • 域名设置了https,设置了https,本来是80端口,全部301走了443端口,而微信要求的是80端口!所以,切回80或者再弄个域名指向这吧!

其实微信这一套很好理解

用户 <-> 微信 <-> 你的服务器

三者之间! 用户给微信交互,微信通过上面那个 你的域名/wechat发送给你,然后你处理后,返回响应给微信,微信再发给用户,有时候是你主动推送给微信,微信给用户!就这样!


欢迎转载,但请附上原文地址哦,尊重原创,谢谢大家 本文地址: https://www.iphpt.com/detail/104/
本站(PHP --> Golang)已重构,代码开源

当你能力不能满足你的野心的时候,你就该沉下心来学习