AliMPay - 一个手搓的自建支付宝码支付

2026-04-11 15:001阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

开发原因:看到某6%码支付有感,打算手搓一个
原版CLI写的很快(Python写逻辑 让AI改PHP 丢给ai干了我几个小时。。。
什么时候我能学会写前端 只会写后端逻辑写不了啥好玩的

AliMPay - 支付宝码支付系统

一个基于支付宝转账码的自动化支付解决方案,支持经营码收款和转账码收款两种模式。

751192321ae102a907612a9ae6307903.png445×906 42.8 KB

特性

  • 自动监控: 实时监控支付宝账单,自动检测支付状态
  • 码支付: 支持经营码收款和转账码收款
  • 智能超时: 5分钟支付时限,超时订单自动清理
  • 安全可靠: MD5签名验证,防止数据篡改
  • 协议兼容: 100%兼容CodePay协议

快速配置

1. 环境要求

  • PHP 7.4+
  • Composer
  • 支付宝开放平台应用

2. 安装步骤

# 下载项目 # 安装依赖 composer install # 复制配置文件 cp config/alipay.example.php config/alipay.php

3. 支付宝配置

获取支付宝应用参数

  1. 登录 支付宝开放平台
  2. 创建"网页/移动应用"
  3. 获取以下参数:
    • 应用ID: 应用详情页的AppId
    • 应用私钥: 使用密钥工具生成
    • 支付宝公钥: 从平台获取
    • 用户ID: 账户中心的账号ID

可以参考这个文章申请应用,一般都会有一个默认的 生成密钥即可

配置文件设置

编辑 config/alipay.php

<?php return [ 'app_id' => 'YOUR_APP_ID', // 应用ID 'private_key' => 'YOUR_PRIVATE_KEY', // 应用私钥 'alipay_public_key' => 'YOUR_ALIPAY_PUBLIC_KEY', // 支付宝公钥 'transfer_user_id' => 'YOUR_USER_ID', // 支付宝用户ID // 其他配置保持默认即可 ];

获取商户密钥

首次运行需要获取系统分配的商户ID和密钥:

# 启动服务 # 访问健康检查,系统会自动生成商户配置 curl http://domain/health.php # 查看生成的商户信息 cat config/codepay.json

商户配置文件示例

{ "merchant_id": "1001123456789012", "merchant_key": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "created_at": "2024-01-01 12:00:00", "status": 1, "balance": "0.00", "rate": "96" }

重要:请妥善保存 merchant_id (商户ID) 和 merchant_key (商户密钥) ,这是商户接入时必需的参数。

4. 启动服务 下方两个模式二选一

码支付模式

经营码收款(推荐)

目前支付宝放水,进入经营码申请页面填写商户信息时,返回,就会提示是否免填写开启经营码
如果实在没有此处使用收款码替代,或者使用下方转账方式

特点: 无需转账备注,通过金额+时间匹配订单

  1. 上传经营码:将支付宝经营码二维码保存为 qrcode/business_qr.png

  2. 启用配置:编辑 config/alipay.php

'payment' => [ 'business_qr_mode' => [ 'enabled' => true, // 启用经营码模式 ] ]

工作原理

  • 相同金额的订单自动增加0.01元偏移(1.00→1.01→1.02…)
  • 客户扫码支付对应金额
  • 系统通过金额和时间匹配订单

转账收款(无需额外配置)

工作原理

  • 客户转账时填写订单号作为备注
  • 系统监控账单,通过备注匹配订单

支付宝调用流程

创建支付订单

参考码支付/易支付协议

监控支付状态

系统会自动:

  1. 查询账单: 每30秒查询支付宝账单API
  2. 匹配订单: 根据模式匹配相应订单
  3. 更新状态: 自动更新订单为已支付
  4. 发送通知: 向商户notify_url发送支付成功通知

查询订单状态

# 查询单个订单 GET /api.php?act=order&pid=商户ID&out_trade_no=订单号 # 查询商户信息 GET /api.php?act=query&pid=商户ID&key=商户密钥

支付页面

访问 /submit.php 生成支付页面,包含:

  • 订单信息展示
  • 二维码显示
  • 实时倒计时(5分钟)
  • 支付状态检查

系统监控

健康检查

# 检查系统状态 curl http://domain/health.php

日志查看

# 查看实时日志 tail -f data/app.log

目录结构

alimpay/ ├── api.php # API接口 ├── submit.php # 支付页面 ├── mapi.php # 移动端API ├── health.php # 健康检查 ├── qrcode.php # 二维码访问 ├── config/ # 配置文件 │ └── alipay.php # 支付宝配置 ├── src/Core/ # 核心类库 ├── data/ # 数据存储 └── qrcode/ # 二维码文件

常见问题

Q: 支付检测延迟多久?

A: 通常在支付完成后30秒内检测到并发送通知。

Q: 订单超时时间是多久?

A: 订单创建后5分钟内必须完成支付,超时自动删除。

Q: 如何调试支付问题?

A: 查看 data/app.log 日志文件,使用健康检查接口排查。

Q: 如何部署到生产环境?

A: 将项目部署到Web服务器,配置好支付宝参数即可。

开源协议

MIT License

免责声明

本项目仅供学习交流使用,使用者需确保遵守相关法律法规和支付宝服务协议。

Github地址 GitHub - ours1505/AliMPay
点点Star谢谢喵

网友解答:
--【壹】--:

厉害啊11


--【贰】--:

码是裸码
转账是支付宝的landing跳转alipay://

看你做什么 容易被举报的就去用抗投易支付吧 别用来干坏事

我用支付宝那个不填资料的经营码 挂了小一个月了 5k流水 没事


--【叁】--:

佬友牛的,比我之前发的那个容易多了

国内虚拟物品自动发货流程


--【肆】--:

太强了,佬


--【伍】--:

太强了佬


--【陆】--:

肯定干正经的,就是怕恶意举报也封号,主要是我担心没备案也违规


--【柒】--:

感谢大佬!


--【捌】--:

PHP是最好的语言


--【玖】--:

太强了佬


--【拾】--:

太强了!


--【拾壹】--:

收款码用的二维码是他转换过的还是就是自己的?被举报了会不会封号啊,异地线上收款


--【拾贰】--:

太强了!


--【拾叁】--:

可以。
不需要 你只要有收款码就行
或者使用转账模式


--【拾肆】--:

这个需要营业执照吗,需要商户认证吗,收款码能收花呗的可以吗


--【拾伍】--:

佬太强啦!


--【拾陆】--:

厉害了佬


--【拾柒】--:

感觉很少看到用 PHP 写项目的佬


--【拾捌】--:

佬这个支持易支付接口么?我部署了返回报错,说是签名对不上


--【拾玖】--:

感谢佬,太厉害了

标签:软件开发
问题描述:

开发原因:看到某6%码支付有感,打算手搓一个
原版CLI写的很快(Python写逻辑 让AI改PHP 丢给ai干了我几个小时。。。
什么时候我能学会写前端 只会写后端逻辑写不了啥好玩的

AliMPay - 支付宝码支付系统

一个基于支付宝转账码的自动化支付解决方案,支持经营码收款和转账码收款两种模式。

751192321ae102a907612a9ae6307903.png445×906 42.8 KB

特性

  • 自动监控: 实时监控支付宝账单,自动检测支付状态
  • 码支付: 支持经营码收款和转账码收款
  • 智能超时: 5分钟支付时限,超时订单自动清理
  • 安全可靠: MD5签名验证,防止数据篡改
  • 协议兼容: 100%兼容CodePay协议

快速配置

1. 环境要求

  • PHP 7.4+
  • Composer
  • 支付宝开放平台应用

2. 安装步骤

# 下载项目 # 安装依赖 composer install # 复制配置文件 cp config/alipay.example.php config/alipay.php

3. 支付宝配置

获取支付宝应用参数

  1. 登录 支付宝开放平台
  2. 创建"网页/移动应用"
  3. 获取以下参数:
    • 应用ID: 应用详情页的AppId
    • 应用私钥: 使用密钥工具生成
    • 支付宝公钥: 从平台获取
    • 用户ID: 账户中心的账号ID

可以参考这个文章申请应用,一般都会有一个默认的 生成密钥即可

配置文件设置

编辑 config/alipay.php

<?php return [ 'app_id' => 'YOUR_APP_ID', // 应用ID 'private_key' => 'YOUR_PRIVATE_KEY', // 应用私钥 'alipay_public_key' => 'YOUR_ALIPAY_PUBLIC_KEY', // 支付宝公钥 'transfer_user_id' => 'YOUR_USER_ID', // 支付宝用户ID // 其他配置保持默认即可 ];

获取商户密钥

首次运行需要获取系统分配的商户ID和密钥:

# 启动服务 # 访问健康检查,系统会自动生成商户配置 curl http://domain/health.php # 查看生成的商户信息 cat config/codepay.json

商户配置文件示例

{ "merchant_id": "1001123456789012", "merchant_key": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "created_at": "2024-01-01 12:00:00", "status": 1, "balance": "0.00", "rate": "96" }

重要:请妥善保存 merchant_id (商户ID) 和 merchant_key (商户密钥) ,这是商户接入时必需的参数。

4. 启动服务 下方两个模式二选一

码支付模式

经营码收款(推荐)

目前支付宝放水,进入经营码申请页面填写商户信息时,返回,就会提示是否免填写开启经营码
如果实在没有此处使用收款码替代,或者使用下方转账方式

特点: 无需转账备注,通过金额+时间匹配订单

  1. 上传经营码:将支付宝经营码二维码保存为 qrcode/business_qr.png

  2. 启用配置:编辑 config/alipay.php

'payment' => [ 'business_qr_mode' => [ 'enabled' => true, // 启用经营码模式 ] ]

工作原理

  • 相同金额的订单自动增加0.01元偏移(1.00→1.01→1.02…)
  • 客户扫码支付对应金额
  • 系统通过金额和时间匹配订单

转账收款(无需额外配置)

工作原理

  • 客户转账时填写订单号作为备注
  • 系统监控账单,通过备注匹配订单

支付宝调用流程

创建支付订单

参考码支付/易支付协议

监控支付状态

系统会自动:

  1. 查询账单: 每30秒查询支付宝账单API
  2. 匹配订单: 根据模式匹配相应订单
  3. 更新状态: 自动更新订单为已支付
  4. 发送通知: 向商户notify_url发送支付成功通知

查询订单状态

# 查询单个订单 GET /api.php?act=order&pid=商户ID&out_trade_no=订单号 # 查询商户信息 GET /api.php?act=query&pid=商户ID&key=商户密钥

支付页面

访问 /submit.php 生成支付页面,包含:

  • 订单信息展示
  • 二维码显示
  • 实时倒计时(5分钟)
  • 支付状态检查

系统监控

健康检查

# 检查系统状态 curl http://domain/health.php

日志查看

# 查看实时日志 tail -f data/app.log

目录结构

alimpay/ ├── api.php # API接口 ├── submit.php # 支付页面 ├── mapi.php # 移动端API ├── health.php # 健康检查 ├── qrcode.php # 二维码访问 ├── config/ # 配置文件 │ └── alipay.php # 支付宝配置 ├── src/Core/ # 核心类库 ├── data/ # 数据存储 └── qrcode/ # 二维码文件

常见问题

Q: 支付检测延迟多久?

A: 通常在支付完成后30秒内检测到并发送通知。

Q: 订单超时时间是多久?

A: 订单创建后5分钟内必须完成支付,超时自动删除。

Q: 如何调试支付问题?

A: 查看 data/app.log 日志文件,使用健康检查接口排查。

Q: 如何部署到生产环境?

A: 将项目部署到Web服务器,配置好支付宝参数即可。

开源协议

MIT License

免责声明

本项目仅供学习交流使用,使用者需确保遵守相关法律法规和支付宝服务协议。

Github地址 GitHub - ours1505/AliMPay
点点Star谢谢喵

网友解答:
--【壹】--:

厉害啊11


--【贰】--:

码是裸码
转账是支付宝的landing跳转alipay://

看你做什么 容易被举报的就去用抗投易支付吧 别用来干坏事

我用支付宝那个不填资料的经营码 挂了小一个月了 5k流水 没事


--【叁】--:

佬友牛的,比我之前发的那个容易多了

国内虚拟物品自动发货流程


--【肆】--:

太强了,佬


--【伍】--:

太强了佬


--【陆】--:

肯定干正经的,就是怕恶意举报也封号,主要是我担心没备案也违规


--【柒】--:

感谢大佬!


--【捌】--:

PHP是最好的语言


--【玖】--:

太强了佬


--【拾】--:

太强了!


--【拾壹】--:

收款码用的二维码是他转换过的还是就是自己的?被举报了会不会封号啊,异地线上收款


--【拾贰】--:

太强了!


--【拾叁】--:

可以。
不需要 你只要有收款码就行
或者使用转账模式


--【拾肆】--:

这个需要营业执照吗,需要商户认证吗,收款码能收花呗的可以吗


--【拾伍】--:

佬太强啦!


--【拾陆】--:

厉害了佬


--【拾柒】--:

感觉很少看到用 PHP 写项目的佬


--【拾捌】--:

佬这个支持易支付接口么?我部署了返回报错,说是签名对不上


--【拾玖】--:

感谢佬,太厉害了

标签:软件开发