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

支付宝付费注册

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

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/longgod666/paid-registration-alipay/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

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 后台 → 设置 → 支付宝付费注册

必填项

字段 说明
当前生效环境 sandbox 或 production
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_id、out_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/xxx 或 fix/xxx
  2. 遵循 WordPress 编码规范(Tabs 缩进,函数前缀 pra_ / 类前缀 PRA_)
  3. 提交前自检 nonce / 权限 / 转义
  4. 描述清楚动机与影响面

License

MIT — 详见 LICENSE。