GithubHelp home page GithubHelp logo

yii2-wechat-sdk's Introduction

yii2-wechat-sdk

感谢选择 yii2-wechat-sdk 扩展, 该扩展是基于Yii2框架基础开发,借助Yii2的强劲特性可以定制开发属于您自己的微信公众号

Latest Stable Version Total Downloads Latest Unstable Version License

注意

** 新版本正在重构中, 直到1.0正式版发布前.你依然可以继续使用功能 **

目前有3个主要文件可以使用

  • Wechat.php 旧版微信公众号操作类(在新版[1.0]发布后会删除)
  • MpWechat.php 新版微信公众号操作类(更标准,更完善), 如果您是新使用该库请按照文档说明替换旧版Wechat.php使用
  • QyWechat.php 新版微信企业号操作类(为了更加全面的微信功能操作, 将在[1.1版本中完善发布]), 强势集成企业号功能

环境条件

  • = php5.4

  • Yii2

安装

您可以使用composer来安装, 添加下列代码在您的composer.json文件中并执行composer update操作

{
    "require": {
       "callmez/yii2-wechat-sdk": "dev-master"
    }
}

使用示例

在使用前,请先参考微信公众平台的开发文档

Wechat定义方式

//在config/web.php配置文件中定义component配置信息
'components' => [
  .....
  'wechat' => [
    'class' => 'callmez\wechat\sdk\Wechat',
    'appId' => '微信公众平台中的appid',
    'appSecret' => '微信公众平台中的secret',
    'token' => '微信服务器对接您的服务器验证token'
  ]
  ....
]
// 全局公众号sdk使用
$wechat = Yii::$app->wechat; 


//多公众号使用方式
$wechat = Yii::createObject([
    'class' => 'callmez\wechat\sdk\Wechat',
    'appId' => '微信公众平台中的appid',
    'appSecret' => '微信公众平台中的secret',
    'token' => '微信服务器对接您的服务器验证token'
]);

Wechat方法使用(部分示例)

//获取access_token
var_dump($wechat->accessToken);

//获取二维码ticket
$qrcode = $wechat->createQrCode([
    'expire_seconds' => 604800,
    'action_name' => 'QR_SCENE',
    'action_info' => ['scene' => ['scene_id' => rand(1, 999999999)]]
]);
var_dump($qrcode);

//获取二维码
$imgRawData = $wechat->getQrCodeUrl($qrcode['ticket']);

//获取群组列表
var_dump($wechat->getGroups());


//创建分组
$group = $wechat->createGroup('测试分组');
echo $group ? '测试分组创建成功' : '测试分组创建失败';

//修改分组
echo $wechat->updateGroupName($group['id'], '修改测试分组') ? '修改测试分组成功' : '测试分组创建失败';


//根据关注者ID获取关注者所在分组ID
$openID = 'oiNHQjh-8k4DrQgY5H7xofx_ayfQ'; //此处应填写公众号关注者的唯一openId

//修改关注者所在分组
echo $wechat->updateMemberGroup($openID, 1) ? '修改关注者分组成功' : '修改关注者分组失败';

//获取关注者所在分组
echo $wechat->getGroupId($openID);

//修改关注者备注
echo $wechat->updateMemberRemark($openID, '测试更改备注') ? '关注者备注修改成功' : '关注者备注修改失败';

//获取关注者基本信息
var_dump($wechat->getMemberInfo($openID));

//获取关注者列表
var_dump($wechat->getMemberList());

//获取关注者的客服聊天记录, 
var_dump($wechat->getCustomerServiceRecords($openID, mktime(0, 0, 0, 1, 1, date('Y')), time())); //获取今年的聊天数据(可能获取不到数据)

//上传媒体文件
$filePath = '图片绝对路径'; //目前微信只开发jpg上传
var_dump($media = $wechat->uploadMedia(realpath($filePath), 'image'));

//下载媒体文件
echo $wechat->getMedia($media['media_id']) ? 'media下载成功' : 'media下载失败';

