參考文檔
https://github.com/overtrue/laravel-wechat
https://easywechat.com/docs/4.1/payment/index
laravel-wechat
微信 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"
配置
Laravel 應用
- 在
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; }