Simply Pay - 接入指引
    Simply Pay - 接入指引
    • 接入指引
    • 附件码表
    • 签名示例
    • 签名常见问题解决方案
    • 代收
      • 代收订单创建
        POST
      • 代收订单查询
        GET
      • 代收补单接口
        POST
    • 代付
      • 代付订单创建
        POST
      • 代付订单查询
        GET
    • 账户
      • 余额查询
        GET
    • 回调通知
      • 代收回调通知
      • 代付回调通知

    接入指引

    english document
    中文文档

    请求 HOST#

    https://api.simplypay.vip

    我方出口 IP#

    15.207.74.156

    请求结构#

    通过向 SimplyPay API 的服务端地址发送 HTTP POST 请求,并按照请求结构 在 HTTP body 中加入相应请求参数来完成,SimplyPay 系统根据请求参数 来响应返回参数。

    通信协议#

    为了更高的安全性,SimplyPay API 接口仅支持通过 HTTPS 通道进行请求通信。在调用 SimplyPay 系统 API 时,需要遵循以下安全要求:
    所有的请求必须使用 SSL,否则请求将被拒绝
    仅支持 TLS 1.2 or TLS 1.1,SSLv3 and TLS 1.0 不被支持
    商户系统与 SimplyPay 系统通信,使用签名验证来确保通信信息完整及通信安全,见 (签名机制)。

    字符编码#

    请求及返回结果都使用 UTF-8 字符集进行编码。

    参数格式#

    请求参数及返回参数均使用 JSON 格式。
    Content-Type: application/json;charset=utf-8

    返回参数#

    字段名称说明
    code状态码http 状态码,此字段值只表明接口请求情况,不能说明业务参数无异常
    msg状态描述接口调用结果描述
    error错误信息异常信息
    data业务返回值描述业务调用情况的返回值,具体请参照业务接口中每个接口的 data 值

    通知机制#

    通知分为两种通知方式,因同步回调可能出现用户模拟操作,或在同步通知未进行跳转时,用户手动关闭浏览器等不可控情况,导致商户造成损失,我们强烈建议商户以异步通知结果来确认订单的支付结果。
    同步回调#
    在用户支付成功,或者取消支付时,SimplyPay 会将消费者的浏览器重定向到商户提供的 returnurl 上,并携带相关参数。
    同步回调采用 get 方式跳转,相应的拼接参数,会对每个参数的值进行编码为 UTF-8 的 URLencode 处理,随后进行跳转。
    异步回调#
    SimplyPay 会将消费者支付结果的消息通过服务器端发送到商户提供的 notifyurl 上,并携带相关参数,以 post 形式提交。商户需要对结果信息进行签名验证,以防止伪造的通知信息;且必须对返回结果中的订单状态做判断,以确定订单状态。
    商户服务器接到请求后必须 http 响应 200,并且打印输出 success 或者 ok。如果商户反馈给 SimplyPay 的字符不是 success 这 7 个字符或者 ok 这 2 个字符,SimplyPay 服务器会不断重发通知,直到超过 24 小时 47 分钟。一般情 况下,25 小时以内完成 9 次重发通知(通知的间隔频率一般是:30s,2m,4m,10m,30m,1h,2h,6h,15h)。
    某些情况下,商户的一笔订单可能会收到 SimplyPay 的多次通知,商户需对自己的逻辑进行检查,对于可能收到重复的成功或失败状态的订单通知能够进行唯一的业务处理。

    签名机制#

    商户在调用 SimplyPay API 接口时,需将请求参数中的业务参数,按照 SimplyPay 约定好的形式,获取到对应的签名字符串,并作为请求参数 sign 传递给 SimplyPay。
    SimplyPay 进行返回参数组装时,也会按照此规则进行签名,并传递签名值。因不同的业务接口可能需要参与签名的字段不同,具体请参照业务接口中,各个接口的具体说明。
    获取签名字符串:
    请求参数 json 中的业务信息,按照 key 的 Unicode 进行排序。然后将参数以 key1=value1&key2=value2&key3=value3 的形式拼接,最后将商户密钥或应用密钥 (不同的接口,签名时使用的密钥可能不相同,具体接口有说明) 拼接至字符串最后,键名为‘key‘,键值为密钥值。我们暂且称拼接好的字符串为 originStr
    将 originStr 转化为 UTF-8 的 byte 数组后,使用 sha256 算法进行编码,再将编码后的数组转码为 16 进制的字符串。
    在拼接字符串时,会过滤掉 key 或 value 为空的字符串的参数,此类参数不参与签名前的字符串拼接。
    在请求参数与返回参数的签名中,出现 extra 字段时,签名时需要将 extra 的值转换为 Map 集合,按照 key 的 Unicode 进行排序。然后将 Map 中参数以key1=value1&key2=value2&key3=value3 的形式拼接为新的字符串作为 extra 的值。
    若其它参数值为对象,会将其转换为 JSON 字符串后再参与加密。
    注意:业务字段并非固定不变,所有业务字段均参与签名,建议动态处理,以应对可能的字段增减。
    修改于 2025-04-25 10:31:50
    下一页
    附件码表
    Built with