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;
            }
     
     
  • 相关阅读:
    洛谷 1339 最短路
    洛谷 1330 封锁阳光大学 图论 二分图染色
    洛谷 1262 间谍网络 Tarjan 图论
    洛谷 1373 dp 小a和uim之大逃离 良心题解
    洛谷 1972 莫队
    洛谷 2158 数论 打表 欧拉函数
    洛谷 1414 数论 分解因数 水题
    蒟蒻的省选复习(不如说是noip普及组复习)————连载中
    关于筛法
    关于整数划分的几类问题
  • 原文地址:https://www.cnblogs.com/vania/p/11715005.html
Copyright © 2011-2022 走看看