微信支付实现案例

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

创建支付参数
转换参数(将其他的格式参数转换为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.youkuaiyun.com/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;
        }

    }

————————————————
版权声明:本文为优快云博主「xlecho」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/xlecho/article/details/80224006

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值