项目总结(1) SpringMVC 接入 支付宝api

  1. 首先要看看基本的入门教程  https://www.bilibili.com/video/av39439872/?p=9&t=195
  2. 实际开发遇到的坑:
    1. 因为支付宝给的demo 是在把一个form 表单提交到alipay.trade.page.pay.jsp,alipay.trade.page.pay.jsp再使用request.getParam的方式获得订单号,价格等信息,但是我的alipay.trade.page.pay.jsp是放在web-inf下的,所以需要在购物车页面将数据提交到后台,后台再把数据传到alipay.trade.page.pay.jsp(这里主要写将数据传到alipay.trade.page.pay.jsp,其他逻辑先不讨论)。所以,controller 就需要将返回值设置为modelAndView,具体代码如下
      
          @RequestMapping("pay")
          public ModelAndView pay(Integer num,   Integer price)   {
              //前端页面传过来了两个参数,将他们转换成字符串,其实也可以不用,应为addObject 的第二个参数是object,
              //传进去Integer 没有什么关系,在后边使用到的时候也会自动转换成String的。        
              String numIn = num +"";
              String priceIn = price + "";
              ModelAndView mv = new ModelAndView("alipay/alipay.trade.page.pay");
              mv.addObject("WIDout_trade_no",  Long.toString(System.currentTimeMillis()));
              mv.addObject("WIDsubject", numIn+"");
              mv.addObject("WIDtotal_amount", priceIn + "");
              mv.addObject("WIDbody",  String.valueOf(System.currentTimeMillis()));
              return mv;
          }

       

    2. 因为我不是使用form表单直接提交到alipay.trade.page.pay.jsp,所以原生的alipay.trade.page.pay.jsp是无法拿到后台传递过来的值的。需要对其进行修改,具体如下,主要是下边这四句

      //商户订单号,商户网站订单系统中唯一订单号,必填
      	String str = (String)request.getAttribute("WIDout_trade_no");
      	String out_trade_no = str;
      	//付款金额,必填
      	String total_amount =    (String)request.getAttribute("WIDtotal_amount") ;
      	//订单名称,必填
      	String subject =    (String)request.getAttribute("WIDsubject");
      
      	String body =  (String)request.getAttribute("WIDbody");
      

       

其他就没有什么特别的了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值