src/Topxia/MobileBundleV2/Alipay/AlipayNotify.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Topxia\MobileBundleV2\Alipay;
require_once 'lib/alipay_core.function.php';
require_once 'lib/alipay_rsa.function.php';
require_once 'lib/alipay_md5.function.php';
class AlipayNotify
{
/**
* HTTPS形式消息验证地址
*/
public $https_verify_url = 'https://mapi.alipay.com/gateway.do?service=notify_verify&';
/**
* HTTP形式消息验证地址
*/
public $http_verify_url = 'http://notify.alipay.com/trade/notify_query.do?';
public $alipay_config;
public function __construct($alipay_config)
{
$this->alipay_config = $alipay_config;
}
public function AlipayNotify($alipay_config)
{
$this->__construct($alipay_config);
}
/**
* 针对notify_url验证消息是否是支付宝发出的合法消息.
*
* @return 验证结果
*/
public function verifyNotify()
{
if (empty($_POST)) {
//判断POST来的数组是否为空
return false;
} else {
//对notify_data解密
$decrypt_post_para = $_POST;
if ($this->alipay_config['sign_type'] == '0001') {
$decrypt_post_para['notify_data'] = rsaDecrypt($decrypt_post_para['notify_data'], $this->alipay_config['private_key_path']);
}
//notify_id从decrypt_post_para中解析出来(也就是说decrypt_post_para中已经包含notify_id的内容)
$doc = new \DOMDocument();
$doc->loadXML($decrypt_post_para['notify_data']);
$notify_id = $doc->getElementsByTagName('notify_id')->item(0)->nodeValue;
//获取支付宝远程服务器ATN结果(验证是否是支付宝发来的消息)
$responseTxt = 'true';
if (!empty($notify_id)) {
$responseTxt = $this->getResponse($notify_id);
}
//生成签名结果
$isSign = $this->getSignVeryfy($decrypt_post_para, $_POST['sign'], false);
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。