说明

目前 GeekAI 已经集成了下面几种支付渠道:

  1. 支付宝 (opens new window):支付宝官方支付渠道,交易费率低,需要企业资质才能申请。
  2. 虎皮椒 (opens new window):聚合支付通道,支持微信和支付宝两种支付方式,申请比较简单,支持个人申请,开通费用118,交易费用 1-2%+0.6%
  3. PayJs (opens new window):聚合支付通道,只支持微信支付,方便快捷,SDK 齐全。支持个人申请,没有开通费用,交易费用 %1+0.6%。

# 支付宝配置

首先使用支付宝扫码登录支付宝开放平台 (opens new window),点击【网页/移动应用开发】按钮。

图片加载中...

# 生产环境

进入应用创建页面,点击前往创建 (opens new window)。 填入应用相关的信息,提交审核。

图片加载中...

审核通过之后,你就可以开始进行开发设置了。主要就设置【接口加签方式】,至于【接口内容加密方式】,【服务器IP白名单】,【授权回调地址】这些,你可以根据你自的需求按需设置。 生产环境建议设置,这样更安全一些。

图片加载中...

选择证书签名方式,也是本项目使用的方式。

图片加载中...

接下来你需要下载支付宝的 密钥工具 (opens new window) 并安装。

图片加载中...

按照说明创建秘钥:

图片加载中...

选择 .csr 后缀的秘钥文件:

图片加载中...

然后把你生成的证书上传到支付宝开放平台:

图片加载中...

上传成功之后,支付宝会生成对应的应用公钥证书,支付宝公钥证书,以及支付宝根证书,你分别把这些证书下载下来。

图片加载中...

绑定产品,本项目只用到了 【手机网站支付】 和 【电脑网站支付】 这两个产品,所以你只需绑定这两个即可。

图片加载中...

然后把 App 相关信息和证书都配置到 config.toml 文件。相关证书拷贝到 cert/alipay 目录下。

[AlipayConfig]
  Enabled = true # 启用支付宝支付通道
  SandBox = false # 是否启用沙盒模式,生产环境设置为 false
  UserId = "2088721020750581" # 商户ID
  AppId = "9021000131658023" # App Id
  PrivateKey = "certs/alipay/privateKey.txt" # 应用私钥
  PublicKey = "certs/alipay/appPublicCert.crt" # 应用公钥证书
  AlipayPublicKey = "certs/alipay/alipayPublicCert.crt" # 支付宝公钥证书
  RootCert = "certs/alipay/alipayRootCert.crt" # 支付宝根证书

注意:

最后一步,你需要把你的证书文件拷贝到 certs/alipay 目录下,命名需要保持跟上面配置文档一致。 通过修改 docker-compose.yaml 文件:

图片加载中...

# 沙盒环境

如果你想本地调试项目,那么你可能需要一个沙盒支付环境来测试订单支付逻辑。创建沙箱环境非常简单,进入 支付宝开放平台控制台 (opens new window),进入 【开发工具推荐】 栏,选择沙箱。

图片加载中...

点击之后会直接进入沙箱环境面板,稍加设置下,不需要审核就可以直接使用了。

图片加载中...

下载好证书,复制私钥到 privateKey.txt,复制商户ID,APPID 填入配置文档,大功告成。

图片加载中...

配置好之后重启应用生效:

docker-compose down
docker-compose up -d

# 微信支付配置

# 申请账号

首先,你需要到 微信支付开放平台 (opens new window) 申请一个商户支付账号。

第二步,进入 API安全 (opens new window) 一次申请 “API证书”,“APIv3密钥”以及“平台证书 ”。

图片加载中...

第三步,进入 产品中心 (opens new window) 申请对应的支付产品。

="'https://blog.img.r9it.com/2ae56c0feda3d941187f9dbb5a89ac0c.png'" />

第四步,进入 商户信息 (opens new window) 页面,获取微信支付商户号

# 配置支付

将上面获取到的相关信息填入配置文档 conf/config.toml

[WechatPayConfig]
  Enabled = true
  AppId = "" # AppId
  MchId = "" # 商户ID
  SerialNo = "" # API 证书序列号
  PrivateKey = "res/certs/wechat/apiclient_key.pem" # 将私钥拷贝到对应的目录
  ApiV3Key = "" # APIv3密钥

