企业付款到余额
| 应用场景
商户可以通过调用企业付款API,实现向个人用户付款,将商户营销账户的钱付款到用户的QQ钱包余额。
企业付款将使用商户营销账户的可用余额,需确保可用余额充足。查看营销账户可用余额、充值、提现等,请登录商户平台“资金管理”进行操作: https://mp.qpay.tenpay.com
注意:营销账户与商户QQ钱包支付收款资金并非同一账户,需要单独充值;
| 接口说明
请求地址:https://api.qpay.qq.com/cgi-bin/epay/qpay_epay_b2c.cgi
请求方式:POST
是否需要证书:
验证双向数字证书。下载证书参见商户证书。
操作员账户:
接口需要用到的操作员账户密码,可以由以下两种方式任意一种方式获得:
1. 商户号id和登陆密码是一组操作员账户和密码。
2. 创建操作员。详情参见:https://kf.qq.com/faq/170112AZ7Fzm170112VNz6zE.html
| 请求参数
变量名 | 字段名 | 字段类型 | 必填 | 描述 | 示例 |
input_charset | 字符集 | String(32) | 是 | 固定:“UTF-8”,中文只支持UTF-8编码 | UTF-8 |
appid | 应用ID | String(32) | 否 | 应用ID,uin为空时,此项必填。 | 1007033799 |
openid | 用户opeind | String(64) | 否 | 接收付款的用户openid,uin为空时,此项必填。 | 8876FE1B59DEC9F3ACDDB55835D3BB4B |
uin | 收款QQ号码 | String(64) | 否 | 接收付款的用户QQ号码。appid或openid为空时,此项必填。 | 123456789 |
mch_id | 商户号 | String(32) | 是 | 付款的商户号 | 1900005631 |
nonce_str | 随机字符串 | String(32) | 是 | 随机字符串,不长于32位,详见随机数算法 | 3e5a036cb4bc3a677a38ad9d69eb3feb |
sign | 商户签名 | String(128) | 是 | 商户签名,详见商户签名算法规则 | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS |
out_trade_no | 商户订单号 | String(32) | 是 | 商户系统内部的订单号,32个字符内、可包含字母,其它说明见商户订单号 | 12345678 |
fee_type | 货币类型 | String(16) | 否 | 货币类型定义,缺省人民币:CNY | CNY |
total_fee | 付款金额 | Int | 是 | 付款金额,单位分 | 1000 |
memo | 付款备注 | String(128) | 否 | 付款备注信息 | 如:转账 |
check_name | 校验用户姓名 | String(128) | 否 | 校验用户姓名,"FORCE_CHECK"校验实名 | FORCE_CHECK:强校验真实姓名 |
re_user_name | 收款用户姓名 | String(128) | 否 | 收款用户真实姓名 | 如果check name设置为FORCE_CHECK,则必填用户真实姓名 |
check_real_name | 校验用户是否实名 | Int | 否 | 商户可通过此字段来选择未实名用户的收款体验: (1)当check_real_name字段值不传或传非0值:非实名用户无法收款,企业付款API将返回相应的错误码; (2)当check_real_name字段值传“0”:企业付款API返回成功,收款用户侧将收到“QQ钱包公众号”消息提醒,提示用户前往指定页面完成实名。如果用户在24小时内完成实名,用户仍将成功收款;否则,资金将退回至商户的营销账户。 | 0 |
op_user_id | 操作员ID | String(64) | 是 | 操作员ID | test@1900005631 |
op_user_passwd | 操作员密码的MD5 | String(32) | 是 | 操作员密码(明文MD5) | 836FB4543C03447BFF512D93C32FC5B6 |
spbill_create_ip | IP地址 | String(15) | 是 | 调用接口的机器Ip地址 | 127.0.0.1 |
notify_url | 用户到账结果通知 | String(256) | 否 | 接收QQ钱包异步通知回调地址,通知url必须为直接可访问的url,不能携带参数 。基于安全考虑,建议使用https | https://www.qpay.qq.com |
示例如下:
<xml>
<input_charset>UTF-8</input_charset>
<mch_id>19000015631</mch_id>
<nonce_str>21df7dc9cd8616b56919f20d9f679233</nonce_str>
<sign>332F17B766FC787203EBE9D6E40457A1</sign>
<out_trade_no>12345678</out_trade_no>
<fee_type>CNY</fee_type>
<total_fee>100</total_fee>
<memo>test</memo>
<check_name>FORCE_CHECK</check_name>
<re_user_name>张三</re_user_name>
<op_user_id>test@1900005631</op_user_id>
<op_user_passwd>836FB4543C03447BFF512D93C32FC5B6</op_user_passwd>
<spbill_create_ip>127.0.0.1</spbill_create_ip>
</xml>
| 返回结果
变量名 | 字段名 | 字段类型 | 必填 | 描述 | 示例 |
return_code | 返回状态码 | String(16) | 是 | SUCCESS/FAIL 此字段是通信标识,非交易标识 | SUCCESS |
return_msg | 返回信息 | String(128) | 是 | 返回信息,如非空,为错误原因 | 系统繁忙 |
retcode | 原始错误码 | String(16) | 是 | 原始错误码 | 10025 |
retmsg | 原始错误原因 | String(128) | 是 | 原始错误原因 | 系统繁忙 |
下列字段,在return_code为成功时有返回:
变量名 | 字段名 | 字段类型 | 必填 | 描述 | 示例 |
result_code | 业务结果 | String(16) | 是 | SUCCESS/FAIL | SUCCESS |
err_code | 错误码 | String(32) | 是 | 错误码 | SYSTEMERROR |
err_code_desc | 错误描述 | String(128) | 是 | 错误描述 | 系统错误 |
nonce_str | 随机字符串 | String(32) | 是 | 随机字符串 | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS |
下列字段,在result_code为成功时有返回:
变量名 | 字段名 | 字段类型 | 必填 | 描述 | 示例 |
mch_id | 商户号 | String(32) | 是 | 商户号 | 1900005631 |
out_trade_no | 商户订单号 | String(32) | 是 | 商户订单号 | 12345678 |
transaction_id | QQ钱包订单号 | String(32) | 是 | 企业付款QQ钱包订单号 | 19000056310201705061000000101985 |
| 错误代码
错误码 | 描述 | 原因 | 解决方案 |
SYSTEMERROR | 系统错误 | 系统错误 | 重入调用接口 |
PARAM_ERROR | 参数错误 | 请求参数未按指引进行填写 | 检查参数 |
SIGNERROR | 商户签名错误 | 参数签名结果不正确 | 请检查签名参数和方法是否都符合签名算法要求,比如检查签名顺序和key正确性 |
OP_USER_PASSWD_ERROR | 操作员密码错误 | 操作员密码校验失败 | 尝试用密码登录qpay.qq.com确认操作员密码是否正确 |
OP_USER_AUTH_ERROR | 操作员权限错误 | 该操作员ID不具备企业付款权限 | 登录qpay.qq.com修改权限,确认该操作员ID具有企业付款权限 |
TRANSFER_FEE_LIMIT_ERROR | 转账限额错误 | 针对此用户的转账金额上、下限、单日转账次数超出了限制 | 检查此用户的转账额度、转账次数是否超出了限制 |
TRANSFER_FAIL | 转账失败 | 收款用户的账户不支持收款,收款失败 | 确认收款用户的账户是否正常 |
NOTENOUGH | 商户营销账户余额不足 | 商户营销账户的余额不足 | 登录qpay.qq.com,给营销账户充值 |
ORDERNOTEXIST | 转账订单不存在 | 订单不存在 | 请检查订单号是否正确 |
APPID_OR_OPENID_ERR | appid 或 openid 非法 | appid 或 openid 非法 | 请检查APPID和OPENID |
TOTAL_FEE_OUT_OF_LIMIT | 单笔限额检查失败 | 单笔限额不符合限制要求 | 请确认该笔支付订单的金额是否在限制区间内 |
SPID_NOT_ALLOW | 当前商户不支持企业付款 | 商户号没有企业付款权限 | 请确认该商户号的权限 |
REALNAME_CHECK_ERROR | 实名检查失败 | 用户未实名 | 用户未实名无法收款,商户可引导用户进行实名 |
RE_USER_NAME_CHECK_ERROR | re_user_name检查失败 | 用户真实姓名校验失败 | 请重新确认用户的真实姓名 |
INVALID_CERTIFICATE | 证书非法 | 证书非法 | 请确认所使用的证书是否正常 |
TRANSFER_FAIL_LIMIT_ACC_1 | 转账失败 | 收款用户为一类户,收款额度终身限制1000元 | 商户可引导用户绑定1类银行卡 |
PERMISSION_LIMIT | 商户账户付款受限 | 商户号被管控/冻结 | 可根据联系邮箱收到的整改通知函进行相应操作,解除功能限制 |
ERR_TJ_BLACK | 风控太极门拦截 | 用户假名/匿名 | 商户可引导用户联系客服检查用户状态 |
USER_FROZEN | 用户冻结 | 用户被管控冻结 | 商户可引导用户联系客服检查用户状态 |