2、查询退款的实现应用场景:
提交退款申请后,通过调用该接口查询退款状态 。退款有一定延时,用零钱支付的退款20分钟内到账,银行卡支付的退款3个工作日后重新查询退款状态 。(退款有延迟,可通过轮询来判断是否成功退款)
注意:如果单个支付订单部分退款次数超过20次请使用退款单号查询
退款状态变化:
文章插图
查询退款接口具体实现:
@GET@Path(value = "https://www.goobye.net/queryRefund")@Produces(MediaType.APPLICATION_JSON)public Response queryRefund(@QueryParam("outTradeNo") String outTradeNo){Map result = new HashMap();try{// 1、查询退款Map paramMap = new HashMap<>();paramMap.put("appid", appid);// 公众账号IDparamMap.put("mch_id", mchid);// 商户号paramMap.put("nonce_str", WXPayUtil.generateNonceStr());// 随机字符串paramMap.put("out_trade_no", outTradeNo + "");// 商户订单号String sign = WXPayUtil.generateSignature(paramMap, paternerKey);paramMap.put("sign", sign);// 签名WXPay wxpay = new WXPay(MyConfig.getInstance());Map resp = wxpay.refundQuery(paramMap);if("FAIL".equals(resp.get("return_code"))){throw new RuntimeException("return_code为fail, " + resp.get("return_msg"));}if("FAIL".equals(resp.get("result_code")) && !"订单已全额退款".equals(resp.get("err_code_des"))){throw new RuntimeException("result_code为fail, " + resp.get("err_code_des"));}// 2、成功退款后的操作流程......result.put("code", SUCCESS);}catch(Exception e){e.printStackTrace();result.put("code", ERROR);result.put("msg", e.getMessage());}return Response.ok(result).build();}
- 你的微信聊天记录 微信聊天记录在哪个文件夹里
- 微信拍一拍怎么用 微信怎么拍人
- 拍一拍怎么设置或关闭 关闭拍一拍
- 【游戏迷】烹饪模拟游戏《烹饪服务永恒》登陆steam
- 【游戏迷】游戏版号终于下发了,开发商高兴程度溢于言表
- 18禁经典改编手游
- 【游戏世界】《战地2042》开发者暂停《战地2042》季票发售
- 辽宁,14岁女孩玩手游充6万后自杀,家人与游戏代理方协商退款未果
- 游戏开发商为了自闭症儿童推出重制版手游
- 80后开发街机手游