/**
* 微信支付 通知
*
* @param Request $request
*/
public function notify(Request $request)
{
// 接收微信推送的数据
$data = file_get_contents('php://input');
// 将接收的数据写入日志文件
$path = app()->storagePath('wxPay/' . date('Ym'));
if (!file_exists($path)) {
mkdir($path, 0755, true);
}
$path .= '/' . date('Ymd') . '.txt';
// 处理微信返回的xml格式数据 转换为 数组
libxml_disable_entity_loader(true);
$data = json_decode(json_encode(simplexml_load_string($data, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
file_put_contents($path, date('Y-m-d H:i:s') . "\n Content:" . json_encode($data) . "\n\n", FILE_APPEND);
// 数组排序计算签名
ksort($data);
$buff = '';
foreach ($data as $k => $v) {
if ($k != 'sign') {
$buff .= $k . '=' . $v . '&';
}
}
unset($k, $v);
$stringSignTemp = $buff . 'key=' . $this->C('WX_PAY_SECRET');//key为证书密钥
$sign = strtoupper(md5($stringSignTemp));
// 判断算出的签名和通知信息的签名是否一致
// 签名正确才进行处理
if ($sign == $data['sign']) {
// 业务处理逻辑
// .......
//处理完成之后,告诉微信成功结果
echo '<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
</xml>';
exit();
}
}
PHP接收微信支付结果通知 notify
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 前言:公司业务逻辑,前后端分离,node.js负责处理一些支付逻辑; 配置那些这里就不讲了(因为不是我配置的)直接...
- 上一篇介绍了如何发起微信支付,本篇介绍如果处理微信支付后的结果通知的相关处理。 1、获取微信支付结果通知参数 通知...