欢迎访问艾立兹站 Aliz- 专注建站教程与技术分享
您当前的位置:首页 > 建站教程 > 织梦CMS教程

织梦 DedeCMS 支付宝支付成功后自动发邮件通知站长设置教程

时间:2026-07-12 10:16:17  来源:阿里站  作者:SKY  阅读:

一、前期准备:先配置织梦系统邮件参数

1、进入织梦后台邮件设置

后台 → 系统 → 系统基本参数 → 核心设置 → 邮件 SMTP 设置 填写以下信息(以 QQ 邮箱为例):

  • SMTP 服务器:smtp.qq.com
  • SMTP 端口:465(SSL 模式)
  • SMTP 邮箱账号:你的 QQ 邮箱
  • SMTP 密码:邮箱授权码(不是 QQ 登录密码)
  • 发件人邮箱:同上
  • 开启 SSL 验证,保存参数

2、测试邮件功能

可新建测试模板 / 调用织梦邮件函数确认邮件发送正常,避免后续回调发送失败。 织梦自带邮件发送核心函数:SendMail($email, $subject, $message, $frommail='')

二、找到支付宝支付回调文件

织梦商城 / 付费模型支付宝插件通常存在以下目录:

  • /include/payment/alipay/
  • /plus/alipay/
  • /dede/商城支付插件目录 核心文件:
  • alipay_notify.php异步回调通知文件,最重要!真正支付结果通知页面
  • alipay_return.php(同步跳转返回页面,仅给用户看页面,不可作为核心通知)

✅ 必须修改 alipay_notify.php 异步回调文件,不能只改 return 页面,防止漏单!

三、修改异步回调 alipay_notify.php,增加邮件通知代码

1、先引入织梦核心公共文件

确保文件顶部包含织梦核心引用(如没有则添加):

<pre class="language-php"><code> require_once(dirname(__FILE__)."/../../../include/common.inc.php"); require_once(dirname(__FILE__)."/../../../include/email.class.php"); </code></pre>

2、找到【验证成功、支付状态正确】代码区块

找到验证支付宝签名成功、且交易状态为 TRADE_SUCCESS 的判断代码内部,插入邮件发送代码:

<pre class="language-php"><code> // 验证支付成功后执行 if ($verify_result && $trade_status == 'TRADE_SUCCESS') { // ==== 新增邮件通知代码开始 ==== $admin_email = "站长接收邮箱@shturl."; // 修改为站长邮箱 $subject = "【织梦网站】新支付宝订单支付成功"; $body = " 订单号:{$out_trade_no}<br> 支付宝交易号:{$trade_no}<br> 支付金额:{$total_fee} 元<br> 付款时间:".date("Y-m-d H:i:s")."<br> 支付状态:已成功付款 "; SendMail($admin_email, $subject, $body, $cfg_adminemail); // ==== 新增邮件通知代码结束 ==== // 原有订单状态更新代码... } </code></pre>

参数说明:

  • $out_trade_no:织梦本地订单号
  • $trade_no:支付宝官方交易流水号
  • $total_fee:实际支付金额
  • $admin_email:填写站长用来接收通知的邮箱

四、同步返回页面(alipay_return.php)可选增加通知

同步页面仅做用户前端展示,可增加额外提醒(仅做辅助,不能替代 notify 异步回调)

<pre class="language-php"><code> require_once(dirname(__FILE__)."/../../../include/common.inc.php"); require_once(dirname(__FILE__)."/../../../include/email.class.php"); $admin_email = "站长接收邮箱@shturl."; $subject = "【织梦网站】用户完成支付宝付款(同步回调)"; $body = "订单号:{$out_trade_no},已完成付款"; SendMail($admin_email, $subject, $body, $cfg_adminemail); </code></pre>

五、保存文件 & 测试验证

  1. 保存修改后的 php 文件,上传覆盖服务器原版文件
  2. 清空织梦全站缓存
  3. 进行一笔小额测试支付,确认:
    • 订单状态正常变为已支付
    • 站长邮箱正常收到订单信息邮件
    • 确认仅支付成功时发送邮件,避免重复发送、重复通知

六、常见问题排查

  1. 收不到邮件
    • 检查 SMTP 配置、授权码是否正确,确认端口 465/25 放行、服务器防火墙未拦截发信端口
    • 检查邮件是否进入垃圾箱,添加发件域名白名单
    • 确认回调文件正确引入 common.inc.php 和 email.class.php,函数 SendMail 可正常调用
    • 确认是修改异步 notify 文件,不是仅改 return 页面
  2. 重复发送邮件
    • 增加数据库标记字段,标记订单已发邮件,仅首次支付成功发送
    • 示例简易防重复:读取订单记录,判断是否已发送邮件,再执行 SendMail
  3. 回调验证失败
    • 核对支付宝密钥、签名验证代码,保证原有支付逻辑正常,不要破坏原有验证代码

七、进阶优化(可选)

  1. 增加订单商品信息、用户信息到邮件正文,方便直接查看详情
  2. 使用 HTML 格式邮件,美化排版
  3. 可同时增加短信通知、微信模板消息提醒,实现多渠道提醒
  4. 做好备份原支付插件文件,后续织梦 / 插件升级时重新应用修改

八、总结

  1. 核心修改文件:alipay_notify.php 支付宝异步回调文件
  2. 利用织梦内置 SendMail 邮件函数,在交易成功判断分支发送站长通知邮件
  3. 优先依靠异步回调发邮件,不要只依赖同步跳转页面,避免漏单
  4. 提前测试 SMTP 邮件功能,保证服务器可正常发送邮件

本文配套模板、静态源码可前往艾立兹素材库alisucai.com下载

发表评论 共有0条评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
公众号二维码

扫码关注公众号
获取全套技术教程