跳到主要内容

支付宝设定

云支付使用支付宝 当面付(扫码支付,alipay.trade.precreate),二维码由插件显示,玩家用手机支付宝扫码付款。

1. 申请​

  1. 登录 支付宝开放平台,创建一个网页 / 移动应用
  2. 在应用里添加能力「当面付」,完成签约
  3. 提交审核并上线应用(没上线的应用不能收款)

2. 密钥(推荐公钥模式)​

  1. 用「支付宝开放平台密钥工具」生成 RSA2 密钥(选 PKCS8 / Java 格式;PKCS1 也认得)
  2. 开放平台 → 应用 → 开发设置 → 接口加签方式:选「公钥」,上传刚才的应用公钥
  3. 上传后页面会显示「支付宝公钥」(不是你上传的应用公钥)

把文件放进 plugins/CloudPay/keys/:

文件内容
alipay_private_key.txt应用私钥(一整行即可)
alipay_public_key.txt支付宝公钥

也可以不建文件,直接把密钥内容贴在 config.yml。

alipay:
enabled: true
app-id: '2021000123456789'
private-key: 'keys/alipay_private_key.txt'
mode: key
alipay-public-key: 'keys/alipay_public_key.txt'
sandbox: false

公钥证书模式​

接口加签方式选了「公钥证书」时,mode: cert,并放入开放平台下载的三个证书:

alipay:
mode: cert
app-cert: 'keys/appCertPublicKey.crt'
alipay-cert: 'keys/alipayCertPublicKey_RSA2.crt'
root-cert: 'keys/alipayRootCert.crt'

沙箱测试​

开放平台 →「沙箱」有一组测试用的 APPID、密钥与买家账号,付款不扣真钱。填沙箱的 APPID 与密钥,并设 sandbox: true,用手机「支付宝沙箱版」扫码付款。测试完记得改回正式应用与 sandbox: false。

检测​

/cpay reload 后输入 /cpay admin check:

  • ✔ 支付宝已连接:APPID …,应用私钥与支付宝公钥都正确 —— 可以收款
  • 其他情况会写出原因,例如:
提示怎么改
签名错误:应用私钥与开放平台上传的应用公钥不是同一对重新确认私钥文件,或重新上传应用公钥
支付宝回应的签名验证失败alipay-public-key 填成了应用公钥,要填页面上的「支付宝公钥」
应用没有当面付权限为这个应用添加当面付并签约,应用要先上线
应用还没上线在开放平台提交审核并上线
服务器时间不准校正系统时间