汇联开放平台
汇联官网开发工具
汇联官网开发工具
  1. 2.接口规范
  • 技术支持必看规则
  • 1.总体介绍
    • 1.1 阅读人员
    • 1.2 名词解释
  • 2.接口规范
    • 2.1 接口格式定义
    • 2.2 加签验签说明
    • 2.3 参数说明
    • 2.4 开发demo
  • 3.商户进件类接口
    • 3.1 商户进件信息类
      • 3.1.1 商户信息录入
      • 3.1.2 申请单状态查询
      • 3.1.3 商户审核异步通知
    • 3.2 终端管理
      • 3.2.1 富友新增终端
    • 3.3 微信支付宝配置类
      • 3.3.1 微信支付宝子号报备(废弃)
      • 3.3.1 微信支付宝子号报备
      • 3.3.2 微信支付宝认证状态查询/微信配置查询
      • 3.3.3 微信APPID与授权目录配置
    • 3.4 通道管理类
      • 3.4.1 通道列表
    • 3.5 分账接收方管理类
      • 3.5.1 分账接收方录入
      • 3.5.2 分账关系绑定
      • 3.5.3 分账关系解绑
      • 3.5.4 分账关系查询
      • 3.5.5 分账结算信息变更
  • 4.统一交易类接口
    • 4.1 支付
      • 4.1.1 统一下单接口
      • 4.1.2 交易查询
      • 4.1.3 交易关闭
      • 4.1.4 交易结果通知
    • 4.2 退款
      • 4.2.1 实时退款
      • 4.2.2 退款查询
      • 4.2.3 退款通知
  • 5.线上支付类接口
    • 5.1 快捷支付
      • 5.1.1 快捷支付页面类
        • 5.1.1.1 页面版快捷下单接口
      • 5.1.2 快捷支付全接口类
        • 5.1.2.1 快捷绑卡请求
        • 5.1.2.2 快捷绑卡确认
        • 5.1.2.3 快捷绑卡查询
        • 5.1.2.4 快捷绑卡列表
        • 5.1.2.5 快捷支付下单
        • 5.1.2.6 快捷支付确认
        • 5.1.2.7 解绑银行卡
        • 5.1.2.8 快捷一键绑卡
    • 5.2 网银支付类
      • 5.2.1 网关支付下单
    • 5.3 银行转账类
      • 5.3.1 银行转账下单接口
    • 5.4 银联收银台类
    • 5.5 银联WAP支付类
  • 6.付款类接口
    • 6.1 提交付款
      POST
    • 6.2 付款查询
      POST
    • 6.3 付款通知
      POST
    • 6.4 付款余额查询
      POST
    • 6.5 安全发余额充值
      POST
  • 7.分账类接口
    • 7.1 请求分账
    • 7.2 分账查询
    • 7.3 分账退款
    • 7.4 分账退款查询
    • 7.5 分账完结
    • 7.6 分账异步通知
  • 8.账户类接口
    • 8.1 提现
    • 8.2 账户余额查询
    • 8.3 提现查询
    • 8.4 提现后台通知
    • 8.5 对内转账
    • 8.6 转账查询
  • 9.电子户类接口
    • 9.1 电子户报备
    • 9.2 报备状态查询
    • 9.3 余额查询
    • 9.4 提交转账
    • 9.5 转账确认(部分渠道需要)
    • 9.6 转账查询
    • 9.7 提交提现
    • 9.8 提现查询
    • 9.9 电子户代付
    • 9.10 电子户入金通知
  • 10.钱包类接口
    • 10.1 个人钱包服务
      • 10.1.1 钱包注册
      • 10.1.2 钱包绑卡
      • 10.1.3 钱包解绑银行卡
      • 10.1.4 钱包信息查询
      • 10.1.5 钱包充值
    • 10.3 钱包提现
    • 10.4 提现查询
    • 10.4 对内转账
    • 10.5 转账查询
  • 11.灵工类接口
  • 12.营销类接口
    • 12.1 申请营销补贴
    • 12.2 查询营销补贴
  • F.附录
    • F.3 错误码
    • F.2 JSAPI预下单后 微信/支付宝调起支付步骤
    • F.1 商户进件枚举附件
    • F.4 商户进件流程
    • F.5 商户进件补充材料
    • F.6 间联原生APP支付申请要求
    • F.7 APP与H5微信支付支付渠道传参
  • FAQ
    • A.1 交易常见问题
    • A.2 进件常见问题
    • A.3 微信与支付宝渠道号申请
    • A.4 中国银联行业码业务申请表
    • A.5 排除不可用的支付通道方法
    • A.6 排除不可用的支付方式方法
    • 老系统厦门国际银行虚拟户使用文档
  • 产品文档
    • 商户进件
      • 商户进件
    • 实名认证
      • 微信实名认证
        • 微信实名认证操作指引-扫码认证
        • 微信实名认证操作指引-控台发起
      • 支付宝实名认证
        • 支付宝实名认证操作指引-扫码认证
        • 支付宝实名认证操作指引-控台发起
    • 银行电子户
      • 控台操作指引
        • 各渠道操作流程(必看)
        • 电子户报备
        • 绑定结算账户
        • 余额查询
        • 余额转账
        • 余额提现
        • 资金调拨
        • 分账关系
    • 支付宝安全发
      • 产品介绍
      • 余额充值
    • 商户应用
      • 轮训配置
    • 应用通道
      • 通道配置
  • 风控申诉指引
    • 微信风控申诉
    • 支付宝风险申诉
    • 支付宝准入申诉
  1. 2.接口规范

