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;
            }
     
     
  • 相关阅读:
    springboot2.X动态修改log4j2日志级别
    iframe嵌套PMM2.0
    grafana配置告警
    prometheus+grafana配置流程
    kubernetes拉取私有镜像仓库的镜像
    Windows Server 2016离线安装.NET Framework 3.5
    Office批量授权(VL)版本和激活方法
    华为USG防火墙配置NAT映射回流解决内网通过公网映射访问内部服务器
    IRF配置
    CENTOS7安装各种桌面系统 CENTOS安装桌面图形化GUI GNOME/KDE/Cinnamon/MATE/Xfce
  • 原文地址:https://www.cnblogs.com/vania/p/11715005.html
Copyright © 2011-2022 走看看