zoukankan      html  css  js  c++  java
  • 使用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' => [
        // ...
        OvertrueLaravelWeChatServiceProvider::class,
    ],
    'aliases' => [
        // ...
        'EasyWeChat' => OvertrueLaravelWeChatFacade::class,
    ],
    1. 创建配置文件:
    php artisan vendor:publish --provider="OvertrueLaravelWeChatServiceProvider"
    1. 修改应用根目录下的 config/wechat.php 中对应的参数即可。

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

    操作

    1.composer

    composer require "overtrue/laravel-wechat:~5.0"

    2.创建配置文件
    php artisan vendor:publish --provider="OvertrueLaravelWeChatServiceProvider"
    3.修改应用根目录下的 config/wechat.php 中对应的参数即可。

    4.在操制器里调用
    use EasyWeChatFactory;
    use function EasyWeChatKernelSupportgenerate_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;
            }
     
     
  • 相关阅读:
    Oracle 11g导出空表
    如何破解ROS路由器禁用路由PPPOE拨号?
    Oracle入门心得(2)
    ORACLE了局,每天10问(五)
    若何消除Oracle数据库的安静隐患(3)
    Oracle入门心得(1)
    ORACLE用户自定义备份与恢复条记
    ORACLE成绩,每天10问(三)
    ORACLE问题,每天10问(一)
    怎样消除Oracle数据库的安全隐患(1)
  • 原文地址:https://www.cnblogs.com/vania/p/11715005.html
Copyright © 2011-2022 走看看