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

    签名常见问题解决方案

    如若需要 java php nodejs 的签名 demo, 请联系客服

    一、amount 金额值问题。#

    因目前系统用的是解释型语言,.0 .00 类无效小数位在接收转换时会被自动抹除掉,请去掉.0 .00 部分无效小数位,或将金额值改为字符串格式,如:"100.00"。

    二、加密方式问题。#

    系统签名加密方式为 sha256,非 md5。

    三、extra 字段值处理问题。#

    常见于代付部分。为保障签名字符串一致,出现 extra 字段时,签名时需要将 extra 的值转换为 Map 集合,按照 key 的 Unicode 进行排序。然后将 Map 中参数以 key1=value1&key2=value2&key3=value3 的形式拼接为新的字符串作为 extra 的值。
    示例如下:
    请求数据:
    {
        "amount":100,
        "appId":"appidxxx",
        "currency":"INR",
        "extra":{
            "accountName":"TEST",
            "accountNo":"123@gmail.com",
            "bankCode":"EMAIL"
        },
        "merOrderNo":"orderxxx",
        "notifyUrl":"http://example.com/notify"
    }
    
    extra 字段值处理后为:
    "accountName=TEST&accountNo=123@gmail.com&bankCode=EMAIL"
    
    最终待签名字符串:
    "amount=100&appId=appidxxx&currency=INR&extra=accountName=TEST&accountNo=123@gmail.com&bankCode=EMAIL&merOrderNo=orderxxx&notifyUrl=http://example.com/notify&key=xxxx"

    四、appId 和签名密钥不匹配问题。#

    若系统中存在两对儿 appId+ 密钥,请注意其中一对儿用于代收,另一对儿用于代付,不要混淆。
    若系统中仅存在一对儿 appId+ 密钥,则忽略此部分。
    (具体 appId+ 密钥,在商户管理后台“开发者”页面中查看,若超时不予展示,请直接重置:重置时需填充管理后台登录密码)

    五、其它字段值为 obj 对象时示正确参于签名问题。#

    若其它参数值为对象,会将其转换为 JSON 字符串后再参与加密
    此部分多见于代收下单时响应数据的处理,其中"params"字段值为 obj。
    示例如下:
    响应数据:
    {
        "amount":100,
        "params":{
            "qrcode":"00020126940014BR.GOV.BCB.PIX2572api-pix.bancobs2.com.br/spi/v2/cobv/255f36f7-6d7d-48fc-9f56-47181be823aa520400005303986540530.005802BR5924Voluti Gestao Financeira6011Pato Branco61088550338162070503***63045F27",
            "url":"https://h5.simplypay.vip/payment/94230311013500999186060015?amount=100&currency=INR&qrcode=00020126940014BR.GOV.BCB.PIX2572api-pix.bancobs2.com.br%2Fspi%2Fv2%2Fcobv%2F255f36f7-6d7d-48fc-9f56-47181be823aa520400005303986540530.005802BR5924Voluti%20Gestao%20Financeira6011Pato%20Branco61088550338162070503***63045F27"
        },
        "orderStatus":1,
        "orderNo":"94230311013500999186060015",
        "currency":"INR",
        "createTime":1678498652499,
        "merOrderNo":"orderxxx",
        "updateTime":1678498652719
    }
    
    params 字段值转换后:
    '{"qrcode":"00020126940014BR.GOV.BCB.PIX2572api-pix.bancobs2.com.br/spi/v2/cobv/255f36f7-6d7d-48fc-9f56-47181be823aa520400005303986540530.005802BR5924Voluti Gestao Financeira6011Pato Branco61088550338162070503***63045F27","url":"https://h5.simplypay.vip/payment/94230311013500999186060015?amount=100&currency=INR&qrcode=00020126940014BR.GOV.BCB.PIX2572api-pix.bancobs2.com.br%2Fspi%2Fv2%2Fcobv%2F255f36f7-6d7d-48fc-9f56-47181be823aa520400005303986540530.005802BR5924Voluti%20Gestao%20Financeira6011Pato%20Branco61088550338162070503***63045F27"}'
    
    最终待签名字符串:
    "amount=100&createTime=1678498652499&currency=INR&merOrderNo=orderxxx&orderNo=94230311013500999186060015&orderStatus=1&params={"qrcode":"00020126940014BR.GOV.BCB.PIX2572api-pix.bancobs2.com.br/spi/v2/cobv/255f36f7-6d7d-48fc-9f56-47181be823aa520400005303986540530.005802BR5924Voluti Gestao Financeira6011Pato Branco61088550338162070503***63045F27","url":"https://h5.simplypay.vip/payment/94230311013500999186060015?amount=100&currency=INR&qrcode=00020126940014BR.GOV.BCB.PIX2572api-pix.bancobs2.com.br%2Fspi%2Fv2%2Fcobv%2F255f36f7-6d7d-48fc-9f56-47181be823aa520400005303986540530.005802BR5924Voluti%20Gestao%20Financeira6011Pato%20Branco61088550338162070503***63045F27"}&updateTime=1678498652719&key=xxxx"
    注意部分:为避免一些编程语言在 map 对象转 json 字符串儿时,默认做了排序而不好调整的问题,本系统在处理这类数据时,均已将 map 值按照 key 的 Unicode 进行升序排序。

    六、部分字段未参与签名问题。#

    常见于响应返回时的验签不匹配。本系统中需要签名的处理环节,所有业务字段均须参与签名。为应对业务性的字段增减,建议对数据进行签名时对参与字段做弹性适配(字符串的固定拼接模式将会无法适应字段的增减)。
    修改于 2024-08-09 07:00:43
    上一页
    签名示例
    下一页
    代收订单创建
    Built with