Cloudreve: pro版自定义支付渠道-爱发电

272

Cloudreve: pro版自定义支付渠道-爱发电

大家好,我是筱筱.在网盘程序cloudreve的pro版本中是支持积分购买和使用的,可以官方文档查看如何配置使用自定义支付

同时也支持启动一个http服务来实现第三方支付,今天就来分享下怎么使用爱发电的方式来实现

前言

第三方支付-爱发电服务来自于社区用户@essesoul,感谢大佬的代码!!!(话说大佬的注册时间和发帖时间是一样的).

关于我们 | 爱发电 (afdian.net)

image-20240206093855037

使用爱发电的优点:

  • 个人使用方便
  • 无需收款码/审核等步骤
  • 支持支付宝/微信/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镜像

下载源代码上传到服务器中

image-20240206101149188

新建个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)

image-20240206101819015

运行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

启动后查看日志

image-20240206103038228

回到开发者页面,故意输入一个错误的域名afb2.abc.com会提示错误

image-20240206103352994

输入正确的域名https://afd.abc.com/afdian,正确的话没有提示,但是网络请求里面是有成功的.注意域名后面要加**/afdian**路径

image-20240206104303415

点击保存,别忘了

然后在Cloudreve管理后台-参数设置-增值服务-自定义付款渠道中填写付款方式名称、支付接口地址、通信密钥

接口地址为: http://afd.abc.com/order/create ,通信秘钥随意,点击保存

测试

回到网盘页面-容量配额-积分充值,输入500积分后测试是否会弹出二维码,扫码后支付成功后会提示支付成功

image-20240206140140996

问题

  • 报错:验证失败,请检查.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 clientfailed to request payment gateway: 服务器返回非正常HTTP状态404

检查你的cloudreve的支付接口ip:端口是否正确,ip设置成docker分配172.18.x.x的或者是192.168.x.x类似的,不要用127.0.0.1

  • 付款成功后没有回调

付款页面的金额是能够手动输入的,少付/多付后cloudreve都不会显示成功,页面显示多少就付多少就行了

image-20240206135937181

体验

评论留言,我给你私发下地址吧