赞
踩
一:在支付时,可能由于用户的手机卡顿,或者一直停留在支付页面不输入支付密码的情况,这时候就需要我们手动去关闭此次交易,可以使用定时任务,规定用户在30分钟之内进行支付完成,如果没有支付完成,就会关闭次交易
二:示例代码
- @RequestMapping("/closeOrder")
- public void closeOrder(String orderid) {
- System.out.println( orderid );
- try {
- AlipayClient alipayClient = new DefaultAlipayClient( constant.serverUrl,
- constant.appId,
- constant.privateKey,
- constant.format,
- constant.charset,
- constant.PublicKey,
- constant.signType
- );
- AlipayTradeCloseRequest request = new AlipayTradeCloseRequest();
- JSONObject bizContent = new JSONObject();
- bizContent.put( "out_trade_no", orderid );
- request.setBizContent( bizContent.toString() );
- AlipayTradeCloseResponse response = alipayClient.execute( request );
- if (response.isSuccess()) {
- System.out.println( "关闭订单调用成功" );
- } else {
- System.out.println( "关闭订单调用失败" );
- }
- } catch (AlipayApiException e) {
- e.printStackTrace();
- }
- }
三:测试
数据库添加一条订单
支付测试,但是不输入密码!!!,模拟用户卡顿或者故意为之
如果用户在这个页面超过30分钟没有输入密码,就可以使用定时任务去调用关闭订单接口
控制台输出:
这个时候用户再去输入密码进行支付就不可以了,因为已经修改了订单的交易状态
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。