重新支付

1、在order页面判断在未支付的情况的下点击“登录支付宝重新付款”实现重新付款

  <script type="text/javascript">
                function openLink(outTradeNo){
                alipayForm.target = "newWindow";
                var win = window.open("replayOrder?outTradeNo=" + outTradeNo, "newWindow");
                win.focus();
                window.location.href="initGoods";
                }
   </script>
 <form name="alipayForm" th:object="${alipayForm}" action="replayOrder" method="get">
    <div th:if="${#strings.isEmpty(order.isPaid)}">
                <span>未付款</span>
        <input type="button" 
               th:onclick="${#strings.concat('openLink(''').concat(order.outTradeNo).concat(''')')} 
                class="button" th:value="登录支付宝重新付款" />
   </div>

2、通过点击按钮执行下列代码,实现跳转到支付宝页面进行支付,

@RequestMapping(value = "replayOrder", method = RequestMethod.GET)
    public String replayAlipayOrder(Model model, AlipayForm alipayForm, HttpSession session, Device device) {
    GoodsForm goodsForm=new GoodsForm();
    List<GoodsForm> commodityType = goodsService.getType();
    goodsForm.setCommodityTypeId(commodityType.get(0).getCommodityTypeId());
    model.addAttribute("goodsForm", goodsForm);
    model.addAttribute("commodityType", commodityType);
    log.info("重新支付");
    AlipayForm result = cartService.searchAlipayHistory(alipayForm);
    alipayForm.setOutTradeNo(result.getOutTradeNo());
    alipayForm.setBody(result.getBody());
    alipayForm.setPrice(result.getPrice());
    alipayForm.setReceiveAddress(result.getReceiveAddress());
    alipayForm.setReceiveMobile(result.getReceiveMobile());
    alipayForm.setReceiveName(result.getReceiveName());
    alipayForm.setReceivePhone(result.getReceivePhone());
    alipayForm.setReceiveZip(result.getReceiveZip());
    alipayForm.setShowUrl(result.getShowUrl());
    alipayForm.setSubject(result.getSubject());
    model.addAttribute("alipayForm", alipayForm);
    CartForm cartForm = new CartForm();
    UVO uvo = (UVO)session.getAttribute("UVO");
    if (uvo == null || StringUtils.isEmpty(uvo.getGuestId())) {
    return "redirect:/initGuestLogin";
    }
    cartForm.setGuestId(uvo.getGuestId());
    model.addAttribute("cartList", cartService.searchCartList(cartForm));
//    model.addAttribute("orderList", cartService.searchOrderList(cartForm));
    if (device.isNormal()) {
        model.addAttribute("sHtmlText", alipayRequestWeb(alipayForm));
} else {
        model.addAttribute("sHtmlText", alipayRequestMobile(alipayForm));
}
return "manager/charge/alipay";
    }

3、在跳转到支付成功页面之前会先执行下列代码,

@RequestMapping(value = "initPayResult", method = RequestMethod.GET)
public String initPayResult(Model model, HttpSession session, ReturnForm returnForm, Device device) {
log.info("支付宝处理完毕后返回商户网站");
UVO uvo = (UVO)session.getAttribute("UVO");
CartForm cartForm = new CartForm();
if (uvo != null) {
cartForm.setGuestId(uvo.getGuestId());
} else {
uvo = new UVO();
session.setAttribute("UVO", uvo);
}
    model.addAttribute("cartList", cartService.searchCartList(cartForm));
if (device.isNormal()) {
model.addAttribute("returnForm", returnForm);
return "shop/cart/cart-3";
} else {
return "mobile/alipay/payResult";
}
}

4、支付成功会跳转到cart-3,在页面上显示恭喜您,支付成功的字样提示。

<div class="container main">
<p class="breadNav"><a href="#">首页</a><i>&gt;</i>个人中心</p>
<div class="row">
<div class="col-md-2 ceterL">
<ul class="centerMenu cf ">
<li ><a href="order">我的订单</a><i></i></li>
<li class="curr"><a href="initCart">我的购物车</a><i></i></li>
<li><a href="initReceive">地址管理</a><i></i></li>
</ul>
</div>
<div class="col-md-10 ceterR">
<ul class="progressBar cf mt15">
<li class="curr"><i class="yh">1</i>我的购物车</li>
<li class="curr"><i class="yh">2</i>填写收货地址并支付</li>
<li class="curr"><i class="yh">3</i>下单成功</li>
</ul>
    <div class="buySuccess tc">
<i class="ico-succ"></i>
<h4 class="regTips yh">恭喜您,购买成功!</h4>
<p class="yh">您的订单编号为:<i class="red" th:text="${returnForm.out_trade_no}"></i></p>
</div>
<!-- 购买成功 -->
</div>
</div>


转载于:https://my.oschina.net/u/2413996/blog/488968

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值