2.2 加签验签说明

2.2.1.双向认证#

商户、合作方与灵付智控交易报文双向认证。
1.
商户、合作方保存自己的私钥和灵付智控公钥。
2.
灵付智控保存自己的私钥和商户、合作方的公钥。
3.
商户、合作方向灵付智控发起交易请求时,商户、合作方使用自己的私钥签名。
4.
灵付智控接收商户、合作交易请求时,灵付智控使用商户、合作方公钥进行验签。
5.
灵付智控返回商户、合作方应答时,灵付智控使用自己的私钥签名。
6.
商户、合作方接收灵付智控交易应答时,商户、合作方使用灵付智控的公钥验签

2.2.2 签名#

获取所有post请求内容,不包括字节类型参数,如文件、字节流,剔除值为空的参数(包含null与空字符串),按照第一个字符的键值 ASCII 码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值 ASCII 码递增排序,以此类推。
将排序后的参数与其对应值,组合成 参数=参数值 的格式,并且把这些参数用 & 字符连接起来,此时生成的字符串为待签名字符串。
请求内容
{
    "appId": "APP_8428691003",
    "timestamp": 1736161389,
    "requestId": "20250106190309282906",
    "signType": "RSA2",
    "bizContent": "{"payType":"ALIPAY","paySubType":"NATIVE","mchOrderNo":"20250106190309762141","amount":"0.1","subject":"\u6d4b\u8bd5","description":"\u6d4b\u8bd5","notifyUrl":"https:\/\/api.huilianlink.com\/openapi","clientIp":"192.168.1.1"}"
}
生成待签名串
appId=APP_8428691003&bizContent={"payType":"ALIPAY","paySubType":"NATIVE","mchOrderNo":"20250106190309762141","amount":"0.1","subject":"\u6d4b\u8bd5","description":"\u6d4b\u8bd5","notifyUrl":"https:\/\/api.huilianlink.com\/openapi","clientIp":"192.168.1.1"}&requestId=20250106190309282906&signType=RSA2&timestamp=1736161389
签名结果
slkk/cNEv9kMey0Ae8tqVeoMl1g0KPluLLNkMoQu3GoimNJSNk+yWShFtpSwbh/LzxEm3/IIjjdInNyTG4By7xpEXWeGBzXlDNwW/keKr0qZcLDOWjM9x1Z8L9TZ4M01HpAu1rSrccFIhwfoaHF3aF0xz1HGNx6mlQl+oJ02L772RDfxgszA9nVgy8Cyti8paBnVEUENa3MZVEde/JN8VdsuPZeO7G50YoXzcqHTkp2ZnL6wiTxMiuxnyb4L8b/qTFo4B2TaSNt4Yp6E3A194ei84r8LdZezQYLKSnGzN6be7YuCpwDm1eMrzEYoqGiToBuoAhz+TzuA1vceHIGPlA==
实际请求参数
{
    "appId": "APP_8428691003",
    "timestamp": 1736161389,
    "requestId": "20250106190309282906",
    "signType": "RSA2",
    "bizContent": "{"payType":"ALIPAY","paySubType":"NATIVE","mchOrderNo":"20250106190309762141","amount":"0.1","subject":"\u6d4b\u8bd5","description":"\u6d4b\u8bd5","notifyUrl":"https:\/\/api.huilianlink.com\/openapi","clientIp":"192.168.1.1"}",
    "sign": "slkk/cNEv9kMey0Ae8tqVeoMl1g0KPluLLNkMoQu3GoimNJSNk+yWShFtpSwbh/LzxEm3/IIjjdInNyTG4By7xpEXWeGBzXlDNwW/keKr0qZcLDOWjM9x1Z8L9TZ4M01HpAu1rSrccFIhwfoaHF3aF0xz1HGNx6mlQl+oJ02L772RDfxgszA9nVgy8Cyti8paBnVEUENa3MZVEde/JN8VdsuPZeO7G50YoXzcqHTkp2ZnL6wiTxMiuxnyb4L8b/qTFo4B2TaSNt4Yp6E3A194ei84r8LdZezQYLKSnGzN6be7YuCpwDm1eMrzEYoqGiToBuoAhz+TzuA1vceHIGPlA=="
}

