首先,发起微信支付,在支付成功的回调里面发起单次分账。
单次分账请求结果如下:
< xml >< appid > <![CDATA[wx1db540fa86a*****]]> </ appid > < bank_type > <![CDATA[CFT]]> </ bank_type > < cash_fee > <![CDATA[4]]> </ cash_fee > < fee_type > <![CDATA[CNY]]> </ fee_type > < is_subscribe > <![CDATA[Y]]> </ is_subscribe > < mch_id > <![CDATA[155424****]]> </ mch_id > < nonce_str > <![CDATA[pFNRo46rQpjT6yv3wGZOTIIeUujaOBXL]]> </ nonce_str > < openid > <![CDATA[oqd8t00bTOgI1DdLjGsroKl*****]]> </ openid > < out_trade_no > <![CDATA[27944fd45d1a49cdbe5349304bb*****]]> </ out_trade_no > < result_code > <![CDATA[SUCCESS]]> </ result_code > < return_code > <![CDATA[SUCCESS]]> </ return_code > < sign > <![CDATA[2E6344ACD25AC53E1DAED05F6BCEBDB10221B325A8385A2EA587F20383C7432F]]> </ sign > < time_end > <![CDATA[20190927171238]]> </ time_end > < total_fee >4</ total_fee > < trade_type > <![CDATA[JSAPI]]> </ trade_type > < transaction_id > <![CDATA[42000003972019092733940*****]]> </ transaction_id > </ xml > |
分账动账通知接口代码如下:
@RequestMapping (value = "/sharingnotify" , produces = { "application/json;charset=UTF-8" }) public String sharingnotify( @RequestBody String str) { logger.debug( "异步接收微信分账结果通知,str=[" + str + "]" ); try { } catch (Exception e) { e.printStackTrace(); // todo 需要记录本次异常情况 } finally { // 这里表示已收到该服务通知 return success(); } } |
分账文档里面对接口规范的描述不太清楚,用另一种读取request输入流也收不到,所以怀疑根本没有收到分账到账通知,是不是这里通知机制和微信支付不一样?还是我的写法不对?
并没有从以下这些提示中悟出用法:
1、本接口使用微信支付V3版接口规则参见:https://wechatpay-api.gitbook.io/wechatpay-api-v3/
2、分账动账通知是以POST方法访问商户设置的通知url,通知的数据以JSON格式通过请求主体(BODY)传输。
3、该链接是通过商户平台【分账动账通知设置页面】中配置的通知url,必须为https协议。如果链接无法访问,商户将无法接收到微信通知。必须为直接可访问的url,不能携带参数。
但是接口规范里面也没有详细描述
接口自测如下图:
有人解决吗?同题!
你看看是不是因为这个原因:
Q:在商户平台设置了分账动账通知url,为什么收不到通知
A:只有分账接收方才能收到分账动账通知,分账方是不会有通知的
https://developers.weixin.qq.com/community/pay/doc/000284823e8460aada68dacca5b008?blockType=8%3FblockType%3D8%3FblockType%3D8
您好,你的理解是错误的,请按照以下几点理解这个接口:
1,分账动账,指的是分账到账或分账回退后商户金额发生的变动
2,分账动账通知,是指订单支付成功后,再调用分账接口或分账回退接口收到的通知
3,分账动账通知跟统一下单没有关系