微信公众号、小程序下单异步通知
1、修订记录
修订记录 | 日期 | 说明 |
---|---|---|
1.0 | 2023.08.30 | 初版 |
2、业务说明
2.1、接口说明
银盛支付对商户的请求数据处理完成后,会将处理的结果数据通过服务器主动通知的方式通知给商户网站。这些处理结果数据就是服务器异步通知参数。注意:
1、接入方接受异步通知结果后,返回success表示该次异步通知成功,银盛将会按成功处理该次异步通知。
2、接入方接收到异步通知后,同步返回非success,银盛认为该次异步通知失败了,银盛将会再通知5次,间隔频率分别为1分钟、5分钟、10分钟、30分钟、60分钟共5次通知。凡是其中一次返回success银盛将会终止通知。
3、同样的通知可能会多次发送给接入方(例如调用接入方超时,接入方返回失败等)。
2.2、接入方接受异步通知接口的要求:
1、接受方式:POST
2、接受主体类型:application/json
3、需要对通知的数据进行验签,验签使用公钥验签,详见demo
4、必须要有一个返回值 该值为String类型。
5、接入方必须能够正确处理重复的通知,以避免函数重入造成的数据混乱。
3、异步通知报文结构
3.1、公共请求参数
参数 | 类型(长度) | 必填 | 参数说明 |
---|---|---|---|
timeStamp | String | Y | 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" |
src | String | Y | 异步通知来源,固定"pregate" |
reqId | String | Y | 请求流水号 |
charset | String(10) | Y | 编码格式 固定为UTF-8 |
sign | String | Y | 签名,需要银盛公钥验签,详见demo |
bizContent | String | Y | 业务响应数据 json字符串 |
3.2、业务请求参数
(bizContent加密前的json数据明文字符串)参数 | 类型(长度) | 必填 | 参数说明 |
---|---|---|---|
notifyTime | String(19) | Y | 发送请求的时间 格式:yyyy-MM-dd HH:mm:ss 例: 2014-07-24 03:07:50 |
orderId | String(32) | Y | 商户订单号, 商户生成的订单号 例:6843192280647118 |
totalAmount | Number | N | 单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位 |
tradeNo | String(20) | N | 银盛支付交易流水号 |
tradeStatus | String | Y | 交易目前所处的状态。成功状态的值: TRADE_SUCCESS; 枚举值: WAIT_BUYER_PAY: 交易创建,等待买家付款 TRADE_CLOSED: 在指定时间段内未支付时关闭的交易;客户主动关闭订单 TRADE_SUCCESS:交易成功,且可对该交易做操作,如:多级分润、退款等 TRADE_PART_REFUND: 部分退款成功 TRADE_ALL_REFUND: 全部退款成功 TRADE_FAILD:交易失败 TRADE_UNDEPOSIT:交易成功,商户未入账,请联系客户经理处理 |
accountDate | String(10) | N | 入账的时间,格式"yyyyMMdd" 20140724 |
payerFee | Number | N | 付款方手续费。单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。 1.00 |
payeeFee | Number | N | 收款方手续费。单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。1.00 |
partnerFee | Number | N | 该笔订单的合作方手续费。单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。1.00 |
fee | Number | N | 手续费总和 单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。1.00 |
channelSendSn | String(50) | N | 发往渠道流水号 |
paygateNo | String(16) | N | 支付网关编号。9000010:银联-微信10010001:网联-微信 |
channelRecvSn | String(50) | N | 渠道返回流水号 |
cardType | String | N | 卡类型。credit:信用卡;debit:借记卡 |
extraCommonParam | String(2000) | N | 公用回传参数 商户自定义数据域,原样返回 |
isDiscount | String | N | 是否优惠 01:参加优惠,02:未参加优惠 |
totalDiscount | double | N | 参考汇总优惠金额 |
wxpayCouponInfo | String | N | 微信优惠信息 3.2.1 微信优惠信息(wxpayCouponInfo) |
wxpayCouponGoodDetail | String | N | 微信优惠商品信息 3.2.2 微信优惠商品信息(wxpayCouponGoodDetail) |
preferentialAmount | Number | N | 版本3.9及以支持 示例值:样例1.2 |
preferentialFee | Number | N | 版本3.9及以支持 示例值:样例0.02 |
marketingRuleJson | String | N | 版本3.9及以支持 |
3.2.1、微信营销(wxpayCouponInfo)
参数 | 类型(长度) | 必填 | 参数说明 |
---|---|---|---|
feeType | String | N | 标价币种,默认人民币CNY |
totalFee | Double | Y | 标价金额,订单总金额,单位为元 例:12.00 |
cashFeeType | String | N | 现金支付币种,默认CNY |
cashFee | Double | Y | 现金支付金额 :订单现金支付金额(即客户实际付款金额),单位元, 例: 1.01 |
settlementTotalFee | Double | N | 应结订单金额:当订单使用了免充值型优惠券后返回该参数,应结订单金额=订单金额-免充值优惠券金额。单位元 |
couponFee | Double | N | 代金券金额<=订单金额,订单金额-代金券金额=现金支付金额,单位元 |
ext | String(32) | N | 附录字段 |
promotionDetail | String | Y | 单品优惠活动,详细信息如下json 参考:3.2.1.1. 单品优惠活动信息(promotionDetail) |
3.2.1.1、单品优惠活动信息(promotionDetail)
参数 | 类型(长度) | 必填 | 参数说明 |
---|---|---|---|
promotionId | String(64) | Y | 券ID券或者立减优惠ID |
name | String(32) | N | 优惠名称 |
scope | String(32) | N | 优惠范围 GLOBAL- 全场代金券;SINGLE- 单品优惠 |
type | String(32) | N | 优惠类型COUPON- 代金券,需要走结算资金的充值型代金券,(境外商户券币种与支付币种一致)DISCOUNT- 优惠券,不走结算资金的免充值型优惠券,(境外商户券币种与标价币种一致 |
amount | Double | Y | 用户享受优惠的金额(优惠券面额=微信出资金额+商家出资金额+其他出资方金额 ),单位:元, 例:5.00 |
activityId | String(32) | N | 活动ID,在微信商户后台配置的批次 ID |
wxpayContribute | String(32) | N | 微信出资 特指由微信支付商户平台创建的优惠,出资金额 等于本项优惠总金额,单位为元, 例:0.00 |
merchantContribute | String(32) | N | 商户出资 特指商户自己创建的优惠,出资金额等于本项优惠总金额,单位为元, 例:0.00 |
otherContribute | String(32) | N | 其他出资 其他出资方出资金额,单位为元, 例:5.00 |
3.2.2、微信营销列表(wxpayCouponGoodDetail)
参数 | 类型(长度) | 必填 | 参数说明 |
---|---|---|---|
goodsId | String(32) | Y | 商户商品编码,由半角的大小写字母、数字、中划线、下划线中的种或几种组成 |
goodsRemark | String(256) | N | 营销单品备注 |
discountAmount | double | Y | 商品优惠金额 单品的总优惠金额,单位为元 例:1.00 |
quantity | int | Y | 用户购买的数量 |
price | double | Y | 单位为:元。如果商户有优惠,需传输商户优惠后的单价(例如:用户对一笔 100 元的订单使用了商场发的纸质优惠券 100-50,则活动商品的单价应为原单价-50) 例:5288.00 |
promotionId | String(32) | Y | 券或者立减优惠id 关联 promotionDetail.promotion_id |
4、接入方返回值定义
接入方返回参数为String,不返回和非success都为失败,如果接入方处理失败,可以返回处理失败原因,以供查找问题返回值 | 说明 |
---|---|
success | 成功 |