微信支付NATIVE

news/2024/7/4 1:46:09 标签: 微信, android

native支付官方文档v2:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1

native支付用于常规的网页支付

@RestController
@RequestMapping("/payment")
public class PaymentController {
    private User user = new User(1,"cc","123");

    private Integer orderId = 1;

    @Autowired
    OrderService orderService;
    @Autowired
    CcWxPayConfig wxPayConfig;

 

    @GetMapping("/native")
    public void nativePayment(HttpServletResponse response) throws Exception {
        Order order = orderService.getById(orderId);
        String amount = order.getAmount().multiply(new BigDecimal("100")).intValue()+"";

        WXPay wxPay = new WXPay(wxPayConfig);
        HashMap<String, String> map = new HashMap<>();
        map.put("nonce_str", WXPayUtil.generateNonceStr());
        map.put("body","商品描述");
        map.put("out_trade_no",order.getOrderNo());
        map.put("total_fee",amount);
        map.put("spbill_create_ip","127.0.0.1");
        map.put("notify_url","https://127.0.0.1");
        map.put("trade_type","NATIVE");


        String sign = WXPayUtil.generateSignature(map,wxPayConfig.getMiniKey());
        map.put("sign",sign);

        Map<String, String> result = wxPay.unifiedOrder(map);
        String prepayId = result.get("prepay_id");
        // 支付连接
        String codeUrl = result.get("code_url");

//        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();


        ServletOutputStream outputStream = response.getOutputStream();
        QrCodeUtil.generate(codeUrl,300,300,"jpg",outputStream);

       outputStream.close();



    }




    @GetMapping("/searchOrder")
    public void searchOrderStatus() throws Exception {
        Order order = orderService.getById(this.orderId);
        HashMap<String, String> map = new HashMap<>();
        map.put("appid",wxPayConfig.getMiniAppId());
        map.put("mch_id",wxPayConfig.getMiniMchId());
        map.put("out_trade_no",order.getOrderNo());
        map.put("nonce_str",WXPayUtil.generateNonceStr());
        String sign = WXPayUtil.generateSignature(map,wxPayConfig.getMiniKey());
        map.put("sign",sign);
        WXPay wxPay = new WXPay(wxPayConfig);
        Map<String, String> result = wxPay.orderQuery(map);
        String returnCode = result.get("return_code");
        String resultCode = result.get("result_code");

        System.out.println("resultCode = " + resultCode);
        System.out.println("returnCode = " + returnCode);

        String tradeStatus = result.get("trade_state");

        System.out.println("tradeStatus = " + tradeStatus);

    }


}

http://www.niftyadmin.cn/n/5132993.html

相关文章

业务设计——海量订单数据如何存储和查询

冷热数据架构 假设我们考虑 12306 单个假期的人流量为 2 亿人次&#xff0c;这一估算基于每年的三个主要假期&#xff1a;五一、国庆和春节。这些假期通常都有来回的流动&#xff0c;因此数据存储与计算的公式变为&#xff1a;2 * (3*2) 12 亿&#xff0c;即每年的假期总人次达…

微机原理:汇编语言程序设计

文章目录 一、汇编格式1、文字简述2、代码表述 二、汇编语言结构说明1、方式选择伪指令2、段定义语句3、段约定语句4、汇编结束语句5、返回DOS语句 三、实例1、例子2、汇编语言程序开发过程 四、功能调用DOS功能调用1、功能号01H2、功能号02H3、功能号09H4、功能号0AH5、举例 B…

第三次ACM校队周赛考核题+生活随笔

本周ACM校队周赛考核题 1.简单数学&#xff08;签到题&#xff09; 题目&#xff1a; Joker想要买三张牌&#xff0c;但是三张牌太少了&#xff0c;老板不卖&#xff0c;除非Joker算出老板给出的数学题。 现在老板给出t组数据&#xff0c;每一组数据有三个数a,b,c&#xff0c…

MySQL数据库 #5

文章目录 一、Python操作MySQL1.pymysql的基本操作2.pymysql补充说明1.查看补充2. 增删改&#xff0c;自动确认 3.SQL注入问题1.输入对的用户名就可登录2.输入错的用户名也可以登录针对上述的SQL注入问题&#xff0c;核心在于手动拼接了关键数据 二、视图1.什么是视图2. 为什么…

12、SpringCloud -- redis库存和redis预库存保持一致、优化后的压测效果

目录 redis库存和redis预库存保持一致问题的产生需求:代码:测试:优化后的压测效果之前的测试数据优化后的测试数据redis库存和redis预库存保持一致 redis库存是指初始化是从数据库中获取最新的秒杀商品列表数据存到redis中 redis的预库存是指每个秒杀商品每次成功秒杀之后…

深度强化学习用于博弈类游戏-基础测试与说明【1】

深度强化学习用于博弈类游戏-基础【1】 1. 强化学习方法2. 强化学习在LOL中的应⽤2.1 环境搭建2.2 游戏特征元素提取1)小地图人物位置&#xff1a;2)人物血量等信息3)在整个图像上寻找小兵、防御塔的位置4&#xff09;自编码器提取 3. 策略梯度算法简介参考资料 1. 强化学习方法…

2.11、自定义图融合过程与量化管线

introduction 介绍如何自定义量化优化过程,以及如何手动调用优化过程 code from typing import Callable, Iterableimport torch import torchvisionfrom ppq import (BaseGraph, QuantizationOptimizationPass,QuantizationOptimizationPipeline, QuantizationSetting,Tar…