订单异步通知
1,说明:用户支付完成之后,富友会异步通知给商户,以通知地址:back_notify_url给商户
2,富友端异步通知给商户端,通知方式:HTTP, POST,BODY JSON方式通知,以HTTP状态码【200=通知商户成功】,商户端无需响应富友任何信息;
3,订单状态以:order_st=1(成功),order_st!=1(失败或其他描述)
4,补充通知机制:如商户端系统异常,富友端在2小时内会连续通知商户8次,如超过期限将不再通知商户(商户端可自行调:订单查询接口补偿)
5,请求头:不带报文头(content-type=application/json)
6,接收异步通知代码方法,当前页面在最低端(JAVA和PHP)
1 请求地址
生产地址:[由富友系统请求商户系统-以订单支付接口传参的异步通知地址为准]
测试地址:[由富友系统请求商户系统-以订单支付接口传参的异步通知地址为准]
3 接口输出
变量名称 | 字段 | 长度 | 说明 | 是否可必填 | 说明 |
---|---|---|---|---|---|
商户代码 | mchnt_cd | MAX(15) | 商户在富友入网时生成的商户号 | 必填 | 0001000F0040992 |
应答码 | resp_code | MAX(4) | 接口通讯应答码 | 必填 | 应答码不能当成订单状态码 |
应答描述 | resp_desc | MAX(200) | 应答描述 | 必填 | 成功或其他错误 |
报文体 | message | MAX | 报文体 | 必填 | ADp7YzySKDrGI4UG6JcPwMVW3......... |
3.1 报文体
变量名称 | 字段 | 长度 | 说明 | 是否可必填 | 样例 |
---|---|---|---|---|---|
商户号码 | mchnt_cd | MAX(15) | 商户在富友入网时生成的商户号 | 必填 | 0001000F0040992 |
订单日期 | order_date | MAX(8) | 同订单支付接口的订单日期。 | 必填 | 20221110 |
订单号 | order_id | MAX(30) | 同订单支付接口的订单号 | 必填 | 20221110551545151212 |
富友订单号 | fy_order_id | MAX(32) | 富友送给支付宝或者微信的订单号,唯一(公众号点金计划用) | 必填 | 003554041360 |
订单金额 | order_amt | MAX(12) | 订单金额:整数,单位:分 | 必填 | 10000(分)=100(元) |
订单状态 | order_st | MAX(4) | 订单状态,0=待支付,1=成功,2=失败 | 必填 | 1 |
支付方式 | order_pay_type | MAX(30) | 二维码[ALIPAY-支付宝,WECHAT-微信];公众号小程序[JSAPI-公众号支付,FWC-支付宝小程序,LETPAY-微信小程序] | 必填 | LETPAY |
富友日期 | order_fas_date | MAX(8) | 富友记账日期,富友平台对账查询(订单分账用) | 必填 | 20221228 |
富友流水 | order_fas_ssn | MAX(12) | 富友记账流水,富友平台对账查询(订单分账用) | 必填 | 000123456789 |
通道流水号 | pay_ssn | MAX(64) | 微信和支付宝流水号 | 必填 | 20230000** |
用户openid | openid | MAX(64) | 用户openid | 非必填 | ohjdsg3dfdfdfd... |
卡属性 | card_type | MAX(2) | 银联免密支付返回 01=借记 02=贷记 03=借贷记 | 非必填 | |
银联优惠信息 | discount_info | MAX(128) | 银联优惠信息json串 | 非必填 | |
支付时间 | pay_time | MAX(20) | 支付时间 | 非必填 | yyyymmddhhmmss |
分佣参数 | bill_params | MAX(256) | 子商户号收款的钱。分佣给主商户号。分佣参数。 | 非必填 | 字符串格式。"{\"allocate_amt\":\"分佣金额\",\"contract_ssn\":\"分佣协议号\"}" |
商户端接收富友系统通知
【JAVA】语言,代码如下:
@RequestMapping("notice")
public void bankNotice(HttpServletRequest req, HttpServletResponse res) throws Exception{
BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));
String body = IOUtils.read(reader);
}
# # #