使用Bmob后端云实现的微信支付(后端处理),如何防止重复通知/多次回调

其他 专栏收录该内容
5 篇文章 0 订阅

1、复制云函数的完整调用链接

2、将该链接配置为支付成功异步通知的url

3、云函数处理逻辑

        先查看微信支付的开发文档,防止处理逻辑有所遗漏导致一些不必要的麻烦

        下面有我测试的案例,经过我多次测试才找到正确的方法

// request.getParams()获取携带的参数,参数如下:
// {"out_trade_no":"商户单号","trade_status":"1","trade_no":"交易单号"}
JSONObject paramsObj = request.getParams();

// 查询支付订单信息,参数如下:
HttpResponse res = modules.oData.payQuery(paramsObj.getString("out_trade_no"));

if(该订单还未处理) { // 必须判断,防止同个订单被多次处理
    
    // 处理数据...
    
    // 反馈给微信服务器,这一步很重要
    // 测试1:失败,重复通知
    // response.send("<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>");
    // 测试2:失败,重复通知
    // response.send("<xml><return_code>SUCCESS</return_code><return_msg>OK</return_msg></xml>");
    // 测试3:失败,重复通知
    // response.send(true);
    // 测试4:失败,重复通知
    // return;

    // 测试5:成功,微信已响应并停止继续通知
    response.send("SUCCESS");
}

 

 

 

  • 6
    点赞
  • 0
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

Homilier

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值