美文网首页
微信公众号开发

微信公众号开发

作者: 诺之林 | 来源:发表于2020-03-23 19:33 被阅读0次

目录

测试账号

  • 登录http://mp.weixin.qq.com/

  • 开发者工具 => 公众平台测试账号

  • 测试号管理 => 测试号信息 => appID & appsecret

appID=wx641a9fcc89526bad

appsecret=***
image.png

内网穿透

chmod +x natapp

mv natapp /usr/local/bin

natapp -authtoken=***
Powered By NATAPP       Please visit https://natapp.cn                                                                                                       (Ctrl+C to Quit)
Tunnel Status           Online
Version                 2.3.9
Forwarding              http://yl33643.nat300.top -> 127.0.0.1:8000
Web Interface           http://127.0.0.1:4040
Total Connections       0

购买付费隧道的域名是固定的 便于开发调试

接口配置

校验接口

composer create-project laravel/laravel wechat-demo --prefer-dist "5.5.*"

cd wechat-demo
composer require "overtrue/laravel-wechat:~4.0"

php artisan vendor:publish --provider="Overtrue\LaravelWeChat\ServiceProvider"

vim .env
# WECHAT_OFFICIAL_ACCOUNT_APPID=wx641a9fcc89526bad
# WECHAT_OFFICIAL_ACCOUNT_SECRET=***
# WECHAT_OFFICIAL_ACCOUNT_TOKEN=a-token
vim routes/web.php
<?php

Route::prefix('official-account')->group(function () {
    Route::get('verify', 'OfficialAccountController@verify');
});
vim app/Http/Controllers/OfficialAccountController.php
<?php

namespace App\Http\Controllers;

class OfficialAccountController
{
    public function verify()
    {
        $app = app('wechat.official_account');
        return $app->server->serve();
    }
}
php artisan serve

代码逻辑参考微信文档消息接口使用指南

配置接口

  • 登录http://mp.weixin.qq.com/

  • 开发者工具 => 公众平台测试账号

  • 测试号管理 => 接口配置信息 => URL & Token

URL => http://yl33643.nat300.top/official-account/verify

Token => a-token
image.png

JSSDK

安全域名

  • 登录http://mp.weixin.qq.com/

  • 开发者工具 => 公众平台测试账号

  • 测试号管理 => JS接口安全域名 => 域名 (yl33643.nat300.top)

image.png

注意上述域名需要去除HTTP或HTTPS前缀

测试页面

vim resources/views/index.blade.php
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

<body>
<a id="result">日志</a>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
<script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $.get("/official-account/config", { url: location.href }, function (data) {
            wx.config(JSON.parse(data))
            wx.ready(() => {
                $('#result').text('wx.ready')

                wx.onMenuShareAppMessage({
                    link: `${location.href}?hello=world`,
                    success: function () {
                        $('#result').text(`${location.href}?hello=world`)
                    }
                });
            })
        })
    })
</script>
</body>

</html>
vim routes/web.php
<?php

Route::prefix('official-account')->group(function () {
    Route::get('verify', 'OfficialAccountController@verify');
    Route::get('index', 'OfficialAccountController@index');
    Route::get('config', 'OfficialAccountController@config');
});
vim app/Http/Controllers/OfficialAccountController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class OfficialAccountController
{
    public function index() {
        return view('index');
    }

    public function config(Request $request) {
        $url = $request->get('url');

        $apis = [
            'onMenuShareAppMessage'
        ];

        $app = app('wechat.official_account');
        $app->jssdk->setUrl($url);
        return $app->jssdk->buildConfig($apis, app()->isLocal());
    }
}
php artisan serve

代码逻辑参考微信文档微信JSSDK开发文档

开发调试

http://yl33643.nat300.top/official-account/index
image.png

网页授权

回调域名

  • 登录http://mp.weixin.qq.com/

  • 开发者工具 => 公众平台测试账号

  • 测试号管理 => 网页授权获取用户基本信息 => 修改 (yl33643.nat300.top)

image.png

测试页面

vim app/Http/Kernel.php
<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    protected $routeMiddleware = [
        'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'wechat.oauth' => \Overtrue\LaravelWeChat\Middleware\OAuthAuthenticate::class,
    ];
}
vim routes/web.php
<?php

Route::prefix('official-account')->group(function () {
    Route::get('verify', 'OfficialAccountController@verify');
    Route::get('index', 'OfficialAccountController@index');
    Route::get('config', 'OfficialAccountController@config');
    Route::get('user', 'OfficialAccountController@user')->middleware('wechat.oauth');
});
vim app/Http/Controllers/OfficialAccountController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class OfficialAccountController
{
    public function user() {
        $user = session('wechat.oauth_user.default');
        return view('user', ['openid' => $user->getId()]);
    }
}
vim resources/views/user.blade.php
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

<body>
<p>{{ $openid }}</p>
</body>

</html>
php artisan serve

代码逻辑参考微信文档网页授权获取用户基本信息

开发调试

http://yl33643.nat300.top/official-account/user
  • 点击授权 => 获取微信用户信息(OpenID)如下
image.png

上述微信用户信息与"测试号管理"中的信息一致

image.png

参考文章

相关文章

  • 微信开发

    微信开发 公众号开发 微信WEB开发 JSSDK 小程序开发 公众号开发 公众号 订阅号 服务号 企业号 公众号开...

  • 微信公众号开发 (4) 网页授权

    一、前言 微信公众号开发 (1) 微信接入认证成为开发者 微信公众号开发 (2) 消息处理 微信公众号开发 (3)...

  • 微信公众号开发:微信服务号和订阅号的区别!

    微信开发又称微信公众平台开发、或微信公众号开发,分为微信服务号、微信订阅号、以及微信企业号,其中服务号和订阅号是企...

  • PHP微信公众号支付开发总结

    微信公众号开发是很常见的开发,其中微信支付占有很大的比重。微信公众号分为服务号和订阅号,服务号支持微信支付。 前期...

  • 基于JavaEE——微信网页(二)微信开发

    微信开发测试公众号(沙盒号) 微信API帮助文档 微信接口在线调试 首先申请微信开发的测试公众号,登陆后会看到微信...

  • 1 - 简介

    微信公众号开发 又称微信公众号二次开发。可以将公众账号由一个媒体型营销工具转化成提供服务的产品。 微信公众号开发的...

  • 微信公众号开发 (3) 菜单处理

    一、前言 微信公众号开发 (1) 微信接入认证成为开发者 微信公众号开发 (2) 消息处理 本文将实现 根据App...

  • 微信服务器接入

    这几天正在学习微信公众号开发,后台JAVA基于SSM框架对微信公众号进行开发。 微信公众平台“基本配置”。详细请参...

  • 微信公众号开发:获取openId和用户信息

    title: 微信公众号开发:获取openId和用户信息 tags: 微信公众号 categories: 笔记 ...

  • Springboot 之小程序公众号等资料

    公众号 Java微信公众号开发的精彩世界,学习微信公众号开发的相关概念,编辑模式和开发模式应用,以及百度BAE的使...

网友评论

      本文标题:微信公众号开发

      本文链接:https://www.haomeiwen.com/subject/saneyhtx.html