2.2.3 验签#

商户/代理方用以验证返回的报文是否合法。
值为空字符或null不参与签名
先对返回报文中的data字段数据进行排空,按照名称的ASCII码从小到大先分别进行排序,如果名称的首字母相同,则比较第二个字母,以此类推。将重新排序后的data字段进行json转换成字符串。再对整个返回报文按照名称的ASCII码从小到大先分别进行排序,如果名称的首字母相同,则比较第二个字母,以此类推,
将排序后的参数与其对应值,组合成 参数=参数值 的格式,并且把这些参数用 & 字符连接起来,此时生成的字符串为待验签名字符串。
:::
返回报文
{
    "code": 200,
    "data": {
        "mchOrderNo": "10_1735817737_2",
        "payOrderNo": "D20250102193537469265920",
        "channelOrderNo": "532025010222001446751453758049",
        "insOrderNo": "532025010222001446751453758049",
        "payDataType": null,
        "payInfo": null,
        "state": 3,
        "amount": "0.10",
        "payAmount": "0.10",
        "payType": "ALIPAY",
        "paySubType": "NATIVE",
        "sceneType": 1,
        "providerCode": "S1524906003",
        "channelCode": "helipay",
        "subChannelId": null,
        "subMchId": "E1808713759",
        "feeAmount": "0.00",
        "feeRate": "0.00",
        "channelFeeAmount": null,
        "channelFeeRate": null,
        "settlementAmount": "0.10",
        "subject": "市内打车",
        "description": null,
        "successTime": 1735817787000,
        "acctInfos": "[{\"accountNo\":\"E1808716289\",\"amount\":0.03,\"description\":\"司机服务\",\"fundStatus\":4,\"outOrderNo\":\"1735817787975khKAHJLk\"}]"
    },
    "msg": "成功",
    "appId": "APP_8428691003",
    "sn": "M428683001",
    "sign": "YGNws+XDZah6NCopyMUwwzd7xtkjDV3jXEc7k34JsCGBeKKu3sMOFrhLaHN7k1Mgp2QEetneOUFrqK2Z+N0gwTwnBX5GJFzjyi12+AJoP3fJq0deVyrpSFt7/OmitFs1nf2HL5ob6xQfnM+5e7CXlwaGoW3OYZ5w1f6FUR1EFhCVp/vC+2lgrOzW10PoiYA0M7KHxIkrnrqGgKYcSLdy4D/rVpyH7biOG3RYFe7qfsKUtvWPfRtwlD6CziFoUTPauW3mgP/bGK4u+4aBnOHPiY3R0lOdtmhEapEliEsBf31WoE+UOVfNpqZBjnEKXkhB5ZuZluB4ELTNShTZXBWsOQ==",
    "timestamp": "1735956920",
    "signType": "RSA2"
}
生成待验签名字符串
此处请注意如果data有返回字段值是一个url地址的 请不要将url进行转义 否则将会出现验签不通过的情况 php处理转json时请加上JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES,如:params[′data′]=jsone​ncode(this->getSignContentData($params['data']), JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
appId=APP_8428691003&code=200&data={"acctInfos":"[{\"accountNo\":\"E1808716289\",\"amount\":0.03,\"description\":\"司机服务\",\"fundStatus\":4,\"outOrderNo\":\"1735817787975khKAHJLk\"}]","amount":"0.10","channelCode":"helipay","channelOrderNo":"532025010222001446751453758049","feeAmount":"0.00","feeRate":"0.00","insOrderNo":"532025010222001446751453758049","mchOrderNo":"10_1735817737_2","payAmount":"0.10","payOrderNo":"D20250102193537469265920","paySubType":"NATIVE","payType":"ALIPAY","providerCode":"S1524906003","sceneType":1,"settlementAmount":"0.10","state":3,"subMchId":"E1808713759","subject":"市内打车","successTime":1735817787000}&msg=成功&signType=RSA2&sn=M428683001&timestamp=1735956920
取出sign:
YGNws+XDZah6NCopyMUwwzd7xtkjDV3jXEc7k34JsCGBeKKu3sMOFrhLaHN7k1Mgp2QEetneOUFrqK2Z+N0gwTwnBX5GJFzjyi12+AJoP3fJq0deVyrpSFt7/OmitFs1nf2HL5ob6xQfnM+5e7CXlwaGoW3OYZ5w1f6FUR1EFhCVp/vC+2lgrOzW10PoiYA0M7KHxIkrnrqGgKYcSLdy4D/rVpyH7biOG3RYFe7qfsKUtvWPfRtwlD6CziFoUTPauW3mgP/bGK4u+4aBnOHPiY3R0lOdtmhEapEliEsBf31WoE+UOVfNpqZBjnEKXkhB5ZuZluB4ELTNShTZXBWsOQ==
验签 RSAUtils.verify(待验签字段,rspSign,灵付智控公钥)
验签结果
ture
测试环境灵付智控公钥
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgwU1uQUvv5jsUjet/EKQYnfATAEgu6LMM8LTUMW6VOJ8kj3efB77+Ik28HXJfGfr31mCCq0YQSgb4NN2bXZjxCzhwo/DPXQev065Xhtxs7mK+hQKS4h+7oTAFUrze9Ey8NocraP8RVzJMIcSaGcSMHse4fqfyTbQupWr9ClvvjDlZowVuivXFSzPjCdAWHK1/9zonhjKYs9t/yAY+9I8mm+haT0ux3zE9R9zlApf3JCrCrRheg/WJhJXjb45lIYYMmZkMLKFn4W2ZdXmcH2ZlD1qG3B0nhtd5G6Nwfi+UEKhy5kMlig51rw99w2VAP/t29MFPzklS17SmKMgu7t8MQIDAQAB
生产环境灵付智控公钥【灵付智控通用】
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkvZ5wQisEcO9DSK1WV/HG4E7IQufNPGXJqtyeOdj7z/JF7PzIEQPbDtxjltXei9rZf54RfKAAnJCwqHR81f9KQC6ieUTInSyAcb5zEv3hECjVNq1jMm3LVcalepm0SJNbofW+0LACeXKGmUbcR1dIhdwWu/RDjdek7+/TD3j0fnDkhHUa2XU+nKdelq1gpoO9E090QwroYYOovgPlKHz1SkTz5oXTwga2UoBsfGo8VHjutuWCi2XWavBJrt58JkbXDDrp0oamYA4ZeoK/qmlA2xMBp47+TWnVmVIyFksXca27hAmh8mHA4EaZkmvsosPbh0N92wRAMkD71lU8PKp9wIDAQAB

2.2.4 示例代码【RSA2为例】以下为AI自动生成仅供参考#

上一页
2.1 接口格式定义
下一页
2.3 参数说明