WP Manifestindependent plugin directory
manifest / users / paid-registration-alipay

支付宝付费注册

WordPress 插件:先支付宝付费、再创建账号。仅付费会员可评论与查看受保护内容。多套餐、优惠券、会员到期/续费、内容付费墙 、会员中心、沙盒/正式双环境、订单审计与自动清理。

by Claude Code · github.com/longgod666/paid-registration-alipay

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/longgod666/paid-registration-alipay/archive/refs/heads/main.zip

WordPress 插件:用户先用支付宝完成支付,再创建账号;只允许付费会员评论与查看受保护内容。支持多套餐、优惠券、会员到期/续费、用户后台。

功能特性

  • 先付费后注册:用户在前台填写邮箱并选择套餐,扫码完成支付宝支付后才创建 WordPress 账号;自动登录并跳转。
  • 多套餐 / 优惠券:通过 JSON 配置任意数量的套餐与折扣码,支持按金额或百分比抵扣。
  • 会员有效期:每套餐可设到期天数,到期后自动撤销会员身份;支持续费续期。
  • 评论门槛:仅付费用户可发表评论(按角色判定),其他访客被拦截。
  • 内容门控:编辑器侧边栏可对单篇文章/页面开启付费墙,未付费用户看到提示与跳转链接。
  • 会员后台[pra_member_dashboard] 短代码渲染会员中心,展示订单、到期时间、续费入口。
  • 沙盒 / 正式双环境:分别保存密钥,一键切换;网关白名单仅允许 alipay.com / alipaydev.com
  • 运维友好:管理员订单导出、批量操作、补单、重新发货、审计日志、过期订单自动清理(cron)。
  • 测试模式:开发期可绕过支付直接创建账号,便于联调。

环境要求

  • WordPress 5.8+
  • PHP 7.4+(推荐 8.0+;支付宝 SDK 需要 openssl 扩展)
  • 已申请支付宝开放平台应用,并取得 App ID、商户私钥(PKCS#8 PEM)、支付宝公钥
  • 站点必须可被支付宝异步通知服务器访问(HTTPS 公网域名 + admin-post.php

安装

方式 1:ZIP 上传

  1. 下载本仓库 ZIP,或 git archive 打包为 paid-registration-alipay.zip
  2. 进入 WordPress 后台 → 插件 → 安装插件 → 上传插件,选择 ZIP。
  3. 启用「支付宝付费注册」。

方式 2:Git 克隆

cd wp-content/plugins
git clone https://github.com/longgod666/paid-registration-alipay.git

启用后,插件会自动创建以下页面(如不存在):

  • /付费注册/(包含 [pra_paid_registration]
  • /会员中心/(包含 [pra_member_dashboard]

配置

WordPress 后台 → 设置 → 支付宝付费注册

必填项

字段 说明
当前生效环境 sandboxproduction
App ID 支付宝开放平台应用 ID
商户 PID(seller_id) 用于校验异步通知来源
商户私钥 PKCS#8 PEM 格式,用于请求签名
支付宝公钥 用于验签异步通知
注册金额 大于 0,单位元
注册页 URL 包含 [pra_paid_registration] 的页面

可选项

  • 套餐 / 优惠券 JSON
  • 管理员通知邮箱
  • 二维码图片接口(默认使用第三方服务,含 {data} 占位符)
  • 测试模式(绕过支付)
  • 过期订单自动清理天数

支付宝侧回调地址

把以下两个 URL 配置到支付宝开放平台应用:

  • 同步返回https://你的域名/?action=pra_alipay_return
  • 异步通知https://你的域名/wp-admin/admin-post.php?action=pra_alipay_notify

使用方式

前台注册页:在任意页面插入

[pra_paid_registration]

会员中心

[pra_member_dashboard]

单页内容门控:编辑器右侧边栏 →「付费内容设置」勾选启用,未付费用户看到提示。

短代码 / Hook 速查

名称 类型 用途
[pra_paid_registration] shortcode 渲染付费注册表单
[pra_member_dashboard] shortcode 渲染会员中心
pra_cleanup_expired_orders cron hook 每小时清理过期待支付订单
pra_membership_expiry_check cron hook 每日撤销已到期会员
pra_paid_until user meta 当前会员到期时间戳

数据库

插件自建一张表存放未支付订单:

{$wpdb->prefix}pra_pending_registrations

支付成功后转为正式 WP 用户,过期记录由 cron 清理。卸载插件不会自动删除该表(保留审计数据);如需彻底清除,手动 DROP TABLE 即可。

安全说明

  • 所有管理员操作经 nonce + 权限校验。
  • 输入全量 sanitize(sanitize_text_field / absint / wp_kses_post),输出全量 escape。
  • 支付宝网关 URL 强制 HTTPS + 域名白名单,防止配置被篡改。
  • 商户私钥 / 支付宝公钥仅在后台显示掩码。
  • 异步通知使用 verify 验签,并校验 seller_idout_trade_no、金额。

开发

源码组织:

paid-registration-alipay/
├── paid-registration-alipay.php   # 入口
├── includes/
│   ├── class-pra-plugin.php            # 调度 / 升级 / cron
│   ├── class-pra-settings.php          # 后台设置 / 订单管理
│   ├── class-pra-registration.php      # 前台注册短代码
│   ├── class-pra-payment.php           # 支付宝下单 / 验签
│   ├── class-pra-user-provisioning.php # 创建 WP 账号
│   ├── class-pra-comments.php          # 评论门槛
│   ├── class-pra-content-gating.php    # 单篇付费墙
│   └── class-pra-member-dashboard.php  # 会员中心
└── assets/
    ├── css/   pra-admin.css / pra-frontend.css
    ├── js/    pra-admin.js  / pra-frontend.js
    └── vendor/qrcode.min.js

本地调试可启用「测试模式」绕过真实支付。

路线图

  • [ ] 微信支付通道
  • [ ] WooCommerce 订阅集成
  • [ ] 多语言(i18n) .pot 模板
  • [ ] 单元测试 / CI

贡献

欢迎 Issue / PR:

  1. Fork 后新建分支 feat/xxxfix/xxx
  2. 遵循 WordPress 编码规范(Tabs 缩进,函数前缀 pra_ / 类前缀 PRA_
  3. 提交前自检 nonce / 权限 / 转义
  4. 描述清楚动机与影响面

License

MIT — 详见 LICENSE