iiyii/yii2-wechat-sdk 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

iiyii/yii2-wechat-sdk

Composer 安装命令:

composer require iiyii/yii2-wechat-sdk

包简介

The wechat api for the Yii framework

README 文档

README

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

说明

本扩展是基于callmez/yii2-wechat-sdk,感谢callmez。,我在他的基础上做了简单的修改,添加了扫码支付,和刷卡支付,后期会添加JS支付。

环境条件

  • = php5.4

  • Yii2

安装

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

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

使用示例

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

Wechat定义方式

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


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

Wechat方法使用(部分示例)

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

//获取二维码ticket
$qrcode = $wechat->createQrCode(123);
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下载失败';

支付使用示例

// 在config/web.php配置文件中定义component配置信息(这种方式可以使用微信所有的接口)
'components' => [
  .....
  'wechat' => [
    'class'     => 'iiyii\wechat\sdk\Wechat',
    'appId'     => '微信公众平台中的appid',
    'appSecret' => '微信公众平台中的secret',
    'token'     => '微信服务器对接您的服务器验证token',
    'mchid'     => '受理商ID',
    'key'       => '商户支付密钥Key',
  ]
  ....
]
// 全局公众号sdk使用
$wechat = Yii::$app->wechat; 


//多公众号使用方式(这种方式只使用微信支付)
$wechat = Yii::createObject([
    'class'     => 'iiyii\wechat\sdk\WechatPay',
    'appId'     => '微信公众平台中的appid',
    'appSecret' => '微信公众平台中的secret',
    'mchid'     => '受理商ID',
    'key'       => '商户支付密钥Key',
]);


// 扫码支付
$wechat->setParameter("body", "贡献一分钱"); //商品描述
// 自定义订单号,此处仅作举例
$timeStamp = time();
$out_trade_no = "forecho" . "$timeStamp";
$wechat->setParameter("out_trade_no", "$out_trade_no"); //商户订单号
$wechat->setParameter("total_fee", "1"); //总金额 分为单位
$wechat->setParameter("notify_url", "http://www.xxx.com");//通知地址
$wechat->setParameter("trade_type", "NATIVE");//交易类型
var_dump($wechat->getpay());


// 刷卡支付
$wechat->setParameter("body", "贡献一分钱"); //商品描述
// 自定义订单号,此处仅作举例
$timeStamp = time();
$out_trade_no = "forecho" . "$timeStamp";
$wechat->setParameter("out_trade_no", "$out_trade_no"); //商户订单号
$wechat->setParameter("total_fee", "1"); //总金额
// 非必填参数,商户可根据实际情况选填
//$wechat->setParameter("sub_mch_id","XXXX");//子商户号
$wechat->setParameter("device_info", "013467007045764"); //设备号
$wechat->setParameter("auth_code", "130735422771146307"); //扫码支付授权码,设备读取用户微信中的条码或者二维码信息
// $wechat->setParameter("attach","XXXX");//附加数据
// $wechat->setParameter("time_start","XXXX");//交易起始时间
// $wechat->setParameter("time_expire","XXXX");//交易结束时间
// $wechat->setParameter("goods_tag","XXXX");//商品标记
// $wechat->setParameter("openid","XXXX");//用户标识
// $wechat->setParameter("product_id","XXXX");//商品ID
var_dump($wechat->getMicropay());

// 查询订单
$wechat->setParameter("out_trade_no", "2015040211155115034"); //商户订单号
// $wechat->setParameter("out_trade_no", "1000990576201504030044223138"); //商户订单号
var_dump($wechat->getOrderInfo());

反馈或贡献代码

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

您也可以 发送邮件caizhenghai@qq.com给我并且说明您的问题.

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

iiyii/yii2-wechat-sdk 适用场景与选型建议

iiyii/yii2-wechat-sdk 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 43 次下载、GitHub Stars 达 7, 最近一次更新时间为 2015 年 04 月 09 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「sdk」 「wechat」 「yii2」 「weixin」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 iiyii/yii2-wechat-sdk 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 iiyii/yii2-wechat-sdk 我们能提供哪些服务?
定制开发 / 二次开发

基于 iiyii/yii2-wechat-sdk 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 43
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 7
  • 点击次数: 19
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 7
  • Watchers: 10
  • Forks: 6
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-04-09