Cloudreve: pro版自定义支付渠道-爱发电
Cloudreve: pro版自定义支付渠道-爱发电
大家好,我是筱筱.在网盘程序cloudreve的pro版本中是支持积分购买和使用的,可以官方文档查看如何配置使用自定义支付
同时也支持启动一个http服务来实现第三方支付,今天就来分享下怎么使用爱发电的方式来实现
前言
第三方支付-爱发电服务来自于社区用户@essesoul,感谢大佬的代码!!!(话说大佬的注册时间和发帖时间是一样的).
使用爱发电的优点:
- 个人使用方便
- 无需收款码/审核等步骤
- 支持支付宝/微信/paypal
缺点:
-
一个域名
-
次月到账
-
6%的手续费
-
付款方需注册爱发电账号
-
扫码付款时要求为登录状态
- 支付成功一次后会记住登录信息
- 不用每次都登录
开始
注册爱发电
使用爱发电支付必须成为创作者,自行注册后按页面提示申请成为创作者
在开发者页面获取user_id
在开发者页面获取API Token
域名绑定
在服务器或nas上添加个域名,反代到5000端口,5000是后面启动docker时绑定的端口,可变
如果使用的frp,记得在frpc.ini里面添加配置并重启frp
[afd]
type = http
local_ip = 服务的ip
local_port = 端口
subdomain = afd
这里我用afd.abc.com代替爱发电服务启动后的域名
运行
原作者只是提供了python项目,并没有提供docker镜像,可是每个电脑的环境不一样,py版本也不一样,所以需要手动构建成docker镜像(后面也有成品镜像,接着往下看)
构建docker镜像
下载源代码上传到服务器中
新建个Dockerfile文件
# 使用 Python 3.11 的官方镜像作为基础镜像
FROM python:3.11.7-alpine
# 设置工作目录为 /src
WORKDIR /src
# 拷贝当前目录的 src 目录到容器的 /src 目录
COPY src /src
# 安装 requirements.txt 中的依赖
RUN pip install --no-cache-dir -r requirements.txt
# 启动程序
cmd ["python", "cloudreve_pay.py"]
构建镜像docker build -t cloudreve-pay-afd .
[root@1 afd] docker build -t cloudreve-pay-afd .
Sending build context to Docker daemon 12.8kB
Step 1/5 : FROM python:3.11.7-alpine
---> f5c01bd13f32
Step 2/5 : WORKDIR /src
---> Using cache
---> d8fcae0ac257
Step 3/5 : COPY src /src
---> c89415ca23e8
Step 4/5 : RUN pip install --no-cache-dir -r requirements.txt
---> Running in 15fb23395851
Collecting beautifulsoup4==4.12.1 (from -r requirements.txt (line 1))
...省略
Successfully built zope.interface
Installing collected packages: zope.interface, zope.event, urllib3, soupsieve, python-dotenv, pycparser, MarkupSafe, lxml, itsdangerous, idna, greenlet, colorama, click, charset-normalizer, certifi, blinker, Werkzeug, requests, Jinja2, gevent, cffi, beautifulsoup4, Flask
...有个报警
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
...
Step 5/5 : cmd ["python", "cloudreve_pay.py"]
---> Running in e9801c085637
Removing intermediate container e9801c085637
---> f4712f8d52bd
Successfully built f4712f8d52bd
Successfully tagged cloudreve-pay-afd:latest
推送镜像(已向仓库提交docker的pr)
运行docker镜像
以我的unraid为例:
先拉取:docker pull xxdl/cloudreve-pay-afd
测试过阿里云的docker加速地址是能拉取成功的
创建个docker-compose.yml
version: '3'
services:
cloudreve-pay-afd:
image: xxdl/cloudreve-pay-afd:latest
container_name: cloudreve-pay-afd
network_mode: cloudreve的网络模式
command: ["python","-u", "cloudreve_pay.py"]
ports:
- "端口:端口"
environment:
- SITE_URL=http://pro.abc.com网盘的域名,最后没有/
- USER_ID=爱发电的userid
- TOKEN=爱发电的token
- PORT=绑定端口,这里用5000
启动后查看日志
回到开发者页面,故意输入一个错误的域名afb2.abc.com会提示错误
输入正确的域名https://afd.abc.com/afdian,正确的话没有提示,但是网络请求里面是有成功的.注意域名后面要加**/afdian**路径
点击保存,别忘了
然后在Cloudreve管理后台-参数设置-增值服务-自定义付款渠道中填写付款方式名称、支付接口地址、通信密钥
接口地址为: http://afd.abc.com/order/create
,通信秘钥随意,点击保存
测试
回到网盘页面-容量配额-积分充值,输入500积分后测试是否会弹出二维码,扫码后支付成功后会提示支付成功
问题
- 报错:验证失败,请检查.env文件
检查网盘的域名是http还是https,启动爱发电服务的时候SITE_URL要和网盘的访问路径一致,最好也把cloudreve的支付接口地址统一下
- 报错:failed to request payment gateway: Post "https://192.168.x.x:端口/order/create": http: server gave HTTP response to HTTPS client和failed to request payment gateway: 服务器返回非正常HTTP状态404
检查你的cloudreve的支付接口ip:端口是否正确,ip设置成docker分配172.18.x.x的或者是192.168.x.x类似的,不要用127.0.0.1
- 付款成功后没有回调
付款页面的金额是能够手动输入的,少付/多付后cloudreve都不会显示成功,页面显示多少就付多少就行了
体验
评论留言,我给你私发下地址吧