debug
parent
6569b2b36d
commit
b44a12ed6c
|
|
@ -34,14 +34,21 @@ class AlipayLifeController extends CommonController
|
|||
*/
|
||||
public function Index()
|
||||
{
|
||||
file_put_contents('./gggggg.txt', json_encode($_GET));
|
||||
file_put_contents('./pppppp.txt', json_encode($_POST));
|
||||
file_put_contents('./ffffff.txt', urldecode(file_get_contents("php://input")));
|
||||
|
||||
// file_put_contents('./gggggg.txt', json_encode($_GET));
|
||||
// file_put_contents('./pppppp.txt', json_encode($_POST));
|
||||
// file_put_contents('./ffffff.txt', urldecode(file_get_contents("php://input")));
|
||||
|
||||
|
||||
// 参数
|
||||
$params = $_POST;
|
||||
if(empty($params))
|
||||
{
|
||||
$input = file_get_contents("php://input");
|
||||
if(!empty($input))
|
||||
{
|
||||
$params = iconv("GBK", "UTF-8", urldecode($input));
|
||||
}
|
||||
}
|
||||
if(empty($params['service']))
|
||||
{
|
||||
die('service error');
|
||||
|
|
@ -58,6 +65,11 @@ class AlipayLifeController extends CommonController
|
|||
$o->Check();
|
||||
break;
|
||||
|
||||
// 关注/取消
|
||||
case 'alipay.mobile.public.message.notify' :
|
||||
$o->Life();
|
||||
break;
|
||||
|
||||
// 默认
|
||||
default :
|
||||
exit('service error');
|
||||
|
|
|
|||
|
|
@ -44,75 +44,6 @@ class AlipayLife
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* xml转属组
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-10-22
|
||||
* @desc description
|
||||
* @param [string] $xmltext [xml数据]
|
||||
* @return [array] [属组]
|
||||
*/
|
||||
public function xmlToArray($xmltext)
|
||||
{
|
||||
libxml_disable_entity_loader(true);
|
||||
return json_decode(json_encode(simplexml_load_string($xmltext, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 属组转url字符串
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-10-22
|
||||
* @desc description
|
||||
* @param [array] $data [输入参数-数组]
|
||||
* @return [string] [url字符串]
|
||||
*/
|
||||
public function ArrayToUrlString($data)
|
||||
{
|
||||
$ur_lstring = '';
|
||||
ksort($data);
|
||||
foreach($data AS $key=>$val)
|
||||
{
|
||||
if(!in_array($key, ['sign']))
|
||||
{
|
||||
$ur_lstring .= "$key=$val&";
|
||||
}
|
||||
}
|
||||
return substr($ur_lstring, 0, -1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-10-22
|
||||
* @desc description
|
||||
*/
|
||||
public function Check()
|
||||
{
|
||||
if($this->OutRsaVerify($this->ArrayToUrlString($this->params), $this->params['sign']))
|
||||
{
|
||||
$response_xml = '<success>true</success><biz_content>'.$this->life_data['rsa_public'].'</biz_content>';
|
||||
} else {
|
||||
$response_xml = '<success>false</success><error_code>VERIFY_FAILED</error_code><biz_content>'.$this->life_data['rsa_public'].'</biz_content>';
|
||||
}
|
||||
$return_xml = '<?xml version="1.0" encoding="GBK"?>
|
||||
<alipay>
|
||||
<response>
|
||||
<biz_content>'.$this->life_data['rsa_public'].'</biz_content>
|
||||
<success>true</success>
|
||||
</response>
|
||||
<sign>'.$this->MyRsaSign($response_xml).'</sign>
|
||||
<sign_type>RSA2</sign_type>
|
||||
</alipay>';
|
||||
die($return_xml);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* [MyRsaSign 签名字符串]
|
||||
* @author Devil
|
||||
|
|
@ -181,5 +112,123 @@ class AlipayLife
|
|||
}
|
||||
return (isset($verify) && $verify == 1) ? true : false;
|
||||
}
|
||||
|
||||
/**
|
||||
* xml转属组
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-10-22
|
||||
* @desc description
|
||||
* @param [string] $xmltext [xml数据]
|
||||
* @return [array] [属组]
|
||||
*/
|
||||
public function xmlToArray($xmltext)
|
||||
{
|
||||
libxml_disable_entity_loader(true);
|
||||
return json_decode(json_encode(simplexml_load_string($xmltext, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 属组转url字符串
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-10-22
|
||||
* @desc description
|
||||
* @param [array] $data [输入参数-数组]
|
||||
* @return [string] [url字符串]
|
||||
*/
|
||||
public function ArrayToUrlString($data)
|
||||
{
|
||||
$ur_lstring = '';
|
||||
ksort($data);
|
||||
foreach($data AS $key=>$val)
|
||||
{
|
||||
if(!in_array($key, ['sign']))
|
||||
{
|
||||
$ur_lstring .= "$key=$val&";
|
||||
}
|
||||
}
|
||||
return substr($ur_lstring, 0, -1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回操作状态
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2018-10-23T01:07:28+0800
|
||||
* @param boolean $status [description]
|
||||
*/
|
||||
public function Respond($status = false)
|
||||
{
|
||||
if($status === true)
|
||||
{
|
||||
$response_xml = '<success>true</success><biz_content>'.$this->life_data['rsa_public'].'</biz_content>';
|
||||
} else {
|
||||
$response_xml = '<success>false</success><error_code>VERIFY_FAILED</error_code><biz_content>'.$this->life_data['rsa_public'].'</biz_content>';
|
||||
}
|
||||
$return_xml = '<?xml version="1.0" encoding="GBK"?>
|
||||
<alipay>
|
||||
<response>
|
||||
<biz_content>'.$this->life_data['rsa_public'].'</biz_content>
|
||||
<success>true</success>
|
||||
</response>
|
||||
<sign>'.$this->MyRsaSign($response_xml).'</sign>
|
||||
<sign_type>RSA2</sign_type>
|
||||
</alipay>';
|
||||
die($return_xml);
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-10-22
|
||||
* @desc description
|
||||
*/
|
||||
public function Check()
|
||||
{
|
||||
$status = $this->OutRsaVerify($this->ArrayToUrlString($this->params), $this->params['sign']);
|
||||
$this->Respond($status);
|
||||
}
|
||||
|
||||
/**
|
||||
* 生活号事件
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2018-10-23T00:38:21+0800
|
||||
*/
|
||||
public function Life()
|
||||
{
|
||||
$status = false;
|
||||
if($this->OutRsaVerify($this->ArrayToUrlString($this->params), $this->params['sign']))
|
||||
{
|
||||
$data = [
|
||||
'appid' => $this->xml_data['AppId'],
|
||||
'alipay_open_id' => $this->xml_data['FromAlipayUserId'],
|
||||
'user_id' => empty($this->xml_data['FromUserId']) ? '' : $this->xml_data['FromUserId'],
|
||||
'logon_id' => empty($userinfo['logon_id']) ? '' : $userinfo['logon_id'],
|
||||
'user_name' => empty($user_id['user_name']) ? '' : $user_id['user_name'],
|
||||
];
|
||||
switch($this->xml_data['EventType'])
|
||||
{
|
||||
// 取消关注
|
||||
case 'unfollow' :
|
||||
$status = AlipayLifeService::UserUnfollow($data);
|
||||
break;
|
||||
|
||||
// 关注/进入生活号
|
||||
case 'enter' :
|
||||
$status = AlipayLifeService::UserEnter($data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
$this->Respond($status);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
@ -28,5 +28,33 @@ class AlipayLifeService
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户取消关注生活号
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-08-29
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function UserUnfollow($params = [])
|
||||
{
|
||||
file_put_contents('./uuuuuu.txt', json_encode($params));
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户关注/进入生活号
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-08-29
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function UserEnter($params = [])
|
||||
{
|
||||
file_put_contents('./eeeeee.txt', json_encode($params));
|
||||
}
|
||||
}
|
||||
?>
|
||||
Loading…
Reference in New Issue