Skip to content

Latest commit

 

History

History
289 lines (218 loc) · 7.21 KB

File metadata and controls

289 lines (218 loc) · 7.21 KB

更新说明 - 2025-10-27

✅ 问题修复

1. 闲鱼支付页面按钮优化

问题

  • 只有"取消订单"按钮,没有返回按钮
  • 取消订单按钮点击后没有反应

解决方案

  • ✅ 添加了"« 返回"按钮(与取消订单按钮并排)
  • ✅ 实现了 cancel_order 回调处理函数
  • ✅ 取消订单后自动返回主菜单

新按钮布局

┌────────────────────────────────┐
│ [🛒 打开闲鱼商品]               │
├────────────────────────────────┤
│ [« 返回] [❌ 取消订单]          │
└────────────────────────────────┘

2. USDT 支付页面返回功能优化

问题

  • 返回按钮点击后无法返回主菜单

原因

  • USDT 支付页面使用 send_photo 发送新消息(包含二维码)
  • 返回按钮尝试 edit_message_text,但图片消息无法直接编辑文字

解决方案

  • ✅ 添加了"❌ 取消订单"按钮
  • ✅ 优化 back_to_main 回调逻辑:
    • 检测消息是否包含图片
    • 如果是图片消息:发送新的欢迎消息 + 删除旧的图片消息
    • 如果是文字消息:直接编辑消息内容
    • 异常处理:编辑失败时发送新消息

新按钮布局

┌────────────────────────────────┐
│ [✅ 我已支付]                   │
├────────────────────────────────┤
│ [📋 查看订单]                   │
├────────────────────────────────┤
│ [« 返回主菜单] [❌ 取消订单]     │
└────────────────────────────────┘

📘 问题解答

3. USDT 收款地址 vs 合约地址

收款地址(Wallet Address)

  • 这是您的 TRON 钱包地址
  • 格式:T 开头,如 TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
  • 作用:用户向这个地址转账 USDT
  • 配置位置:.env 文件中的 TRON_WALLET_ADDRESS

合约地址(Contract Address)

  • 这是 USDT (TRC20) 的智能合约地址
  • 在 TRON 网络上是固定的
  • 作用:标识转账的代币类型是 USDT
  • 用户在某些钱包中需要这个地址来选择正确的代币

简单理解

收款地址 = 您的钱包(钱转到这里)
合约地址 = USDT 的"身份证"(确保转的是 USDT)

支付时的使用

  1. 用户打开钱包
  2. 选择 USDT (TRC20) 代币(通过合约地址识别)
  3. 输入收款地址(您的钱包地址)
  4. 输入金额并转账

4. 闲鱼支付流程确认

您的需求

用户打开闲鱼链接,支付成功后,回来填写闲鱼订单号,管理员人工审核通过后自动拉用户入私密群

当前实现:✅ 完全符合您的需求!

完整流程

用户端流程:

  1. 点击"🏪 闲鱼支付"按钮
  2. 查看购买指南
  3. 点击"🛒 打开闲鱼商品"跳转到闲鱼
  4. 在闲鱼完成购买(需要手动登录闲鱼账号)
  5. 获得闲鱼订单号
  6. 回到 Bot,输入闲鱼订单号
  7. 等待管理员审核

管理员端流程:

  1. 收到通知:"🔔 新的闲鱼订单待审核"
  2. 点击通知查看订单详情
  3. 前往闲鱼人工核实订单真实性
  4. 点击"✅ 通过"按钮
  5. 系统自动
    • 激活用户会员
    • 生成频道邀请链接
    • 自动拉用户进私密频道
    • 发送通知给用户

代码位置:

  • 审核通过逻辑:bot.py 中的 admin_approve_ 回调
  • 自动拉群:使用 invite_user_to_channel() 函数

关键代码

# 审核通过后自动邀请用户加入频道
invite_link = await invite_user_to_channel(
    context, 
    order['user_id'], 
    plan_days
)

🔧 代码修改汇总

修改的函数

1. button_callback() - 新增取消订单处理

elif data.startswith("cancel_order_"):
    # 验证订单
    # 更新订单状态为 cancelled
    # 清除用户状态
    # 返回主菜单

2. button_callback() - 优化返回主菜单逻辑

elif data == "back_to_main":
    # 清除用户状态
    # 判断消息类型(图片/文字)
    # 图片消息:发送新消息 + 删除旧消息
    # 文字消息:编辑消息内容

3. 闲鱼支付相关函数 - 添加返回按钮

  • xianyu_plan_ 回调处理(多套餐模式)
  • create_xianyu_order_direct() 函数(单套餐模式)
  • process_xianyu_payment() 函数(传统流程)

4. USDT 支付函数 - 优化按钮布局

  • process_tron_payment() 函数
  • 添加取消订单按钮

📱 用户体验改进

闲鱼支付流程

旧版

创建订单 → [打开闲鱼] [取消订单(无效)]

新版

创建订单 → [打开闲鱼]
           [« 返回] [❌ 取消订单]

改进点

  • ✅ 返回按钮可用
  • ✅ 取消订单正常工作
  • ✅ 按钮布局更清晰

USDT 支付流程

旧版

显示二维码 → [✅ 我已支付]
            [📋 查看订单]
            [« 返回(无效)]

新版

显示二维码 → [✅ 我已支付]
            [📋 查看订单]
            [« 返回主菜单] [❌ 取消订单]

改进点

  • ✅ 返回按钮真正可用(删除图片消息,发送新的主菜单)
  • ✅ 添加取消订单功能
  • ✅ 支持从任何页面返回主菜单

🧪 测试建议

测试取消订单功能

  1. 启动 Bot
  2. 点击"闲鱼支付"或"USDT 支付"
  3. 创建订单后点击"❌ 取消订单"
  4. 验证:
    • ✅ 显示"订单已取消"提示
    • ✅ 返回主菜单
    • ✅ 订单状态变为 cancelled

测试返回主菜单功能

从闲鱼支付页面返回:

  1. 点击"闲鱼支付"
  2. 创建订单
  3. 点击"« 返回"
  4. 验证:显示主菜单(文字编辑)

从 USDT 支付页面返回:

  1. 点击"USDT 支付"
  2. 创建订单(显示二维码)
  3. 点击"« 返回主菜单"
  4. 验证:
    • ✅ 二维码消息被删除
    • ✅ 显示新的主菜单消息

💡 使用提示

闲鱼支付注意事项

  1. 用户需要手动登录闲鱼

    • Bot 无法自动帮用户登录
    • 如果浏览器已登录,通常会保持登录状态
    • 建议提前在手机浏览器或 App 中登录
  2. 订单审核时效

    • 管理员应在 24 小时内审核
    • 用户提交订单号后会等待审核通知
  3. 订单验证

    • 管理员需前往闲鱼人工核实
    • 确认订单金额和套餐匹配
    • 确认订单真实有效后才点击"✅ 通过"

🔄 部署更新

# 1. 停止 Bot
pm2 stop payment-bot

# 2. 拉取最新代码
git pull

# 3. 重启 Bot
pm2 restart payment-bot

# 4. 查看日志
pm2 logs payment-bot

📚 相关文档


更新完成! 🎉

所有问题已修复,用户体验显著提升!