支付宝生成收款码


        <dependency>
            <groupId>com.alipay.sdk</groupId>
            <artifactId>alipay-sdk-java</artifactId>
<!--            <version>4.9.124.ALL</version>-->
            <version>4.10.97.ALL</version>
            <!--            3.7.110.ALL-->
        </dependency>


 @PostMapping("/aliyun/getPayAliyunqrcode")
    public ApiResult aliyunPay(@RequestBody PayDTO dto){
        FrOrderPO frOrderPO = frOrderMapper.selectById(dto.getOrderId());
        if(frOrderPO != null){
            try {
                log.info("开始调用支付宝生成支付二维码...");
                //实例化客户端
                AlipayClient alipayClient = new DefaultAlipayClient(PayConfigUtil.aliUrl, alipayAppKey
                        , aliAppPrivateKey, "json", "utf-8", alipayPublicKey, "RSA2");
                //设置请求参数
                AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();
                AlipayTradePrecreateModel model = new AlipayTradePrecreateModel();
                model.setOutTradeNo("ZUX" + RandomUtils.randomFlowNo());

                // 真正支付的金额
                model.setTotalAmount(dto.getPrice());
                model.setSubject(frOrderPO.getOrderName());
                //如果没有店铺号可不设置
                model.setStoreId("9527");
                model.setQrCodeTimeoutExpress("10m");
                request.setBizModel(model);
                //支付宝异步通知地址
//                request.setNotifyUrl(PayConfigUtil.aliNotifyUrl);
                request.setNotifyUrl(aliNotifyUrl);
                log.info("创建支付宝订单,请求参数:{} ", JSONObject.toJSONString(request));
                //调用接口
                AlipayTradePrecreateResponse response = alipayClient.execute(request);

                // 支付相关逻辑。。。

                return ApiResult.ok(response.getQrCode());
            }catch (Exception e){
                e.printStackTrace();
            }
        }

        return ApiResult.error();
    }

 @PostMapping("/aliyun/aliyunnotify")
    public String aliyunnotify(Map<String, String> param,HttpServletRequest request){
        log.info("支付宝异步回调接口数据处理");
        log.info(param.toString());
        String tradeStatus = request.getParameter("trade_status"); // 交易状态
        log.info("交易状态:" + tradeStatus);
        String outTradeNo = request.getParameter("out_trade_no"); // 商户订单号
        log.info("商户订单号:" + outTradeNo);
        String tradeNo = request.getParameter("trade_no"); // 支付宝订单号
        log.info("支付宝订单号:" + tradeNo);
        String totalAmount = request.getParameter("total_amount"); // 支付金额
        log.info("支付金额:" + totalAmount);

        FrOrderPO frOrderPO =  frOrderMapper.findByTradeNoIs(outTradeNo);
        if(frOrderPO != null){
           // 调起支付的相关逻辑
            return "success";
        }
        //只有支付成功后,支付宝才会回调应用接口,可直接获取支付宝响应的参数
        //可对支付宝响应参数AlipayTradeQueryResponse进行处理
        return "fail";
    }


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

饭酱

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

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

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

打赏作者

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

抵扣说明:

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

余额充值