关于微信重复回调的问题

最近在做一个微信支付的业务,在处理支付成功后续业务的时候,老是出现重复回调的问题,这个问题困扰了我很久。最后发现居然是@RestController的问题,在类注解上面的@RestController会将结果变成Json格式,但是这样和微信的xml结果返回值有冲突,只需要给微信回复一个String格式的xml即可。同时,将@RestController改为@Controller。代码如下:

    BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
    msg = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]> 
            </return_msg></xml>";
    out.write(msg.getBytes());
    out.flush();
    out.close();

注意要尽快回复微信,最好在处理业务之前就回复,否则可能因为处理业务耗费时间超过微信那边等待时间,导致重复回调。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信支付回调url设置是指在接入微信支付功能时,商户需要设置一个url地址,用于接收微信服务器发送的支付结果通知。当用户在微信客户端完成支付后,微信服务器通过该url向商户服务器发送一个HTTP POST请求,将支付结果通知传递给商户。 商户在设置回调url时,需要注意以下几点: 1. 回调url必须是公网可访问的URL地址,且支持HTTPS协议,以确保支付结果可以正常传递给商户。 2. 回调url需要由商户自行搭建的服务器来接收,并处理微信服务器发送的支付结果通知。商户需要根据微信支付接口文档定义的接口规范来解析和处理通知数据。 3. 商户在回调url上要防范恶意攻击,确保接收到的支付结果通知是来自微信服务器,并对通知进行验证,以防止数据篡改和仿冒攻击。 4. 商户需要保证回调url的稳定性和可靠性,确保能及时响应和处理微信服务器发送的支付结果通知,并且能处理重复通知、处理失败的情况。 5. 商户还可以在回调url中对支付成功的订单做进一步的业务处理,例如更新订单状态、发送确认消息等。 总而言之,微信支付回调url的设置对于商户来说是非常重要的,它是实现支付结果通知和订单处理的关键环节,商户需要根据微信支付接口文档的要求,合理设置和处理回调url,以确保支付流程的正常进行和安全可靠。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值