vartruexuan/yii-easywechat

基于easywechat yii组件包

5.0.3 2022-11-11 03:16 UTC

This package is auto-updated.

Last update: 2024-04-11 06:31:34 UTC


README

Latest Version Php Version

概述

安装

composer require vartruexuan/yii-easywechat

使用

组件方式

    // 加入配置组件
    'components' => [
        'wechat'=>[
            'class'=>'Vartruexuan\EasyWechat\EasyWechat',
            //'configkey'=>'easywechat', // 可指定配置key,默认easywechat
        ]
    ],
<?php

use Yii;

// 使用
Yii::$app->wechat->officialAccount(); // 公众号
Yii::$app->wechat->payment(); // 微信支付
Yii::$app->wechat->openPlatform(); // 小程序
Yii::$app->wechat->work(); // 企业微信
Yii::$app->wechat->openWork(); // 企业微信开放平台
Yii::$app->wechat->microMerchant(); // 小微商户

单例

<?php

use Vartruexuan\EasyWechat\EasyWechat;

  
$app = EasyWechat::instance()->openWork();
$app->getServer()->with(fn() => "您好!EasyWeChat!");
$response = $server->serve();
    

配置

<?php

return [
    'easywechat' => [
        // 置换服务配置
        'rebind' => [
                // 支持配置方式: 1.置换服务对象 2.支持回调方式
                'cache' => function (){
                    // 先临时置换下缓存服务
                    $config= Yii::$app->components['redis'];
                    $connStr = 'redis://' . $config['hostname'] . ':' . $config['port'];
                    $adapter = RedisAdapter::createConnection($connStr);
                    $password = $config['password'] ?? '';
                    if ($password) {
                        $adapter->auth($config['password']);
                    }
                    $database = $config['database'] ?? 0;
                    $adapter->select($database);
                    return new RedisAdapter($adapter);
                },
            ],
        ],
    ],

    // 公共配置(此处可配置app里的一些公共配置,优先级app里的最高)
    'appCommon' => [
        'http' => [
            'max_retries' => 1,
            'retry_delay' => 500,
            'timeout' => 5.0,
        ],
        'response_type' => 'array',
    ],

    // 公众号配置
    'officialAccount' => [
        'default' => [
            'app_id' => 'wx3cf0f39249eb0exx',
            'secret' => 'f1c242f4f28f735d4687abb469072axx',
        ],
    ],
    // 小程序
    'miniProgram' => [
        'default' => [
            'app_id' => 'wx3cf0f39249eb0exx',
            'secret' => 'f1c242f4f28f735d4687abb469072axx',
        ],
    ],
    // 开放平台
    'openPlatform' => [
        'default' => [
            'app_id' => '开放平台第三方平台 APPID',
            'secret' => '开放平台第三方平台 Secret',
            'token' => '开放平台第三方平台 Token',
            'aes_key' => '开放平台第三方平台 AES Key',
        ],
    ],
    // 企业微信
    'work' => [
        'default' => [
            'corp_id' => 'xxxxxxxxxxxxxxxxx',
            'agent_id' => 100020, // 如果有 agend_id 则填写
            'secret' => 'xxxxxxxxxx',
        ],
    ],
    // 企业微信开放平台
    'openWork' => [
        'default' => [
            'corp_id' => '服务商的corpid',
            'secret' => '服务商的secret,在服务商管理后台可见',
            'suite_id' => '以ww或wx开头应用id',
            'suite_secret' => '应用secret',
            'token' => '应用的Token',
            'aes_key' => '应用的EncodingAESKey',
            'reg_template_id' => '注册定制化模板ID',
            'redirect_uri_install' => '安装应用的回调url(可选)',
            'redirect_uri_single' => '单点登录回调url (可选)',
            'redirect_uri_oauth' => '网页授权第三方回调url (可选)',

        ],
    ],
    // 小微商户
    'microMerchant' => [
        'default' => [
            // 必要配置
            'mch_id' => 'your-mch-id', // 服务商的商户号
            'key' => 'key-for-signature', // API 密钥
            'apiv3_key' => 'APIv3-key-for-signature', // APIv3 密钥
            // API 证书路径(登录商户平台下载 API 证书)
            'cert_path' => 'path/to/your/cert.pem', // XXX: 绝对路径!!!!
            'key_path' => 'path/to/your/key', // XXX: 绝对路径!!!!
            // 以下两项配置在获取证书接口时可为空,在调用入驻接口前请先调用获取证书接口获取以下两项配置,如果获取过证书可以直接在这里配置,也可参照本文档获取平台证书章节中示例
            // 'serial_no'     => '获取证书接口获取到的平台证书序列号',
            // 'certificate'   => '获取证书接口获取到的证书内容'

            // 以下为可选项
            // 指定 API 调用返回结果的类型:array(default)/collection/object/raw/自定义类名
            'response_type' => 'array',
            'appid' => 'wx931386123456789e' // 服务商的公众账号 ID
        ],
    ],
];