Laravel EasyWeChat 详解

发布时间:2023-05-19

Laravel EasyWeChat 简介

Laravel EasyWeChat 是一个基于 Laravel 开发的微信开发 SDK,它是一款简单易用、功能丰富的微信开发框架,支持包括微信公众号、小程序、支付、开放平台等多个模块。 Laravel EasyWeChat 采用 Composer 构建,在安装和使用时只需使用 Composer 安装,无需繁琐的配置即可轻松搭建微信开发环境。 Laravel EasyWeChat 模块丰富,包括微信公众号、微信小程序、微信支付、消息推送、SDK 的测试和调试等多个功能,可满足不同场景的应用需求。

微信公众号模块

WeChat 公众号是目前开发最广泛的一个微信模块,那么 Laravel EasyWeChat 如何使用此模块呢?我们可以通过以下步骤来创建一个公众号实例:

use EasyWeChat\Factory;
$options = [
    'app_id' => 'your-app-id',
    'secret' => 'your-app-secret',
    // 更多配置项
];
$app = Factory::officialAccount($options);

以上代码引入 Laravel EasyWeChat 的 Factory 类,调用 officialAccount 方法创建一个公众号实例。其中,$options 参数包含 app_id、secret、token 等必填项,更多配置项可参考官方文档。 创建公众号实例后,我们可以通过 Laravel EasyWeChat 封装好的方法来调用微信 API,例如获取 access_token:

$response = $app->access_token->getToken();

调用以上代码后,获取到的 access_token 将存于 $response['access_token'] 中。

微信小程序模块

除了微信公众号,微信小程序也是开发者较为关注的一个模块。我们可以使用 Laravel EasyWeChat 提供的 weapp 方法来创建一个小程序实例:

use EasyWeChat\Factory;
$options = [
    'app_id' => 'your-app-id',
    'secret' => 'your-app-secret',
    // 更多配置项
];
$app = Factory::miniProgram($options);

创建小程序实例后,我们就可以像操作公众号一样操作小程序了。例如获取 access_token:

$response = $app->access_token->getToken();

调用以上代码后,获取到的 access_token 将存于 $response['access_token'] 中。

微信支付模块

微信支付模块是 Laravel EasyWeChat 的另一个重要模块。我们同样可以使用 Laravel EasyWeChat 封装好的方法来快速调用微信支付 API。 首先,我们需要通过 Factory 类创建一个支付实例:

use EasyWeChat\Factory;
$options = [
    'app_id' => 'your-app-id',
    // 商户号
    'mch_id' => 'your-mch-id',
    // API 密钥
    'key' => 'your-key',
    // 异步通知地址
    'notify_url' => 'your-notify-url',
];
$app = Factory::payment($options);

以上代码中,必须配置 app_id、mch_id 和 key 等参数,notify_url 表示微信支付异步通知的回调地址,需配置为自己服务器的接收回调信息的 URL 地址。 创建支付实例后,我们可以通过以下代码来创建订单:

// 创建订单
$result = $app->order->unify([
    'body' => 'test', // 商品描述
    'out_trade_no' => '201702141224235', // 商户订单号
    'total_fee' => 1, // 总金额,单位为分
    'openid' => 'oUpF8uMuAJ2pxb1Q9zNjpiObCc1I', // 用户的 OpenId
]);

通过 $app->order->unify 方法调用微信支付的统一下单接口,提交商品描述、商户订单号、总金额和用户的 OpenId 等参数,成功后将返回微信支付的预支付 ID 和二维码等信息。

消息推送模块

在实际开发中,我们需要为用户推送消息,例如关注提示、订单信息等。Laravel EasyWeChat 可以将消息推送与公众号、小程序等结合起来,快速实现消息推送功能。 我们可以通过以下代码来创建一个模板消息并发送:

// 创建模板消息
$message = new \EasyWeChat\Kernel\Messages\TemplateMessage([
    'touser' => 'oO7uIwbqp_4O5E1bFq3zhCwr0WkE', // 接受者 OpenId
    'template_id' => 'your-template-id', // 模板 ID
    'url' => 'https://www.baidu.com', // 跳转链接
    'data' => [
        'key1' => 'hello world',
        'key2' => '你好世界',
    ],
]);
// 发送模板消息
$response = $app->template_message->send($message);

以上代码创建一个模板消息并发送,其中,模板 ID 可以在自己的公众号/小程序中创建并设置,data 则为模板消息中的变量。

SDK 测试和调试

Laravel EasyWeChat 提供了内置的 SDK 调试工具,可供开发者在开发过程中进行测试和调试。 我们可以通过以下命令来启动 SDK 调试工具:

php artisan serve-wechat-sdk

启动调试工具后,在浏览器中打开 http://localhost:8000 即可进入到 SDK 调试界面。在界面中输入微信公众号/小程序的 app_id 和 secret,即可开始测试和调试微信 API 。

总结

Laravel EasyWeChat 是一个功能丰富、易用性高的微信开发框架,支持多种微信开发模块。在实际开发中,我们可以通过 Laravel EasyWeChat 快速搭建微信开发环境,并实现消息推送、支付、小程序开发等功能。