微信支付实现案例

xl_echo编辑整理,欢迎转载,转载请声明文章来源。更多IT、编程案例、资料请联系QQ:1280023003
百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!


微信支付实现主要分为以下几个步骤:

  • 创建支付参数
  • 转换参数(将其他的格式参数转换为xml格式)
  • 获取结果

支付结果显示也是以上三个步骤,以下为代码实现。【我们可以参照微信支付API文档开发】
以下是调用支付,完成支付二维码生成的文档
这里写图片描述
这里写图片描述
这里写图片描述
调用支付,完成支付二维码生成的实体代码

@Override
    public Map createNative(String out_trade_no, String total_fee) {

        //1、创建参数(可以使用Map封装,微信有工具类能够直接将Map转换为xml)
        Map param = new HashMap<>();//创建参数

        param.put("appid", 公众号);//公众号
        param.put("mch_id", 商家号);//商家号
        param.put("nonce_str", WXPayUtil.generateNonceStr());//随机字符串,微信内置Util
        param.put("body", "xlecho");//商品描述
        param.put("out_trade_no", 雪花算法生成);//商户订单号
        param.put("total_fee", 10000);//标价金额
        param.put("spbill_create_ip", "127.0.0.1");//终端IP域名,这里只是模拟
        param.put("notify_url", "https://blog.csdn.net/xlecho");//通知地址(可以随便写)
        param.put("trade_type", "NATIVE");//交易类型

        try {
            //2、生成要发送的xml
            String xmlParam = WXPayUtil.generateSignedXml(param, partnerkey);
            System.out.println(xmlParam);
            HttpClient client = new HttpClient("https://api.mch.weixin.qq.com/pay/unifiedorder");//参数传输地址
            client.setHttps(true);//使用的是https协议
            client.setXmlParam(xmlParam);
            client.post();

            //3、获得结果
            String result = client.getContent();
            System.out.println(result);
            Map<String, String> resultMap = WXPayUtil.xmlToMap(result);
            Map map=new HashMap<>();
            map.put("code_url", resultMap.get("code_url"));//支付地址
            map.put("total_fee", total_fee);//总金额
            map.put("out_trade_no",out_trade_no);//订单号
            return map;
        } catch (Exception e) {
            e.printStackTrace();
            return new HashMap<>();
        }

    }

获取支付结果AIP文档
这里写图片描述

获取支付结果代码

@Override
    public Map queryPayStatus(String out_trade_no) {
        //创建查询参数
        Map param = new HashMap<>();
        param.put("appid", 公众账号 ID);//公众账号 ID
        param.put("mch_id", 商户号);//商户号
        param.put("out_trade_no", 雪花算法生成);//订单号
        param.put("nonce_str", WXPayUtil.generateNonceStr());//随机字符串
        String url="https://api.mch.weixin.qq.com/pay/orderquery";

        //生成并发送xml
        try {
            String xmlParam = WXPayUtil.generateSignedXml(param, partnerkey);
            HttpClient client=new HttpClient(url);
            client.setHttps(true);
            client.setXmlParam(xmlParam);
            client.post();

            //获得结果
            String result = client.getContent();
            Map<String, String> map = WXPayUtil.xmlToMap(result);
            System.out.println(map);
            return map;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }

    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xlecho

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值