Puntos de pago WeChat (2) - pedido de puntos de pago de consultas

Directorio de artículos


1. Introducción

Dirección del código: https://github.com/xm646236438/wechat_pay_score/tree/master
El
código y la lógica específicos de SpringBoot se pueden ver en los puntos de pago de WeChat (1) -creación de órdenes de pago y
un blog en GitHub : puntos de pago de Wechat (1) - Crear subórdenes de pago
Siguiente blog: subórdenes de pago WeChat (3) - Finalizar subórdenes de pago

2. Código

public CommonResult query(String orderNo) {
    
    
        // 参数的顺序要注意, 不然会报错
        Map<String, Object> map = new HashMap<>();
        map.put("url", createOrderUrl);
        map.put("service_id", serviceId);
        map.put("out_order_no", orderNo);
        map.put("appid", appId);
        String urlJoint = HttpUrlUtil.urlJoint(map);

        JSONObject jsonObject;
        try {
    
    
            log.info("请求参数:    " + urlJoint);
            String data = HttpRequest.get(urlJoint)
                    .header(Header.CONTENT_TYPE, "application/json")
                    .header(Header.ACCEPT, "application/json")
                    .header("Authorization", "WECHATPAY2-SHA256-RSA2048" + " "
                            + PayScore.getToken("GET", urlJoint, "", mchId, serialNo, "pem/apiclient_key.pem"))
                    .body("")
                    .execute().body();
            jsonObject = JSONObject.parseObject(data);
            System.out.println("返回参数:    " + jsonObject);
        } catch (Exception e) {
    
    
            throw new SpringExceptionResolver("500", "网络超时!");
        }
        switch (jsonObject.getString("state")) {
    
    
            case "CREATED":
                return CommonResult.fail(500, "订单未进行");
            case "DOING":
                // 当用户微信里面没有钱, 且对应绑定的银行卡里面也没有钱, 也就是说扣款失败的时候, 会返回该状态
                // 当用户的微信里面有钱了, 微信会主动扣款, 并通知我们
                return CommonResult.fail(500, "扣款失败");
            case "DONE":
                return CommonResult.success("SUCCESS", jsonObject);
            case "REVOKED":
                return CommonResult.fail(500, "订单已取消");
            case "EXPIRED":
                return CommonResult.fail(500, "订单已失效");
            default:
                return CommonResult.fail(500, "网络异常");
        }
    }

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

3, notas

1. Al solicitar, el orden de los parámetros es muy importante, la lista oficial

URL: “https://api.mch.weixin.qq.com/v3/payscore/serviceorder?service_id=500001
             &out_order_no=8416518464133&appid=wxd678efh567hg6787” 

或 

URL: “https://api.mch.weixin.qq.com/v3/payscore/serviceorder?service_id=500001
             &query_id=brnbonve1465wq3q2&appid=wxd678efh567hg6787” ;

Supongo que te gusta

Origin blog.csdn.net/qq_38637558/article/details/106324443
Recomendado
Clasificación