Commit e5ef5bac by 冷斌

fix bug

parent 7f2cff31
......@@ -7,24 +7,24 @@ class Api_Charge extends PhalApi_Api {
'getAliOrder' => array(
'uid' => array('name' => 'uid', 'type' => 'int', 'min' => 1, 'require' => true, 'desc' => '用户ID'),
'changeid' => array('name' => 'changeid', 'type' => 'int', 'require' => true, 'desc' => '充值规则ID'),
'coin' => array('name' => 'coin', 'type' => 'string', 'require' => true, 'desc' => '萌豆'),
'coin' => array('name' => 'coin', 'type' => 'string', 'require' => true, 'desc' => '钻石'),
'money' => array('name' => 'money', 'type' => 'string', 'require' => true, 'desc' => '充值金额'),
),
'getWxOrder' => array(
'getWxOrder' => array(
'uid' => array('name' => 'uid', 'type' => 'int', 'min' => 1, 'require' => true, 'desc' => '用户ID'),
'changeid' => array('name' => 'changeid', 'type' => 'string', 'require' => true, 'desc' => '充值规则ID'),
'coin' => array('name' => 'coin', 'type' => 'string', 'require' => true, 'desc' => '萌豆'),
'coin' => array('name' => 'coin', 'type' => 'string', 'require' => true, 'desc' => '钻石'),
'money' => array('name' => 'money', 'type' => 'string', 'require' => true, 'desc' => '充值金额'),
),
'getIosOrder' => array(
'uid' => array('name' => 'uid', 'type' => 'int', 'min' => 1, 'require' => true, 'desc' => '用户ID'),
'changeid' => array('name' => 'changeid', 'type' => 'string', 'require' => true, 'desc' => '充值规则ID'),
'coin' => array('name' => 'coin', 'type' => 'string', 'require' => true, 'desc' => '萌豆'),
'coin' => array('name' => 'coin', 'type' => 'string', 'require' => true, 'desc' => '钻石'),
'money' => array('name' => 'money', 'type' => 'string', 'require' => true, 'desc' => '充值金额'),
),
);
}
/* 获取订单号 */
protected function getOrderid($uid){
$orderid=$uid.'_'.date('YmdHis').rand(100,999);
......@@ -35,13 +35,13 @@ class Api_Charge extends PhalApi_Api {
* 微信支付
* @desc 用于 微信支付 获取订单号
* @return int code 操作码,0表示成功
* @return array info
* @return array info
* @return string info[0] 支付信息
* @return string msg 提示信息
*/
public function getWxOrder() {
$rs = array('code' => 0, 'msg' => '', 'info' => array());
$uid=$this->uid;
$changeid=$this->changeid;
$coin=checkNull($this->coin);
......@@ -49,24 +49,24 @@ class Api_Charge extends PhalApi_Api {
$orderid=$this->getOrderid($uid);
$type=2;
if($coin==0){
$rs['code']=1002;
$rs['msg']='信息错误';
return $rs;
}
$configpri = getConfigPri();
$configpub = getConfigPub();
$rs['msg']='信息错误';
return $rs;
}
$configpri = getConfigPri();
$configpub = getConfigPub();
//配置参数检测
if($configpri['wx_appid']== "" || $configpri['wx_mchid']== "" || $configpri['wx_key']== ""){
$rs['code'] = 1002;
$rs['msg'] = '微信未配置';
return $rs;
return $rs;
}
$orderinfo=array(
"uid"=>$uid,
"touid"=>$uid,
......@@ -78,23 +78,23 @@ class Api_Charge extends PhalApi_Api {
"addtime"=>time()
);
$domain = new Domain_Charge();
$info = $domain->getOrderId($changeid,$orderinfo);
if($info==1003){
$rs['code']=1003;
$rs['msg']='订单信息有误,请重新提交';
return $rs;
return $rs;
}else if(!$info){
$rs['code']=1001;
$rs['msg']='订单生成失败';
return $rs;
return $rs;
}
$noceStr = md5(rand(100,1000).time());//获取随机字符串
$time = time();
$paramarr = array(
"appid" => $configpri['wx_appid'],
"body" => "充值{$coin}虚拟币",
......@@ -102,7 +102,7 @@ class Api_Charge extends PhalApi_Api {
"nonce_str" => $noceStr,
"notify_url" => $configpub['site'].'/Appapi/pay/notify_wx',
"out_trade_no"=> $orderid,
"total_fee" => $money*100,
"total_fee" => $money*100,
"trade_type" => "APP"
);
$sign = $this -> sign($paramarr,$configpri['wx_key']);//生成签名
......@@ -112,10 +112,10 @@ class Api_Charge extends PhalApi_Api {
$paramXml .= "<" . $k . ">" . $v . "</" . $k . ">";
}
$paramXml .= "</xml>";
$ch = curl_init ();
@curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
@curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在
@curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
@curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在
@curl_setopt($ch, CURLOPT_URL, "https://api.mch.weixin.qq.com/pay/unifiedorder");
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
@curl_setopt($ch, CURLOPT_POST, 1);
......@@ -128,11 +128,11 @@ class Api_Charge extends PhalApi_Api {
curl_close($ch);
$result2 = $this->xmlToArray($resultXmlStr);
if($result2['return_code']=='FAIL'){
$rs['code']=1005;
$rs['msg']=$result2['return_msg'];
return $rs;
return $rs;
}
$time2 = time();
$prepayid = $result2['prepay_id'];
......@@ -147,11 +147,11 @@ class Api_Charge extends PhalApi_Api {
"timestamp" => $time2
);
$paramarr2["sign"] = $this -> sign($paramarr2,$configpri['wx_key']);//生成签名
$rs['info'][0]=$paramarr2;
return $rs;
}
return $rs;
}
/**
* sign拼装获取
*/
......@@ -163,43 +163,43 @@ class Api_Charge extends PhalApi_Api {
$sign .= "key=".$key;
$sign = strtoupper(md5($sign));
return $sign;
}
/**
* xml转为数组
*/
protected function xmlToArray($xmlStr){
$msg = array();
$postStr = $xmlStr;
$msg = (array)simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$msg = array();
$postStr = $xmlStr;
$msg = (array)simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
return $msg;
}
}
/**
* 支付宝支付
* @desc 用于支付宝支付 获取订单号
* @return int code 操作码,0表示成功
* @return array info
* @return array info
* @return string info[0].orderid 订单号
* @return string msg 提示信息
*/
public function getAliOrder() {
$rs = array('code' => 0, 'msg' => '', 'info' => array());
$uid=$this->uid;
$changeid=$this->changeid;
$coin=checkNull($this->coin);
$money=checkNull($this->money);
$orderid=$this->getOrderid($uid);
$type=1;
if($coin==0){
$rs['code']=1002;
$rs['msg']='信息错误';
return $rs;
}
$rs['msg']='信息错误';
return $rs;
}
$orderinfo=array(
"uid"=>$uid,
"touid"=>$uid,
......@@ -210,7 +210,7 @@ class Api_Charge extends PhalApi_Api {
"status"=>0,
"addtime"=>time()
);
$domain = new Domain_Charge();
$info = $domain->getOrderId($changeid,$orderinfo);
if($info==1003){
......@@ -220,38 +220,38 @@ class Api_Charge extends PhalApi_Api {
$rs['code']=1001;
$rs['msg']='订单生成失败';
}
$rs['info'][0]['orderid']=$orderid;
return $rs;
}
}
/**
* 苹果支付
* @desc 用于苹果支付 获取订单号
* @return int code 操作码,0表示成功
* @return array info
* @return array info
* @return string info[0].orderid 订单号
* @return string msg 提示信息
*/
public function getIosOrder() {
$rs = array('code' => 0, 'msg' => '', 'info' => array());
$uid=$this->uid;
$changeid=$this->changeid;
$coin=checkNull($this->coin);
$money=checkNull($this->money);
$orderid=$this->getOrderid($uid);
$type=3;
if($coin==0){
$rs['code']=1002;
$rs['msg']='信息错误';
return $rs;
$rs['msg']='信息错误';
return $rs;
}
$configpri = getConfigPri();
$configpri = getConfigPri();
$orderinfo=array(
"uid"=>$uid,
"touid"=>$uid,
......@@ -263,7 +263,7 @@ class Api_Charge extends PhalApi_Api {
"addtime"=>time(),
"ambient"=>$configpri['ios_sandbox']
);
$domain = new Domain_Charge();
$info = $domain->getOrderId($changeid,$orderinfo);
if($info==1003){
......@@ -276,8 +276,8 @@ class Api_Charge extends PhalApi_Api {
$rs['info'][0]['orderid']=$orderid;
return $rs;
}
}
}
......@@ -10,11 +10,11 @@ class Api_Red extends PhalApi_Api {
'stream' => array('name' => 'stream', 'type' => 'string', 'require' => true, 'desc' => '流名'),
'type' => array('name' => 'type', 'type' => 'int', 'require' => true, 'desc' => '红包类型,0普通,1手气'),
'type_grant' => array('name' => 'type_grant', 'type' => 'int', 'require' => true, 'desc' => '发放类型,0立即 1延迟'),
'coin' => array('name' => 'coin', 'type' => 'int', 'require' => true, 'desc' => '萌豆'),
'coin' => array('name' => 'coin', 'type' => 'int', 'require' => true, 'desc' => '钻石'),
'nums' => array('name' => 'nums', 'type' => 'int', 'require' => true, 'desc' => '数量'),
'des' => array('name' => 'des', 'type' => 'string', 'default'=>'恭喜发财,大吉大利', 'desc' => '描述'),
),
'getRedList' => array(
'uid' => array('name' => 'uid', 'type' => 'int', 'min' => 1, 'require' => true, 'desc' => '用户ID'),
'stream' => array('name' => 'stream', 'type' => 'string', 'require' => true, 'desc' => '流名'),
......@@ -40,13 +40,13 @@ class Api_Red extends PhalApi_Api {
* 发送红包
* @desc 用于 发送红包
* @return int code 操作码,0表示成功
* @return array info
* @return array info
* @return string info[0].redid 红包ID
* @return string msg 提示信息
*/
public function sendRed() {
$rs = array('code' => 0, 'msg' => '发送成功', 'info' => array());
$uid=$this->uid;
$token=checkNull($this->token);
$stream=checkNull($this->stream);
......@@ -55,27 +55,27 @@ class Api_Red extends PhalApi_Api {
$coin=$this->coin;
$nums=$this->nums;
$des=checkNull($this->des);
$checkToken=checkToken($uid,$token);
if($checkToken==700){
$rs['code'] = $checkToken;
$rs['msg'] = '您的登陆状态失效,请重新登陆!';
return $rs;
}
if((int)$coin==0){
$rs['code']=1002;
$rs['msg']='请输入正确的金额';
return $rs;
}
$rs['msg']='请输入正确的金额';
return $rs;
}
if((int)$nums==0){
$rs['code']=1003;
$rs['msg']='请输入正确的个数';
return $rs;
}
$rs['msg']='请输入正确的个数';
return $rs;
}
if($type==0){
/* 平均 */
$avg=$coin ;
......@@ -83,27 +83,27 @@ class Api_Red extends PhalApi_Api {
}else{
if($nums > $coin){
$rs['code']=1004;
$rs['msg']='红包数量不能超过红包金额';
$rs['msg']='红包数量不能超过红包金额';
return $rs;
}
}
}
if(mb_strlen($des)>20){
$rs['code']=1004;
$rs['msg']='红包名称最多20个字';
$rs['msg']='红包名称最多20个字';
return $rs;
}
$stream_a=explode("_",$stream);
$liveuid=$stream_a[0];
$showid=$stream_a[1];
if((int)$liveuid==0 || (int)$showid==0){
$rs['code']=1007;
$rs['msg']='信息错误';
$rs['msg']='信息错误';
return $rs;
}
$nowtime=time();
$addtime=$nowtime;
$effecttime=$nowtime;
......@@ -126,16 +126,16 @@ class Api_Red extends PhalApi_Api {
);
$domain = new Domain_Red();
$result = $domain->sendRed($data);
if($result['code']!=0){
if($result['code']!=0){
return $result;
}
$redinfo=$result['info'];
$redid=$redinfo['id'];
$key='red_list_'.$stream;
DI()->redis->rPush($key,$redid);
$key2='red_list_'.$stream.'_'.$redid;
$red_list=$this->redlist($coin,$nums,$type);
foreach($red_list as $k=>$v){
......@@ -143,56 +143,56 @@ class Api_Red extends PhalApi_Api {
}
$rs['info'][0]['redid']=(string)$redid;
return $rs;
}
return $rs;
}
/**
* 获取红包列表
* @desc 用于 获取红包列表
* @return int code 操作码,0表示成功
* @return array info
* @return string info[].id 红包ID
* @return string info[].uid 发布者ID
* @return string info[].type 红包类型
* @return string info[].type_grant 发放类型
* @return string info[].second 剩余时间(秒)
* @return string info[].isrob 是否能抢
* @return array info
* @return string info[].id 红包ID
* @return string info[].uid 发布者ID
* @return string info[].type 红包类型
* @return string info[].type_grant 发放类型
* @return string info[].second 剩余时间(秒)
* @return string info[].isrob 是否能抢
* @return string msg 提示信息
*/
public function getRedList() {
$rs = array('code' => 0, 'msg' => '', 'info' => array());
$uid=checkNull($this->uid);
$sign=checkNull($this->sign);
$stream=checkNull($this->stream);
$checkdata=array(
'stream'=>$stream
);
$issign=checkSign($checkdata,$sign);
if(!$issign){
$rs['code']=1001;
$rs['msg']='签名错误';
return $rs;
return $rs;
}
$stream_a=explode("_",$stream);
$liveuid=$stream_a[0];
$showid=$stream_a[1];
if((int)$liveuid==0 || (int)$showid==0){
$rs['code']=1007;
$rs['msg']='信息错误';
$rs['msg']='信息错误';
return $rs;
}
$domain = new Domain_Red();
$result = $domain->getRedList($liveuid,$showid);
$nowtime=time();
foreach($result as $k=>$v){
$userinfo=getUserInfo($v['uid']);
$v['user_nicename']=$userinfo['user_nicename'];
$v['avatar']=$userinfo['avatar'];
$v['avatar_thumb']=$userinfo['avatar_thumb'];
......@@ -203,7 +203,7 @@ class Api_Red extends PhalApi_Api {
}
}
$isrob='0';
$key='red_user_winning_'.$stream.'_'.$v['id'];
$key2='red_list_'.$stream.'_'.$v['id'];
$ifwin=DI()->redis->zScore($key,$uid);
......@@ -215,75 +215,75 @@ class Api_Red extends PhalApi_Api {
}
$v['isrob']=$isrob;
$result[$k]=$v;
}
$rs['info']=$result;
return $rs;
}
/**
* 抢红包
* @desc 用于 用户抢红包
* @return int code 操作码,0表示成功
* @return array info
* @return string info[0]
* @return array info
* @return string info[0]
* @return string info[0].win 抢到的红包金额,0表示没抢到
* @return string info[0].msg 提示信息
* @return string msg 提示信息
*/
public function robRed() {
$rs = array('code' => 0, 'msg' => '', 'info' => array());
$uid=checkNull($this->uid);
$token=checkNull($this->token);
$stream=checkNull($this->stream);
$redid=checkNull($this->redid);
$sign=checkNull($this->sign);
$checkToken=checkToken($uid,$token);
if($checkToken==700){
$rs['code'] = $checkToken;
$rs['msg'] = '您的登陆状态失效,请重新登陆!';
return $rs;
}
$checkdata=array(
'uid'=>$uid,
'redid'=>$redid,
'stream'=>$stream,
);
$issign=checkSign($checkdata,$sign);
if(!$issign){
$rs['code']=1001;
$rs['msg']='签名错误';
return $rs;
return $rs;
}
$nowtime=time();
$key='red_user_winning_'.$stream.'_'.$redid;
$key2='red_list_'.$stream.'_'.$redid;
$result=array(
'win'=>'0',
'msg'=>'手慢了,红包派完了',
);
$ifwin=DI()->redis->zScore($key,$uid);
if($ifwin==false){
$ifexist=DI()->redis->exists($key2);
if($ifexist){
$coin=DI()->redis->lPop($key2);
if($coin>0){
$stream_a=explode("_",$stream);
$liveuid=$stream_a[0];
$showid=$stream_a[1];
$data=array(
'uid'=>$uid,
'redid'=>$redid,
......@@ -291,39 +291,39 @@ class Api_Red extends PhalApi_Api {
'showid'=>$showid,
'addtime'=>$nowtime,
);
$domain = new Domain_Red();
$result2 = $domain->robRed($data);
$score=$coin;
DI()->redis->zAdd($key,$score,$uid);
$result['win']=(string)$coin;
//$result['msg']='';
}
}
}else{
$ifwin_a=explode(".",$ifwin);
$time=$ifwin_a[0];
$coin=$ifwin_a[1];
$coin=substr($coin,0,-1);
$result['win']=(string)$coin;
//$result['msg']='';
}
$rs['info'][0]=$result;
return $rs;
}
/**
* 红包领取列表
* @desc 用于 获取红包领取列表
* @return int code 操作码,0表示成功
* @return array info
* @return array info
* @return object info[0].redinfo 红包信息
* @return string info[0].redinfo.coin 总金额
* @return string info[0].redinfo.nums 总数量
......@@ -335,42 +335,42 @@ class Api_Red extends PhalApi_Api {
*/
public function getRedRobList() {
$rs = array('code' => 0, 'msg' => '', 'info' => array());
$uid=checkNull($this->uid);
$sign=checkNull($this->sign);
$stream=checkNull($this->stream);
$redid=checkNull($this->redid);
$checkdata=array(
'redid'=>$redid,
'stream'=>$stream,
);
$issign=checkSign($checkdata,$sign);
if(!$issign){
$rs['code']=1001;
$rs['msg']='签名错误';
return $rs;
}
return $rs;
}
$stream_a=explode("_",$stream);
$liveuid=$stream_a[0];
$showid=$stream_a[1];
$domain = new Domain_Red();
$redinfo = $domain->getRedInfo($redid);
if(!$redinfo){
$rs['code']=1002;
$rs['msg']='红包不存在';
return $rs;
return $rs;
}
$senduserinfo=getUserInfo($redinfo['uid']);
$redinfo['user_nicename']=$senduserinfo['user_nicename'];
$redinfo['avatar']=$senduserinfo['avatar'];
$redinfo['avatar_thumb']=$senduserinfo['avatar_thumb'];
$list=array();
$win=0;
......@@ -380,11 +380,11 @@ class Api_Red extends PhalApi_Api {
$coin=$v['coin'];
if($v['uid']==$uid){
$win=$coin;
}
$data=array(
'uid'=>$userinfo['id'],
'user_nicename'=>$userinfo['user_nicename'],
......@@ -393,17 +393,17 @@ class Api_Red extends PhalApi_Api {
'time'=>date('H:i:s',$v['addtime']),
);
$list[]=$data;
}
$rs['info'][0]['redinfo']=$redinfo;
$rs['info'][0]['list']=$list;
$rs['info'][0]['win']=(string)$win;
return $rs;
}
/**
* 分配红包个数
* @param int $total
......@@ -416,7 +416,7 @@ class Api_Red extends PhalApi_Api {
/* 平均红包 */
$list=$this->red_average($total,$nums);
}
return $list;
}
......
......@@ -308,7 +308,7 @@ class Model_Live extends PhalApi_Model_NotORM {
if($islive['type']==1){
$rs['type_msg']=md5($islive['type_val']);
}else if($islive['type']==2){
$rs['type_msg']='本房间为收费房间,需支付'.$islive['type_val'].'萌豆';
$rs['type_msg']='本房间为收费房间,需支付'.$islive['type_val'].'钻石';
$rs['type_val']=$islive['type_val'];
$isexist=DI()->notorm->users_coinrecord
->select('id')
......@@ -321,7 +321,7 @@ class Model_Live extends PhalApi_Model_NotORM {
}
}else if($islive['type']==3){
$rs['type_val']=$islive['type_val'];
$rs['type_msg']='本房间为计时房间,每分钟需支付'.$islive['type_val'].'萌豆';
$rs['type_msg']='本房间为计时房间,每分钟需支付'.$islive['type_val'].'钻石';
}
return $rs;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment