1
This commit is contained in:
parent
b58ae29c24
commit
b6f4aa28c1
22
app/api/controller/Wechat.php
Normal file
22
app/api/controller/Wechat.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
namespace app\api\controller;
|
||||
|
||||
use hema\wechat\Pay as WxPay;
|
||||
use app\api\model\Record as RecordModel;
|
||||
|
||||
|
||||
/**
|
||||
* 公众号事件接口
|
||||
*/
|
||||
class Wechat
|
||||
{
|
||||
|
||||
/**
|
||||
* 微信小程序充值成功异步通知
|
||||
*/
|
||||
public function wxapp()
|
||||
{
|
||||
$WxPay = new WxPay([]);
|
||||
$WxPay->notify(new RecordModel,'','add');
|
||||
}
|
||||
}
|
||||
89
extend/hema/wechat/Index.php
Normal file
89
extend/hema/wechat/Index.php
Normal file
@ -0,0 +1,89 @@
|
||||
<?php
|
||||
namespace hema\wechat;
|
||||
|
||||
use app\applet\model\Setting as SettingModel;
|
||||
use app\applet\model\User as UserModel;
|
||||
use app\common\model\Setting;
|
||||
use app\common\model\Applet;
|
||||
use app\common\model\Wechat;
|
||||
use Requests;
|
||||
use think\facade\Cache;
|
||||
use hema\Http;
|
||||
|
||||
class Index
|
||||
{
|
||||
private $config;
|
||||
private $error;
|
||||
/**
|
||||
* 构造函数
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$value = Setting::getItem('wxopen');
|
||||
$value['component_access_token'] = Cache::get('component_access_token','');
|
||||
$this->config = $value;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function index()
|
||||
{
|
||||
|
||||
//接收微信推送数据
|
||||
$nonce = empty ( $_GET ['nonce'] ) ?"" : trim ( $_GET ['nonce'] );
|
||||
$signature = empty ( $_GET['signature'] ) ? "" : trim ( $_GET ['signature'] );
|
||||
$timeStamp = empty ( $_GET ['timestamp']) ? "" : trim ( $_GET ['timestamp'] );
|
||||
$msg_signature = empty ( $_GET['msg_signature'] ) ? "" : trim ( $_GET ['msg_signature'] );
|
||||
$encryptMsg = file_get_contents ('php://input' );
|
||||
$pc = new WxBizMsgCrypt();//创建解密类
|
||||
$msg = '';
|
||||
$errCode = $pc->decryptMsg($msg_signature, $timeStamp, $nonce, $encryptMsg, $msg);
|
||||
if($errCode == 0){
|
||||
$data = _xml_to_arr($msg); //XML转换为数组
|
||||
|
||||
//首次关注公众号
|
||||
if($data['MsgType']=='event'){
|
||||
if($data['Event']=='subscribe'){
|
||||
$wx = new Driver;
|
||||
if($wechat_user = $wx->getWechatUserInfo($data['FromUserName'],10001)){
|
||||
//用户操作
|
||||
$model = new UserModel;
|
||||
if($user = $model->subscribe($wechat_user,$this->wechat['applet_id'])){
|
||||
if($this->wechat['applet_id'] == 0){
|
||||
$wx->sendServiceMsg([
|
||||
'type' => 'text',
|
||||
'content' => '请妥善保管您的账号和密码~账号:' . $user['user_name'] . ',密码:' .$user['password'] . ',如忘记回复“找回账号”找回~'
|
||||
],$data['FromUserName'],$this->wechat['applet_id']);
|
||||
}
|
||||
}
|
||||
if(isset($data['Ticket']) and $data['EventKey'] == 'qrscene_login'){
|
||||
//扫码关注公众号
|
||||
Cache::set($data['Ticket'],$wechat_user,3600);
|
||||
}
|
||||
}else{
|
||||
//返回文本提醒
|
||||
$wx->sendServiceMsg([
|
||||
'type' => 'text',
|
||||
'content' => $wx->getError()
|
||||
],$data['FromUserName'],$this->wechat['applet_id']);
|
||||
}
|
||||
//是否设置了关注回复
|
||||
if($subscribe = SettingModel::getItem('subscribe',$this->wechat['applet_id'])){
|
||||
$this->replyMsg($subscribe,$data);//回复信息
|
||||
}
|
||||
die('success');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user