接口说明
1. 余额支付是指用网易支付账户余额付款。不使用网易支付账户的产品可以忽略相关信息。最优查询时间及频率详见【交易超时查询机制最佳实践】
2. 充值是指将银行卡中资金转账到网易支付账户余额。不使用网易支付账户的产品可以忽略相关信息。
3.下单支付有异步通知。
4.充值是异步接口,但是没有异步通知;需要查询金额来保证是否成功。
数据格式
接口数据格式统一采用以下格式:
https://domain/path?msg=&sign=
接口公共参数msg和sign的值说明如下:
msg为所有参数base64编码后的值,为方便后续说明此处将base64编码后的msg值记为m;
sign的值s在得到m之后经过2个步骤计算得到:
1)计算m的32位md5值,得到32位大写字符串m1;
2)使用数字证书签名方式计算m1的签名,得到s。
接口地址
https://epay.163.com/pay_api/v1/order_pay.htm
请求参数
参数名称 | 参数 | 必填 | 类型 | 描述 |
商户号 | platformId | 是 | varchar2(40) | 商户号 |
用户帐号 | accountId | 是 | varchar2(60) | 用户在商户的唯一ID,一个个人身份信息对应一个accountid。 |
账号类型 | accountType | 是 | varchar2(20) | 用户账号类型。网易通行证传URS,其他传outer |
支付方式 | payMethod | 是 | varchar2(40) | 传quickpay |
校验方式 | challengeType | 是 | varchar2(40) | 支付验证方式 sms:短信验证码 none:不验证 但银行卡首次签约时,必须校验短信验证码 |
订单ID | orderId | 否 | varchar2(50) | 订单ID (支付返回参数),如果已返回过订单ID,则下面的订单信息不需要再传 |
商品名称 | goodsName | 是 | varchar2(50) | 下单商品名称 |
商品类型 | goodsType | 是 | varchar2(8) | platformGoodsCategoryMap.put("2003", "证券"); platformGoodsCategoryMap.put("2004", "基金"); platformGoodsCategoryMap.put("2005", "保险"); platformGoodsCategoryMap.put("2009", "P2P小额贷款"); |
商品url | goodsUrl | 是 | varchar2(300) | 下单商品url |
货币类型 | currencyType | 是 | varchar2(2) | 00 :人民币 |
交易金额 | tradeAmount | 是 | Number(13,2) | 交易金额,单位:元 |
交易手续费 | handFee | 否 | Number(13,2) | 交易手续费,单位:元 |
平台交易时间 | platformTradeTime | 是 | varchar2(40) | 商户平台交易时间,格式为yyyyMMddhhmmss |
平台交易流水 | platformTradeId | 是 | varchar2(40) | 平台交易流水,平台交易日内唯一 |
平台通知url | notifyUrl | 否 | varchar2(300) | 交易成功通知地址。允许为空,默认交易通知成功 |
订单超时时间 | timeout | 否 | long | 交易超时时间(单位为分钟,必须是大于零的整数,若不传则按照网易支付中设定的超时时间规则确定) 如果是代扣业务,支付失败时支持直接关单,需要向网易支付申请配置 |
平台保留字段 | platformPrivateField | 否 | varchar2(300) | 平台保留字段,存放需要原样返回给平台的信息, 如果没有,则不需要传 |
卖家账号 | sellerId | 是 | varchar2(60) | 传商户账号 |
平台订单url | platformTradeUrl | 否 | varchar2(300) | 平台订单URL(用于显示平台订单的详细信息, |
银行卡签约流水号 | quickPayId | 否 | varchar2(40) | 银行卡签约返回的业务流水号,payMethod为quickpay时,quickPayId或以下银行卡 信息必填一个 |
银行ID | bankId | 是 | varchar2(20) | 用户要签约银行卡所属银行ID。点击查看银行ID。 |
银行卡开户姓名 | cardAccountName | 是 | varchar2(120) | 用户银行卡开户姓名 |
银行卡卡号 | cardNo | 是 | varchar2(60) | 银行卡卡号 |
银行卡预留手机 | mobilePhone | 是 | varchar2(20) | 银行预留手机 |
身份证号 | certNo | 是 | varchar2(30) | 身份证号 |
外部充值号 | platformChargeId | 否 | varchar2(60) | 当业务是对公代扣时候才有这个字段,商户充值订单唯一号,由商户生成 |
用户IP | userIp | 是 | varchar2(20) | 用户操作IP,请确定传用户的真实IP,签约时可能会调用公安网进行身份验证 |
是否支持无签约支付 | directlyPay | 否 | boolean | 是否在网易支付没有签约记录时直接代扣(适用某些代扣类商户),示例:true/false, 默认为false,为true时challengeType校验方式不生效 注意:无签约代扣中 不能使用 同一账号(accountId) 不同身份证(certNo) |
注:
1) 其中订单信息(红色字)用名为orderInfos的jsonArray传;银行卡信息(蓝色字)用名为cardInfo的jsonObject传。
2) 如果orderInfo里有orderId表示已经下过单,就对这个订单进行支付;如果没有orderId,就必须有订单信息,接口先会下单,然后取得订单后再对这个订单进行支付。
3) 如果cardInfo 里面有quickpayId表示已经绑卡,就直接用这个卡进行支付;如果没有quickpayId,就必须要卡信息,接口会现绑卡,然后再取得quickpayId进行支付。
返回参数
参数名称 | 参数 | 必填 | 类型 | 描述 |
操作返回码 | operationResp | 是 | varchar2(10) | 操作响应码,本次调用是否成功。在支付场景中,操作返回码不为成功时,支付状态同“处理中”。 |
业务返回码 | businessResp | 否 | varchar2(10) | 业务相应码,当operationResp为成功时, 解析本字段 |
详细消息 | detailMsg | 否 | varchar2(1024) | 返回详情,human-readable |
订单号 | orderId | 否 | varchar2(40) | 订单号,当operationResp、businessResp为成功时, 解析本字段 |
返回码
参数名称 | 参数 | 必填 | 类型 | 描述 |
操作返回码 | operationResp | 是 | varchar2(10) | 操作响应码,本次调用是否成功 |
业务返回码 | businessResp | 否 | varchar2(10) | 业务相应码,当operationResp为成功时,解析本字段 |
详细消息 | detailMsg | 否 | varchar2(1024) | 返回详情,human-readable |
订单号 | orderId | 否 | varchar2(40) | 订单号,当operationResp、businessResp为成功时,且为交易支付时解析本字段 |
银行卡签约流水 | quickPayId | 否 | varchar2(40) | 快捷签约流水号,当operationResp、businessResp为成功、 支付方式为银行卡支付时且为银行卡首次签约时,解析本字段 |
充值流水 | chargeId | 否 | varchar2(40) | 充值流水号,当operationResp、businessResp为成功、 支付方式为银行卡支付且不是首次签约时,解析本字段 |
支付状态 | payStatus | 否 | varchar2(40) | 支付状态,当operationResp为成功、 支付方式为银行卡支付且不是首次签约时,解析本字段。 字段值包含SUCCESS(代表成功),FAILED(代表失败),PROCESSING(代表处理中)三种状态。 注:当对一笔已经成功的订单进行支付时,PayStatus返回的结果是失败,代表本次支付行为是失败的。 |
附加信息 | attach | 否 | varchar2(60) | 充值附加信息,operationResp、businessResp为成功、 且支付方式为银行卡支付时需要,解析本字段 |