收藏
回答

JSAPI接口报400?

  Map params = new HashMap<>();

        //回调地址
        String callbackUrl = "https://www.weixin.qq.com/wxpay/pay.php";
        //appId

        params.put("appid", "wxc97b***********793");

        //商户号
        params.put("mchid", "16******73");

        //商品简单描述,该字段请按照规范传递,具体请见参数规定
        params.put("description", "商品信息");
        // 商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*@ ,且在同一个商户号下唯一。详见商户订单号
        params.put("out_trade_no", "000OI20230309619581952910950400");
        //支付金额
        Map amount = new HashMap<>();
        amount.put("total",1);
        amount.put("currency","CNY");
        params.put("amount", amount);
        //微信返回的用户openid
        Map payer = new HashMap<>();
        payer.put("openid","oIjI35FU******Qrca7k5bhiU4");
        params.put("payer",payer);
        //异步接收微信支付结果通知的回调地址,通知url必须为外网可访问的url,不能携带参数。
        params.put("notify_url", callbackUrl);
        System.out.println(JSONObject.toJSONString(params));
        String post = getToken("POST", "/v3/pay/transactions/jsapi", JSONObject.toJSONString(params));
        String authorization ="WECHATPAY2-SHA256-RSA2048"+post;
        System.out.println("获取签名==========================");
        System.out.println(authorization);
        String prepayId = HttpRequestUtils.HttpPostWithJson("https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi",JSONObject.toJSONString(params),authorization);
        System.out.println(prepayId);


最后一次编辑于  2023-03-22
回答关注问题邀请回答
收藏
登录 后发表内容