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

按照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随意写
  1. 进入你微信公众号的测试号(或者认证的号,功能多)

我以测试号为例:

点击修改:接口配置信息

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发送给你,然后你处理后,返回响应给微信,微信再发给用户,有时候是你主动推送给微信,微信给用户!就这样!


欢迎转载,但请附上原文地址哦,尊重原创,谢谢大家 本文地址: http://www.iphpt.com/detail/104/

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