微信支付-同一个订单多次请求(生成二维码)方案

微信支付API上说明:

OUT_TRADE_NO_USED商户订单号重复同一笔交易不能多次提交请核实商户订单号是否重复提交

测试的时候先用微信支付得到预支付id,取消当前支付,再次付款的时候就会提示:“订单号重复


网上搜了一下,大概共有三种解决办法:


1、既然是订单号重复,那么再次付款的时候重新生成订单号就好了,但是很多时候一旦数据入库了就已经板上钉钉了,那么就有人想到既然不能动订单,那就建立第三表订单号与微信订单号建立绑定,每次传给微信的时候用第三表的id,每次重新生成就不会重复了!

http://www.knowsky.com/613912.html

2、随机数,订单号传给微信的时候带上一个随机数,然后微信回调的时候想还原订单id在修改订单的状态【楼主就是用的这种】

  1. /** 
  2.      * 产生num位的随机数 
  3.      * @return 
  4.      */  
  5.     public static String getRandByNum(int num){  
  6.         String length = "1";  
  7.         for(int i=0;i<num;i++){  
  8.             length += "0";  
  9.         }  
  10.   
  11.         Random rad=new Random();  
  12.   
  13.         String result  = rad.nextInt(Integer.parseInt(length)) +"";  
  14.   
  15.         if(result.length()!=num){  
  16.             return getRandByNum(num);  
  17.         }  
  18.         return result;  
  19.     }   
/**
	 * 产生num位的随机数
	 * @return
	 */
	public static String getRandByNum(int num){
		String length = "1";
		for(int i=0;i<num;i++){
			length += "0";
		}

		Random rad=new Random();

		String result  = rad.nextInt(Integer.parseInt(length)) +"";

		if(result.length()!=num){
			return getRandByNum(num);
		}
		return result;
	} 

  1. WxPay.getWxPayUnifiedResult(body, detail, attach, "o" + orderConfirm.getDid()+CommonUtils.getRandByNum(6), total_fee, spbill_create_ip);  
WxPay.getWxPayUnifiedResult(body, detail, attach, "o" + orderConfirm.getDid()+CommonUtils.getRandByNum(6), total_fee, spbill_create_ip);

回调:

  1. //修改订单的状态  
  2.                             //开始还原原始单号(订单号或者总订单号)  
  3.                             String out_trade_no = wxPayResult.getOut_trade_no().substring(0, wxPayResult.getOut_trade_no().length()-6);  
  4.   
  5.                             orderService.alipayNotifyPayment(out_trade_no, wxPayResult.getTransaction_id(),2);  
  6.   
  7.                             writer.write(HttpXmlUtils.backWeixin("SUCCESS","OK"));  
//修改订单的状态
							//开始还原原始单号(订单号或者总订单号)
							String out_trade_no = wxPayResult.getOut_trade_no().substring(0, wxPayResult.getOut_trade_no().length()-6);

							orderService.alipayNotifyPayment(out_trade_no, wxPayResult.getTransaction_id(),2);

							writer.write(HttpXmlUtils.backWeixin("SUCCESS","OK"));


http://www.oschina.net/question/1471623_243071

3、保证商品的描述跟订单号保持一致

http://jingyan.baidu.com/article/f79b7cb360d9379145023e62.html?st=2&os=0&bd_page_type=1&net_type=1

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值