反馈或贡献代码

您可以在这里给我提出在使用中碰到的问题或Bug. 我会在第一时间回复您并修复.

您也可以 发送邮件[email protected]给我并且说明您的问题.

如果你有更好代码实现,请fork项目并发起您的pull request.我会及时处理. 感谢!

yii2-wechat-sdk's People

Contributors

callmez avatar chocoboxxf avatar itgodzilla avatar reevy avatar waltye avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

yii2-wechat-sdk's Issues

企业号还不能用吧?

报错:

PHP Fatal error: Class callmez\wechat\sdk\QyWechat contains 3 abstract methods and must therefore be declared abstract or implement the remaining methods (callmez\wechat\sdk\components\BaseWechat::createMessageCrypt, callmez\wechat\sdk\components\BaseWechat::getCacheKey, callmez\wechat\sdk\components\BaseWechat::parseHttpRequest) in MY_CODE_PATH/vendor/callmez/yii2-wechat-sdk/QyWechat.php on line 11

安装出错

Your requirements could not be resolved to an installable set of packages.

Problem 1
- Installation request for callmez/yii2-wechat dev-master -> satisfiable by callmez/yii2-wechat[dev-master].
- callmez/yii2-wechat dev-master requires bower-asset/angular-drag-and-drop-lists 1.* -> no matching package found.

Potential causes:

Read https://getcomposer.org/doc/articles/troubleshooting.md for further common problems.

yii2-wechat-sdk下存在.git文件夹

yii2-wechat-sdk下存在.git文件夹
导致我经常和自己的git冲突,无法把vendor下的callmez直接作为文件提交,会导致本地已提交也已经推送,但git仓库实际没有的问题

命名空间

ShakeAround.php 命名空间:callmez\wechat\mp;
MpWechat.php use callmez\wechat\sdk\mp\ShakeAround;

为什么会这样使用。

文档错误

$qrcode = $wechat->createQrCode(123); 文档写错了,应该传data

$data=array(
"expire_seconds"=> 604800,
"action_name"=>"QR_SCENE",
"action_info"=>array("scene"=>array("scene_id"=>rand(1,999999999)))
);

MpWechat中getOauth2AuthorizeUrl() $redirectUrl问题

使用MpWechat的getOauth2AuthorizeUrl()获取code,这里的$redirectUrl不应该在调用的时候进行urlencode,因为此方法已经使用了http_build_query进行了urlencode。否则会导致redirect_uri参数错误。

此方法中的$redirect_url参数描述为“授权后重定向的回调链接地址,请使用urlencode对链接进行处理",会让人误以为传值应该是urlencode后的

这是bug吗?跟php版本有关吗?我的是5.5.3 网上都没有解决办法

Use of undefined constant CURL_SSLVERSION_TLSv1 - assumed 'CURL_SSLVERSION_TLSv1'

PHP Notice – yii\base\ErrorException
Use of undefined constant CURL_SSLVERSION_TLSv1 - assumed 'CURL_SSLVERSION_TLSv1'

1. in /data/wwwroot/default/weixin/vendor/callmez/Wechat.php at line 2558
2549255025512552255325542555255625572558255925602561256225632564256525662567

                }
                curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
                break;
            default:
                throw new InvalidParamException("Invalid http type '{$type}.' called.");
        }
        if (stripos($url, "https://") !== false) {
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
            curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1); // 微信官方屏蔽了ssl2和ssl3, 启用更高级的ssl

模版消息发送失败

$arr = array(
'first'=>'first',
'Topic'=>'topic',
'Time'=>date('Y-m-d H:i:s',time()),
'Address'=>'Address',
'remark'=>'remark'
);

   $wechat = Yii::$app->wechat;
    // 发送模版消息
   $result = $wechat->sendTemplateMessage('openid','模版id',$arr);
   var_dump($result);

这样来配置,发送消息失败,不知道是什么原因

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.