商户发送请求参数给首信易支付,并接收同步返回的支付信息,用支付信息拉起对应支付方式,并在订单终态后接收异步通知结果。
https://apis.5upay.com/onlinePay/order
| 参数名称 | 参数中文名称 | 类型& 长度 | 参数说明 | 是否必填 | 
|---|---|---|---|---|
| merchantId | 商户编号 | varchar(9) | 商户在首信易系统的唯一id,可在商户后台查看 | M | 
| orderAmount | 订单金额 | varchar(18) | 单位:分,1元=100分 | M | 
| orderCurrency | 订单币种 | varchar(15) | 默认CNY(人民币) | M | 
| requestId | 订单号 | varchar(50) | 订单号为商户自行拟定,提交的订单号必须在自身平台交易中唯一。商户平台不能以相同的订单号再次提交。 | M | 
| partnerId | 服务商id | varchar(9) | 服务商在首信易系统的唯一id,可在商户后台查看 | C | 
| notifyUrl | 通知地址 | varchar(200) | 服务器通知:当订单状态为终态后首信易服务器会向该地址发送通知,如:http://www.5upay.com/callback.action | M | 
| callbackUrl | 回调地址 | varchar(200) | 页面回调:支付成功后会向该地址进行跳转,callbackUrl返回的参数只有:merchantId,requestId. callbackUrl返回格式示例: https://demo.5upay.com/sdk/callback?requestId=1446633831896&merchantId=890000593 | M | 
| remark | 备注 | varchar(300) | 商户在首信易为订单进行备注,通过支付结果返回商户 | O | 
| paymentModeCode | 支付方式编码 | varchar(50) | 非收银台模式需要传入此项,见产品编码 | C | 
| authCode | 授权码 | varchar(50) | 钱包账户的授权码,如:微信/支付宝付款码 | O | 
| appId | appId | varchar(100) | 此参数传商户自己的appId | C | 
| openId | openId | varchar(100) | 此参数传用户自己的微信openId,或者支付宝的buyer_id | C | 
| productDetails | 商品信息 | Json(数组) | 支付商品信息,见下表 | M | 
| splitMark | 分账标识 | 固定值 | DO_SPLIT 分账 | C | 
| NOT_DO_SPLIT 不分帐 不传默认为不分帐 | ||||
| payer | 身份信息 | Json | 此json可空,但不可将此参数整个去掉,可按以下格式传入接口: “payer”:{“idType“: ”IDCARD”},详见下表 | M | 
| clientIp | 客户端IP | varchar(100) | 传递客户端外网IP(需商户收集用户的ip) | M | 
| timeout | 订单超时时间 | Int(4) | 此参数用于设置订单的超时时间(需小于等于24小时),如:输入10,该订单将在10min后过期。应根据商户自身场景设置,分钟为单位 | O | 
| merchantUserId | 商户会员id | varchar(30) | 快捷支付可通过传入此参数进行绑卡,每个商户下面唯一,请给每个用户分配一个id用于传入此参数,以便用户下次支付时可用之前绑定过的卡 | O | 
| bindCardId | 绑卡id | varchar(50) | 本参数暂未启用 | O | 
| reportSerialNo | 报备序列号 | varchar(50) | 报备序列号(可咨询商务经理) | C | 
| reportTerminalNo | 报备终端号 | varchar(8) | 使用付款码交易时,此参数必传 | C | 
| limitAccType | 限定账户类型 | varchar(200) | 见下表,需要传多个枚举值时用半角 逗号“,”分隔 | O | 
| subsidyMark | 补贴标识 | 固定值 | DO_SUBSIDY 补贴 NOT_DO_SUBSIDY 不补贴,默认为不补贴 | O | 
| subsidyAmount | 补贴金额 | decimal(18) | 单位:分,1元=100分 | O | 
| needOpenLink | openLink标识 | varchar(1) | 1 需要返回openLink | C | 
| 0 不需要返回openLink | ||||
| 默认不需要返回openLink | ||||
| payMerchantId | 付款商户商编 | varchar(9) | 使用企业账户支付时,此参数必传 | C | 
| isBackUsersSign | 返回用户标识 | 固定值 | 1 需要返回用户标识 | O | 
| 0 不需要返回用户标识 | ||||
| 传空时默认不返回 | ||||
| 此参数用来指定交易成功后是否需要返回用户标识。用户标识可作为支付人的唯一标识,当前仅对微信、支付宝、微包支付有效。 | ||||
| languageType | 语言 | 固定值 | ZH 中文 | O | 
| EN 英文 | ||||
| 仅收银台订单生效。可通过此参数指定收银台页面的语言。未传值时将与用户浏览器语言一致。 | ||||
| weboxParams | 微包支付参数 | Json | 微包支付时需用户刷脸认证支付,见下表 | O | 
| instalmentParams | 分期支付参数 | Json | 分期支付必传,见下表 | O | 
| projectId | 项目id | varchar(50) | 商户项目标识,商户可以通过项目id区分订单业务类型 | O | 
| subsidyDetail | 补贴明细 | Json(数组) | 营销补贴场景下可指定补贴方,若不传则从默认补贴方处支付补贴款。最多可传 5 条 | O | 
| serialNumber | 汇款流水号 | varchar(50) | 该笔订单需要匹配的汇款流水号支付方式为“专属账号汇款-专业版”时必填 | C | 
| hmac | 参数签名 | varchar(500) | 商户生成的参数签名结果,获取hmac的方法请参考请求加密流程 | M | 
注意:以上参数值中不能包含以下特殊字符 ' " & < > ( ) 空格
| 参数名称 | 参数中文名称 | 类型& 长度 | 参数说明 | 是否必填 | 
|---|---|---|---|---|
| name | 商品名称 | varchar(500) | 商品名称,需传递真实产品名称。 | M | 
| quantity | 商品数量 | long | 商品数量 | M | 
| amount | 商品单价 | long | 单位:分,1元=100分,此项为单个商品的价格。 | M | 
| receiver | 收款人 | varchar(200) | 收款人名称(如果为空的话自动取注册名称) | O | 
| description | 商品描述 | varchar(500) | 商品描述 | O | 
| 参数名称 | 参数中文名称 | 类型& 长度 | 参数说明 | 是否必填 | 
|---|---|---|---|---|
| name | 付款方名称 | varchar(100) | 付款方名称 | C | 
| phoneNum | 手机号码 | varchar(50) | 手机号码 | C | 
| idType | 证件类型 | varchar(20) | IDCARD 身份证 | C | 
| idNum | 证件号码 | varchar(100) | 目前只接受18位身份证号码 | C | 
| bankCardNum | 银行卡号 | varchar(100) | 银行卡号,银联wap支付方式可以选择传递此参数 | O | 
| 邮箱 | varchar(50) | 邮箱 | O | 
| limitAccType 枚举 | 枚举说明 | 使用场景 | 传值要求 | 
|---|---|---|---|
| ALIPAY_HB_FQ_NUM_3 | 花呗分期期数,3 期 | 支付宝花呗分期支付 | 只能传其中之一 可与非花呗分期相关枚举同时传,以英文半角逗号分隔 例如"ALIPAY_HB_FQ_NUM_3,ONLY_BANKCARD_PAY" | 
| ALIPAY_HB_FQ_NUM_6 | 花呗分期期数,6 期 | 支付宝花呗分期支付 | |
| ALIPAY_HB_FQ_NUM_12 | 花呗分期期数,12 期 | 支付宝花呗分期支付 | |
| DISABLE_CREDIT_CARD | 禁止使用信用卡 | 微包支付、网关支付 | 只能传其中之一 可与花呗分期相关枚举同时传,以英文半角逗号分隔 示例同上 | 
| WEBOX_BALANCE_PAY | 微包余额支付 | 微包支付 | |
| ONLY_BANKCARD_PAY | 银行卡支付 | 在线支付、微包支付 | |
| ONLY_DEBIT_CARD | 仅借记卡 | 在线支付、微包支付 | 
| 参数名称 | 参数中文名称 | 类型& 长度 | 参数说明 | 是否必填 | 
|---|---|---|---|---|
| payAuthType | 验证方式 | 固定值 | FORCE_FACE_SCAN 强制刷脸 微包支付时需用户刷脸认证支付 | O | 
| 微包支付时需用户刷脸认证支付 | 
| 参数名称 | 参数中文名称 | 类型& 长度 | 参数说明 | 是否必填 | 
|---|---|---|---|---|
| interestType | 付息方式 | 固定值 | USER_INTEREST 用户付息 MERCHANT_INTEREST 商户贴息 非直连默认为用户付息,直连时必填 | C | 
| suppBankCodes | 限定银行 | varchar(1024) | 银行编码详见附件“银行编码表” 支持上传多个银行编码,以英文半角逗号分隔 | O | 
| limitNum | 限定分期期数 | varchar(50) | 支持上传多个分期期数,以英文半角逗号分隔,例如:3,6,9,12 | O | 
| storeNo | 门店编号 | varchar(100) | 用来标志商户的门店信息 | O | 
| storeName | 门店名称 | varchar(15) | 商户门店的门店名称,需与门店编号同时上传 | O | 
| 参数名称 | 参数中文名称 | 类型& 长度 | 参数说明 | 是否必填 | 
|---|---|---|---|---|
| subsidyMerchantId | 补贴方商户编号 | varchar(30) | 支付补贴款的商户编号 | O | 
| subsidyDetailAmount | 补贴明细金额 | varchar(18) | 子订单金额,分为单位 | O | 
| 参数名称 | 参数中文名称 | 参数说明 | 
|---|---|---|
| merchantId | 商户编号 | 同请求参数 | 
| requestId | 订单号 | 同请求参数 | 
| partnerId | 服务商Id | 同请求参数 | 
| status | 请求状态 | SUCCESS 成功,请求已接收 | 
| FAILED 失败 | ||
| ERROR 错误(此状态的返回参数见异常情况说明) | ||
| REDIRECT 重定向 | ||
| realBankRequestNumber | 银行订单号 | 银行订单号 | 
| payeeInfo | 收款人信息 | 当status为SUCCESS,此项只有在支付方式为线下银行汇款时返回见下表payeeInfo | 
| redirectUrl | 重定向地址 | 当status为REDIRECT时,用户重定向访问的地址 | 
| walletId | 钱包Id | 微包钱包id(微包扫码支付时返回此参数) | 
| scanCode | Base64二维码 | 当status为SUCCESS,Base64格式的二维码,需商户转换成图片,此项为扫码直连返回的参数。 | 
| scanCodeUrl | 二维码链接 | 当status为SUCCESS,此项为扫码直连返回的参数 | 
| appParams | App调用码 | 当status为SUCCESS,此项只有app支付才会返回,利用此项调用移动端sdk。 | 
| jsString | 微信调起支付数据签名字段 | 此json数据为微信返回,预下单成功后会返回此json,利用此项调用微信支付。 | 
| wechatId | 微信原始ID | 当status为REDIRECT,此项在小程序非直连支付方式情况下返回,利用此项原始APP可唤起小程序支付。注:走渠道小程序支付才会返回,下单时不用传APPID参数 | 
| tradeNo | 支付宝交易号 | 当status为SUCCESS,此项在支付宝小程序、生活号预下单成功以后会返回,使用此项调用支付宝支付 | 
| token | 微包支付调用token | 当status为SUCCESS,此项在微包支付、微包扫码付或微包服务号支付预下单成功以后会返回,使用此项调用微包支付或微包服务号支付 | 
| openLink | openLink | 当status为REDIRECT,此项在微信小程序非直连支付方式且needOpenLink为1时返回,浏览器端的JavaScript通过执行location.href = openlink可唤起微信小程序支付 注:走渠道小程序支付才会返回,下单时不用传APPID参数 | 
| payMerchantId | 付款商户商编 | 使用企业账户支付时,返回此参数 | 
| paymentOrderId | 支付订单id | 当status为SUCCESS,协议支付或企业账户直连支付请求成功后会返回此参数,支付确认接口需要传入此参数。 | 
| needKaptcha | 是否发送短信 | 当status为SUCCESS,协议支付或企业账户直连支付请求成功后会返回此参数 | 
| true 发送 | ||
| false 不发送 | ||
| hmac | 参数签名 | 首信易生成的参数签名结果,验签过程请参考解密流程 | 
| 参数名称 | 参数中文名称 | 参数说明 | 
|---|---|---|
| accountNumber | 收款人账号 | 收款人银行账号 | 
| bankUnionNumber | 联行号 | 联行号 | 
| branchBank | 开户行 | 开户行名称 | 
| payee | 收款人名称 | 收款人名称 | 
| postscriptNumber | 汇款附言 | 汇款附言 注:专属账号汇款不返回此参数 | 
| remittancesAddress | 汇入地址 | 汇入地址 | 
注意:1、当订单为非分账订单时,订单支付完成后将发送一次异步通知,可能不包含手续费金额。订单计费成功后将发送第二次异步通知,告知手续费金额。
2、当订单为分账订单时,订单支付完成后将发送一次异步通知,可能不包含订单可分账金额、手续费金额。订单计费成功后将发送第二次异步通知,告知可分账金额、手续费金额。每次通知都将依赖结果通知机制说明进行响应,请注意返回响应结果
| 参数名称 | 参数中文名称 | 参数说明 | 
|---|---|---|
| merchantId | 商户编号 | 同请求参数 | 
| requestId | 订单号 | 同请求参数 | 
| partnerId | 服务商Id | 同请求参数 | 
| serialNumber | 交易流水号 | 交易流水号 | 
| totalRefundCount | 已退款次数 | 该支付订单共计退款次数 | 
| totalRefundAmount | 已退款金额 | 该支付订单共计退款金额 | 
| orderCurrency | 订单币种 | 默认人民币CNY | 
| orderAmount | 订单金额 | 单位:分,1元=100分 | 
| status | 状态 | SUCCESS成功 | 
| CANCEL取消 | ||
| FAILED失败 | ||
| completeDateTime | 完成时间 | 支付完成时间 | 
| clearingOrg | 清算机构 | NUCC 网联 | 
| UNION_PAY 银联 | ||
| paymentModeAlias | 支付方式 | B2C 个人网银 | 
| B2B 企业网银 | ||
| UNION_SCANCODE_PAY 银联扫码 | ||
| EXPRESS_PAY 快捷支付 | ||
| CREDIT_EXPRESS_PAY 信用卡快捷支付 | ||
| DEBIT_EXPRESS_PAY 借记卡快捷支付 | ||
| ALI_SCANCODE_PAY 支付宝扫码支付 | ||
| ALIPAY_OFFICIAL_PAY “支付宝生活号支付 | ||
| WEIXIN_SCANCODE_PAY 微信扫码支付 | ||
| WEIXIN_OFFICIAL_PAY 微信-公众号支付 | ||
| MINIAPPS_WEIXIN_PAY 微信-小程序支付 | ||
| APPLE_PAY 苹果支付 | ||
| ALIPAY_WAP_PAY 支付宝-WAP | ||
| APP_ALIPAY 支付宝APP支付 | ||
| ALIPAY_B2C_PAY 支付宝B2C支付 | ||
| MINIAPPS_ALI_PAY “支付宝-小程序支付 | ||
| SCANCODE-EQRCODE_PAY-ALI 易码付-支付宝 | ||
| SCANCODE-EQRCODE_PAY-WEIXIN 易码付-微信 | ||
| SCANCODE-EQRCODE_PAY-WEBOX 易码付-微包 | ||
| SCANCODE-EQRCODE_PAY-UNION 易码付-云闪付 | ||
| AGREEMENT_PAY 协议支付 | ||
| WAP 银联wap支付 | ||
| APP_UNION 云闪付收银台支付 | ||
| WEBOX_APP 微包app支付 | ||
| WEBOX_CSP 微包扫码支付 | ||
| WEBOX_SVC 微包服务号支付 | ||
| APP_WEIXIN 微信APP支付 | ||
| MERCHANT_ACCOUNT_PAY 企业账户支付 | ||
| realBankSerialNumber | 银行流水号 | 银行流水号 | 
| realBankRequestNumber | 银行订单号 | 银行订单号 | 
| bindCardId | 绑卡id | 用户绑卡id | 
| orderSplitAmount | 可分账金额 | 该笔订单的总可分账金额,固定值,单位:分,当订单的计费类型为“实时”时,可分账金额=订单金额-商户承担的手续费, 当订单的计费类型非“实时”时,可分账金额=订单金额 | 
| canSplitAmount | 未分账金额 | 该笔订单当前的剩余可分账金额,单位:分 未分账金额=可分账金额-已分账金额-待分账资金归集退款金额 | 
| payMerchantId | 付款商户商编 | 使用企业账户支付时,返回此参数 | 
| errorMessage | 错误信息 | 错误信息 | 
| remark | 备注 | 在下单请求中提交的备注信息,返回给商户 | 
| cardType | 卡类型 | DEBIT_CARD 借记卡 | 
| CREDIT_CARD 信用卡 | ||
| 用户实际支付的卡类型 | ||
| 支付渠道支持同步该信息时,交易成功后返回此参数 | ||
| usersSign | 用户标识 | 下单时指定需要返回用户标识,交易成功后返回此参数。当前只对微信、支付宝、微包支付方式生效 | 
| finalPaymentType | 支付类型 | BANK_CARD 银行卡 | 
| BALANCE 余额 | ||
| 用户实际支付的支付类型 | ||
| 收单商户与我司申请开通相关配置,交易成功后返回此参数 | ||
| payerNameMd5 | 支付人名称MD5 | 实际支付用户的名称MD5格式收单商户与我司申请开通相关配置,且支付渠道支持同步该信息时,交易成功后返回此参数 | 
| bankCardNumberMd5 | 支付卡号MD5 | 用户实际支付所用银行卡的卡号MD5格式收单商户与我司申请开通相关配置,支付类型为银行卡,且支付渠道支持同步该信息时,交易成功后返回此参数 | 
| bankCardNumber | 支付卡号掩码 | 用户实际支付所用银行卡的卡号掩码格式收单商户与我司申请开通相关配置,支付类型为银行卡,且支付渠道支持同步该信息时,交易成功后返回此参数 | 
| bankCode | 支付银行编码 | 用户实际支付所用银行卡的所属银行编码收单商户与我司申请开通相关配置,支付类型为银行卡,且支付渠道支持同步该信息时,交易成功后返回此参数 | 
| feeAmount | 手续费金额 | 该笔订单首信易收取的手续费,单位:分,交易成功后返回此参数 | 
| feeBear | 手续费承担方 | 该笔订单的交易手续费的承担方,交易成功后返回 MERCHANT 商户 PARTNER 服务商 | 
| deliveryStatus | 妥投状态 | 当支付方式为 MINIAPPS_WEIXIN_PAY 时此参数生效,其余支付方式可忽略此参数 | 
| CANCELED 取消,订单状态失败后 | ||
| PENDING 待妥投,支付成功且需要妥投 | ||
| DELIVERED 已妥投,待妥投订单妥投成功后 | ||
| NOREQUIRED 无需妥投,支付成功且不需要妥投 | ||
| 当微信小程序触发发货管理时,发货功能请参考微信官方文档
                《订单发货管理接入指引》 《订单发货管理功能介绍及接入计划》 | ||
| deliveryDateTime | 妥投时间 | 格式:yyyy-mm-dd hh:mm:ss 仅当妥投状态为“已妥投”时有值 | 
| hmac | 参数签名 | 首信易生成的参数签名结果,验签过程请参考解密流程 | 
注:商户在处理首信易返回报文时,需考虑对未来新增字段的兼容处理,避免以后因新增字段而发生系统报错或影响原有字段的解析处理