参考文档
https://github.com/overtrue/laravel-wechat
https://easywechat.com/docs/4.1/payment/index
微信 SDK for Laravel 5 / Lumen, 基于 overtrue/wechat
交流QQ群:319502940
Laravel/Lumen >= 5.1
# 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
中对应的参数即可。
每个模块基本都支持多账号,默认为 default
。
操作
1.composer
composer require "overtrue/laravel-wechat:~5.0"
2.创建配置文件
php artisan vendor:publish --provider="Overtrue\LaravelWeChat\ServiceProvider"
3.修改应用根目录下的 config/wechat.php
中对应的参数即可。
4.在操制器里调用
use EasyWeChat\Factory;
use function EasyWeChat\Kernel\Support\generate_sign;
$config = [
// 必要配置
'app_id' => '',
'mch_id' => '',
'key' => '', // API 密钥
// 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书)
'cert_path' => '', // XXX: 绝对路径!!!!
'key_path' => '', // XXX: 绝对路径!!!!
'notify_url' => 'http:///payments/wechat-notify', // 你也可以在下单时单独设置来想覆盖它
];
$app = Factory::payment($config);
$result = $app->order->unify([
'body' => 'test',
'out_trade_no' => '20150807861253465555',
'total_fee' => 88,
'notify_url' => 'http:///payments/wechat-notify', // 支付结果通知网址,如果不设置则会使用配置里的默认地址
'trade_type' => 'JSAPI', // 请对应换成你的支付方式对应的值类型
'openid' => 'Mok',
]);
// 如果成功生成统一下单的订单,那么进行二次签名
if ($result['return_code'] === 'SUCCESS') {
// 二次签名的参数必须与下面相同
$params = [
'appId' => '你的小程序的appid',
'timeStamp' => time(),
'nonceStr' => $result['nonce_str'],
'package' => 'prepay_id=' . $result['prepay_id'],
'signType' => 'MD5',
];
// config('wechat.payment.default.key')为商户的key
$params['paySign'] = generate_sign($params, config('wechat.payment.default.key'));
return $params;
} else {
return $result;
}