使用laravel-wechat微信支付


參考文檔

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 應用

  1. config/app.php 注冊 ServiceProvider 和 Facade (Laravel 5.5 + 無需手動注冊)
'providers' => [  // ...  Overtrue\LaravelWeChat\ServiceProvider::class, ], 'aliases' => [  // ...  'EasyWeChat' => Overtrue\LaravelWeChat\Facade::class, ],
  1. 創建配置文件:
php artisan vendor:publish --provider="Overtrue\LaravelWeChat\ServiceProvider"
  1. 修改應用根目錄下的 config/wechat.php 中對應的參數即可。

  2. 每個模塊基本都支持多賬號,默認為 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;
        }

 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM