Laravel-微信企业付款到个人钱包

乜璞瑜
2023-12-01

框架要求:
Laravel/Lumen >= 5.1
安装

# Laravel < 5.8
	composer require "overtrue/laravel-wechat:~4.0" -vvv
	
	# Laravel >= 5.8
	composer require "overtrue/laravel-wechat:~5.0" -vvv

配置
Laravel 应用
1,在 config/app.php 注册 ServiceProvider 和 Facade (Laravel 5.5 + 无需手动注册)

'providers' => [
    // ...
    Overtrue\LaravelWeChat\ServiceProvider::class,
],
'aliases' => [
    // ...
    'EasyWeChat' => Overtrue\LaravelWeChat\Facade::class,
],

2,创建配置文件:

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

3,修改应用根目录下的 config/wechat.php 中对应的参数即可。

4,每个模块基本都支持多账号,默认为 default。

Lumen 应用

1,在 bootstrap/app.php 中 82 行左右:

$app->register(Overtrue\LaravelWeChat\ServiceProvider::class);

2,如果你习惯使用 config/wechat.php 来配置的话,将 vendor/overtrue/laravel-wechat/src/config.php 拷贝到项目根目录/config目录下,并将文件名改成wechat.php。
使用
在中间件 App\Http\Middleware\VerifyCsrfToken 排除微信相关的路由,如:

	protected $except = [
	    	// ...
	   	 'wechat',
			];

3,下面以接收普通消息为例写一个例子:
假设您的域名为 overtrue.me 那么请登录微信公众平台 “开发者中心” 修改 “URL(服务器配置)” 为: http://overtrue.me/wechat
路由:

Route::any('/wechat', 'WeChatController@serve');

注意:一定是 Route::any, 因为微信服务端认证的时候是 GET, 接收用户消息时是 POST !

然后创建控制器 WeChatController:

use App\Http\Controllers\Controller;
use EasyWeChat\Factory;


class WeChatController extends Controller
{
    public $config = [
        // 必要配置
        'app_id' => 'wx83fe7cb1d07ab2ab',
        'mch_id' => '1234455',
        'key' => 'd3ca059485f1c88441a80a0a30f9bfd3',   // API 密钥

        // 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书)
        'cert_path' => './wechat_pay/apiclient_cert.pem', // XXX: 绝对路径!!!!
        'key_path' => './wechat_pay/apiclient_key.pem',      // XXX: 绝对路径!!!!

        'notify_url' => '默认的订单回调地址',     // 你也可以在下单时单独设置来想覆盖它
    ];

    public function pay()
    {
        $app = $payment = Factory::payment($this->config);
        $result = $app->transfer->toBalance([
            'partner_trade_no' => '1233455', // 商户订单号,需保持唯一性(只能是字母或者数字,不能包含有符号)
            'openid' => 'oxTWIuGaIt6gTKsQRLau2M0yL16E',
            'check_name' => 'FORCE_CHECK', // NO_CHECK:不校验真实姓名, FORCE_CHECK:强校验真实姓名
            're_user_name' => '王小帅', // 如果 check_name 设置为FORCE_CHECK,则必填用户真实姓名
            'amount' => 10000, // 企业付款金额,单位为分
            'desc' => '理赔', // 企业付款操作说明信息。必填
        ]);
        print_r($result);
    }
}

 类似资料: