命令行 安装插件,根据需要选择安装版本
Laravel < 5.8
composer require “overtrue/laravel-wechat:~4.0”
Laravel >= 5.8
composer require “overtrue/laravel-wechat:~5.0”
配置
在 config/app.php 注册 ServiceProvider 和 Facade (Laravel 5.5 + 无需手动注册)
‘providers’ => [
// …
Overtrue\LaravelWeChat\ServiceProvider::class,
],
‘aliases’ => [
// …
‘EasyWeChat’ => Overtrue\LaravelWeChat\Facade::class,
],
创建配置文件:
php artisan vendor:publish --provider=“Overtrue\LaravelWeChat\ServiceProvider”
修改应用根目录下的 config/wechat.php 中对应的参数即可。
使用
下面就是设置处理自己的class了,这里我是下单之后直接调用的这个,所以不需要设置路由了,如果是单独调用,请设置路由
<?php
/**
* Created by PhpStorm.
* User: bxy
* Date: 2019/11/25
* Time: 10:31
*/
namespace App\Http\Controllers\App;
use EasyWeChat\Factory;
class PayController
{
public function wechatPay($order)
{
$config = [
// 必要配置
'app_id' => env('WECHAT_APPID'),
'mch_id' => env('WECHAT_MCH_ID'),
'key' => env('WECHAT_KEY'), // API 密钥
'notify_url' => 'http://vpn.ynrd.com/app/w_notify', // 你也可以在下单时单独设置来想覆盖它
];
$app = Factory::payment($config);
$result = $app->order->unify([
'body' => $order->goods_name,
'out_trade_no' => $order->order_sn,
'total_fee' => $order->amount,
'notify_url' => 'http://vpn.ynrd.com/app/w_notify', // 支付结果通知网址,如果不设置则会使用配置里的默认地址
'trade_type' => 'APP', // 请对应换成你的支付方式对应的值类型
]);
if ($result['return_code'] == "FAIL") {
throw new Exception($result['return_msg']);
} else {
return $result;
}
}
}