(连载)uniapp + laravel9 + easywechat 5.x 微信公众号授权 + 微信公众号支付开发【前言】

因为项目的原因,需要进行微信公众号授权 + 微信公众号支付。查阅了大量资料,发现很多问题都没有说清楚,会对第一次开发微信公众号的新手们造成困扰(我是新手,我很困扰)。可能在很多大神眼里,这肯定是分分钟的事,但是在小白眼里(悟性很高的小白绕过),可能就很头疼了。

所以想做一个连载,把问题尽力说清楚,把概念尽力讲明白,一个是对自己开发的记录,二一个是希望帮助有需求的人。

话不多说,直奔主题。

请各位看官依次翻阅blog里的文章。如果是想直接找到答案,也可以看下面的各种坑。

也欢迎各位朋友们留言补充。

第一个坑:微信官方文档说,网页授权域名(即:网页授权回调域名)http://pay.qq.com 、 http://music.qq.com 、 http://qq.com 无法进行OAuth2.0鉴权。

实际测试:二级域名格式如:tlpay.xxxx.com可以,三级域名格式如:tlpay.uniapp.xxxx.com也没问题。只要按照要求放置类似于 MP_verify_AXVWvxExHlWOnl7i.txt 这样的文件到域名所对应的网站目录里,并且能正确访问,同时一定不要有 favicon.ico /css/js 等这些小文件缺失。只要在浏览器的控制台里报 404 错误的文件都需要解决,否则还是无法验证。

第二个坑:在微信开发者工具里,微信公众号授权登录后报redirect_uri参数错误。

1、首先检查用户授权后返回来的地址拼写是否正确?

2、是否把用户授权后返回来的地址进行 URI 组件编码?

let uri = encodeURIComponent(link);

3、appid 是否正确?

4、请求微信的地址的参数顺序一定不能乱,严格按照微信的要求来。

https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${uri}&response_type=code&scope=snsapi_base&state=ZhiAnBaoV#wechat_redirect

5、微信公众号后台里网页授权域名是否配置准确?

6、微信公众号后台里IP白名单是否填写准确的ip地址?

7、如果能想到的都是正确的,那你就真机调试,往往会有让你意想不到的惊喜。

第三个坑:在微信开发者工具里,微信公众号授权登录后报scope参数错误或scope没权限。

如果是这个问题的话,请一定换成正式的 appid 和 secret ,千万不要用测试号的 appid 和 secret ,这个坑很坑。

第四个坑:在开发微信所需要的后端接口时,一定要在 app/http/Middleware/VerifyCsrfToken.php 去关闭对应接口的 CSRF 验证。

<?php

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;

class VerifyCsrfToken extends BaseVerifier
{
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        // 如果你的接口地址为:www.abc.com/api/v1/hello 的时候,下面就写:
        'api/v1/hello',    
    ];
}

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注