配置完成之后重启容器生效。

docker-compose down
docker-compose up -d

# 虎皮椒支付服务

虎皮椒支付是 GeekAI 对接的聚合支付工具,主要为那些没有企业营业执照,无法直接签约微信,支付宝这种第三方支付渠道的个人用户提供一个收款方式。

虎皮椒支付的开通方法请参考虎皮椒官方的 微信支付签约教程 (opens new window)

建议申请微信支付!!!

图片加载中...

然后编辑配置文档 conf/config.toml,加入虎皮椒支付的配置信息:

[HuPiPayConfig]
  Enabled = true
  Name = "wechat" # 请不要改动此配置项
  AppId = ""
  AppSecret = ""
  ApiURL = "https://api.xunhupay.com"

配置好之后重启应用生效:

docker-compose down
docker-compose up -d

# 易支付开通

易支付 (opens new window)一款非常优秀的聚合支付工具,GeekPay 是基于易支付开发的一款多功能聚合支付系统,支持个人开户,对个人开发者非常友好,支持每日提现。目前正在促销活动,免开户费🎉🎉🎉。

对接非常简单,首先你到 GeekPay 官方页面 注册一个商户账号,然后登录到商家支付管理后台,点击 “个人资料” -> “API信息” 页面。

图片加载中...

第二步,把支付API相关信息直接填入 GeekAI 的配置文档 conf/config.toml

[GeekPayConfig]
  Enabled = true
  AppId = "" # 商户ID
  PrivateKey = "" # 商户私钥
  ApiURL = "https://pay.geekai.cn" # 支付API地址
  Methods = ["alipay", "wxpay", "qqpay", "jdpay", "douyin", "paypal"] # 支持的支付方式

配置好之后重启应用生效:

docker-compose down
docker-compose up -d

# 常见错误处理

一、开启了支付之后,geekai-api 容器启动失败,访问页面API报错 502

这种报错通常是由于你的支付证书加载失败。接下来你需要确认两件事情。

第一,确保你在 conf/config.toml 配置的支付路径是正确的。

假如你的秘钥和证书文件放在 certs 目录(certs和docker-compose.yaml在同一个目录),certs 的目录结构如下:

certs/
└── alipay
    ├── alipayPublicCert.crt
    ├── alipayRootCert.crt
    ├── appPublicCert.crt
    └── privateKey.txt

那么你的支付配置应该是类似下面这样的:

[AlipayConfig]
  Enabled = true
  SandBox = false
  AppId = ""
  UserId = ""
  PrivateKey = "certs/alipay/privateKey.txt"
  PublicKey = "certs/alipay/appPublicCert.crt"
  AlipayPublicKey = "certs/alipay/alipayPublicCert.crt"
  RootCert = "certs/alipay/alipayRootCert.crt"
  NotifyURL = "https://r9it.com/api/payment/alipay/notify"
  ReturnURL = ""

第二,把 certs 目录挂载到你的 geekai-api docker 容器中,修改 docker-compose.yaml













 




# 后端 API 程序
  geekai-api:
    image: registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-plus-api:v4.0.9.2-amd64
    container_name: geekai-api
    restart: always
    ports:
      - "5678:5678"
      - "6012:6012"
    volumes:
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
      - ./conf/config.toml:/var/www/app/config.toml
      - ./static:/var/www/app/static
      - ./certs:/var/www/app/certs # 挂载 certs 目录
      - ./data:/var/www/app/data
    environment:
      - CONFIG_FILE=config.toml

二、为什么我配置好了支付渠道,但是在前端的“会员计划”页面的充值产品下面没有支付按钮呢?

图片加载中...

没有支付按钮通常意味着你没有启用任何支付渠道。此时你需要检查一下 config.toml 配置文档中的支付配置段,每个支付渠道都有一个 Enabled 字段,确保这个字段的值是 true

 





Enabled = true
AppId = ""
UserId = ""
PrivateKey = "certs/alipay/privateKey.txt"
PublicKey = "certs/alipay/appPublicCert.crt"
上次更新: 2025/1/15 16:31:06