Skip to content

Payloco 接入与签名

一、接口概述

此文档用于介绍 Payloco 开发者在配置设置方面的相关内容,涵盖了不同环境的配置信息、签名与验签的配置、回调地址设置等,帮助开发者完成必要的配置以使用 Payloco 的支付服务。
整体图示如下: alt text

二、接口信息

不同环境配置

环境类型网关地址备注
生产环境https://api.payloco.com正式业务使用
UAT 环境https://uat-api.payloco.com测试使用

接口大类

类别URI备注
认证/authorize使用接入码(X-AccessCode)和接入密钥(X-SecretKey),获取 JWT Token
业务接口/api/xxx根据业务需要所需对接不同接口
文件接口/file/xxx文件上传或下载接口,业务接口中使用到的附件类字段,需要先通过文件上传接口获得文件 id,再参与业务接口

三、请求签名

签名说明

加签是开放平台和商户对于交互消息完整性的校验。加签行为主要发生两个部分:

  • a. 商户对请求 Payloco 发送的请求报文进行加签
  • b. Payloco 对通知商户的异步消息进行加签

统一约定:

  • 生成的 RSA 密钥对信息:keySize=2048,公钥为 X509 规范,私钥为 PKCS#8 规范
  • 公钥交换:双方均将公钥转为 PEM 编码格式(Base64.getMimeEncoder),便于文本传输和存储,示例:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnafIZaXpIx6azTZkMS7B
20St6qEHdhv3vW/YLl58KRG1Mgsy5ZiPA6w31el5VSYKF4GQju0qHlYc6cmbpN0Q
z1Z0/xNAugKISIVwnVZw4P1DsYcUIvJaUCt8C+MYXxLUf2FEeCQP3oJCTEaQvIBz
mjFVVCSsAyQ7m3W/EXuwBWoqQJarzKYTLOjPNvRjtRznd1X470/ZEnTIDx/7nZvQ
luHy7hpL3r/YsFEAN0ZVigGcuso1zbqLjwTSi5Uo685F9oHiAs5Y+XE0lihWmb0D
nxVXXRznj191b5H21WVPcnrtKjmO+OSLL0JKlrqx0ndqe1pZBcliO28b0wIg1ftZ
pwIDAQAB
-----END PUBLIC KEY-----
  • 使用 RSA 私钥进行加签, 使用 RSA 公钥进行验签,签名算法为 SHA256withRSA
  • 注:仅共享公钥即可,私钥请自行妥善保管!
  • 附:在线生成密钥对参考 -> 前往(请选择 RSA-2048-无密)
  • 附:签名/验签源码 Demo -> 下载(Java 版)

签名规则

  • 商户签名,我方验签

    • 商户请求 Payloco 时,商户使用自身私钥 request.body 进行签名,代码示例:
    Signature signature = Signature.getInstance("SHA256withRSA");
    signature.initSign(privateKey);
    // 计算 SHA256withRSA 签名时,需要以 utf-8 的编码转换 byte 流,否则可能导致含中文参数的签名计算不正确
    signature.update(request.body);
    byte[] signedHash = signature.sign();
    • 对签名内容进行 Base64 编码,提高可读性
    String signature = Base64.getEncoder().encodeToString(signedHash);
    • 可以使用了。商户请求 Payloco 时,将 signature 签名添加到请求头(X-Signature)。
    • 注:仅对 POST 接口加签;对 request.body 进行签名,当某些 request.body 为空时,则无需加签。
  • 我方加签,商户验签

    • Payloco 异步请求通知商户时(即 Webhook),使用 Payloco 私钥加签,加签逻辑如上
    • 统一使用 POST 请求,Content-Type=application/json
    • 约定:商户的回调地址,收到我方异步通知请求时请返回 OK,表示商户成功收到我方该类别通知

四、响应设计

响应状态码

状态码说明
200请求已受理
400请求参数错误
401未授权,签名验证失败
403禁止访问
404未找到相关资源

响应数据格式

响应数据以 JSON 格式返回,包含 code(响应码)、msg(响应描述)和 data(业务数据)。

json
{
  "code": "00000000",
  "msg": "OK",
  "data": {
    "orderId": "20241216000001",
    "paymentStatus": "CREATED",
    "amount": 10000
  }
}

五、通用信息

多语言

Payloco 提供多语言支持,默认语言为英文。