`
bosschen
  • 浏览: 197324 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

微信支付提示:同一笔交易不能多次提交

 
阅读更多

先声明:文章转自这位朋友的:http://blog.csdn.net/xb12369/article/details/50587939

 

 

微信支付API上说明:

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

 

 

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

 

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

 

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

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

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

 

[java] view plain copy
 
  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.     }   

 

[java] view plain copy
 
  1. WxPay.getWxPayUnifiedResult(body, detail, attach, "o" + orderConfirm.getDid()+CommonUtils.getRandByNum(6), total_fee, spbill_create_ip);  


回调:

 

 

[java] view plain copy
 
  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"));  



 

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

分享到:
评论

相关推荐

    调用微信支付接口:main方法示例工具类

    调用微信支付接口:main方法示例工具类

    Java实现微信支付/微信退款/企业微信转账

    微信网页支付:是指在微信中打开的网页,在其他浏览器中打开的网页不可使用,由于需要先实现微信授权,所以必须在微信中打开页面 企业微信转账:包括企业商户号转账到个人的余额钱包,企业商户号转账到银行卡

    java微信支付工具类v3版:微信支付v3版+微信退款v3版+微信交易状态查询+企业打款

    微信支付工具类v3版 包含: 1. 微信支付v3版 2. 微信退款v3版 3. 微信交易状态查询 4. 企业打款到个人零钱(旧版) 本人在企业项目中使用,自己封装的的微信交易相关的一套工具类。 直接调用方法传入对应的参数即可...

    微信支付+支付宝支付

    主要涉及的接口包括统一下单( UnifiedOrder)接口,用于生成预支付交易会话标识,然后在客户端调起微信支付。此外,还有订单查询、退款申请等接口。 2. **支付宝支付**: 集成支付宝支付同样需要在支付宝开放平台...

    微信h5支付“网站域名ICP备案主体与商户号主体不一致”的解决方法,H5微信支付 授权函下载

    而商户号则是微信支付为商家提供的一个唯一标识,用于识别和管理商家在微信支付平台的交易。 其次,准备“授权函”。当出现不一致的情况时,微信支付提供了授权函这一解决方案。授权函是一份法律文件,表明域名备案...

    SpringBoot集成H5微信支付宝支付

    在现代的互联网应用中,支付接口的集成是不可或缺的一部分,特别是在电商、O2O等领域。本文将详细讲解如何使用SpringBoot框架集成H5版的微信和支付宝支付功能,以实现安全、便捷的在线交易。 首先,我们需要理解...

    微信支付(暂时实现了扫码支付、app支付、h5支付、回调辅助函数)

    微信支付是腾讯公司推出的在线支付服务,主要用于移动应用和网页交易。这个压缩包"wxpay_sdk-master"似乎是一个Python版本的微信支付SDK实现,涵盖了扫码支付、APP支付、H5支付以及回调辅助函数等核心功能。以下是...

    微信支付demo 最新版 V3.3.7 有微信支付加 微信回调所有程序 可直接运行

    Demo可能包含生成支付二维码、唤起微信支付控件等功能的代码,这些都是用户实际支付过程中不可或缺的部分。 9. **支付结果通知**:成功支付后,商家需要向用户显示支付结果,这可能通过网页跳转、弹窗提示等方式...

    微信支付javaSpringboot对接开发微信支付

    ### 微信支付Java SpringBoot对接开发详解 #### 一、微信支付配置申请 在进行微信支付集成前,首先需要完成微信支付的基本配置申请。这一步骤至关重要,因为只有完成配置后才能获得接入所需的凭证信息。 1. **...

    微信支付Java后台

    微信支付Java后台是一个基于Spring和Maven框架的项目,用于实现与微信支付接口的集成,以便在业务系统中处理支付相关的事务。对于新手开发者来说,理解并实施这样的系统可能具有一定的挑战性,但也是一个很好的学习...

    PHP实现微信支付,支付宝支付对接

    1.微信中访问链接直接支付,2.浏览器中(PC或H5)访问链接,产生支付二维码使用微信扫码支付。支付宝也包含两种支付方式:1.手机访问链接,调用支付宝APP进行支付;2.电脑访问链接,产跳转到支付宝官网产生付款码...

    微信支付获取预支付交易会话标识prepay_id完整代码

    在微信支付过程中,获取预支付交易会话标识`prepay_id`是至关重要的一步,它在微信支付的流程中起到桥梁的作用,连接了商家服务端和客户端(App、H5等)的支付交互。`prepay_id`是在调用微信支付接口前必须获取的...

    ASP.NET微信支付开发SDK支付

    ASP.NET微信支付开发SDK是用于在ASP.NET平台上集成微信支付功能的一个工具包,它使得开发者能够轻松地在自己的网站或应用程序中实现微信支付的功能。微信支付是中国最受欢迎的移动支付方式之一,广泛应用于线上购物...

    Asp微信支付接口V5_Asp微信支付接口V5_

    Asp微信支付接口V5是针对ASP(Active Server Pages)开发环境设计的一种微信支付解决方案,它使得ASP开发者能够轻松地集成微信支付功能到他们的网站或应用程序中。在使用这个接口时,开发者需要对微信支付的相关协议...

    springboot整合微信支付,拿来即用

    3. **调用API**: 使用SDK提供的方法,例如`统一下单`接口(UnifiedOrder)来生成预支付交易会话标识,这个标识将在前端页面中用于调起微信支付。 4. **Thymeleaf前端整合**: Thymeleaf是一个现代的服务器端HTML模板...

    微信支付后端示例_微信小程序模板js代码前台前端H5页面源码+后台源码.rar

    微信支付是腾讯公司推出的一种移动支付方式,广泛应用于微信小程序、H5页面以及各类移动应用中。本示例提供的是微信支付的后端实现,包括微信小程序模板的JS代码、前端H5页面源码以及后台源码,为开发者提供了一个...

    WxJava - 微信开发 Java SDK,支持微信支付、开放平台、公众号、企业号企业微信、小程序等的后端开发.zip

    微信Java开发工具包,支持包括微信支付、开放平台、公众号、企业微信/企业号、小程序等微信功能模块的后端开发。 Maven 引用方式 注意:最新版本(包括测试版)为 Maven Central... 企业号/企业微信:weixin-java-cp

    C#源码,支付宝和微信支付API,支付成功返回消息提示

    【C#源码,支付宝和微信支付API,支付成功返回消息提示】 在现代电商和互联网应用中,支付接口是不可或缺的一部分。本项目提供C#语言编写的支付宝(Alipay)和微信(WeChat Pay)支付API,使得开发者能够轻松集成这...

    JAVA微信支付完成的demo.rar

    1. 微信支付SDK:后端使用微信支付SDK与微信服务器进行通信,获取预支付交易会话标识(prepay_id)。这通常涉及到API调用,如统一下单接口。 2. 统一下单接口:后端向微信服务器发送订单信息,包括商品描述、金额、...

    微信支付带发货接口

    微信支付是腾讯公司推出的一种在线支付方式,广泛应用于各类线上线下交易场景。在微信支付的生态系统中,"微信支付带发货接口"是商家实现订单处理、资金结算和物流配送的重要环节。这个接口允许商家在用户支付成功后...

Global site tag (gtag.js) - Google Analytics