DTmoluo 2015-12-11 09:32 采纳率: 0%
浏览 9049

微信支付回调多次,已经返回success值

 <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.wxap.util.TenpayUtil"%>
<%@ page import="com.wxap.util.MD5Util"%>
<%@ page import="com.wxap.RequestHandler"%>
<%@ page import="com.wxap.ResponseHandler"%>
<%@ page import="com.wxap.client.TenpayHttpClient"%>
<%@page import="com.mobile.serverceInf.Mobilepay" %>
<%@page import="com.util.ConfigUtil" %>
<%@ include file="config.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
    //---------------------------------------------------------
    //微信支付通知(后台通知)示例,商户按照此文档进行开发即可
    //---------------------------------------------------------

    //创建支付应答对象

    ResponseHandler resHandler = new ResponseHandler(request, response);
    resHandler.setKey(partner_key);
    //创建请求对象
    RequestHandler queryReq = new RequestHandler(null, null);
    queryReq.init();
    if (resHandler.isTenpaySign() == true) {
        //商户订单号
        String out_trade_no = resHandler.getParameter("out_trade_no");
        //财付通订单号
        String transaction_id = resHandler
        .getParameter("transaction_id");
        //金额,以分为单位
        String total_fee = resHandler.getParameter("total_fee");
        //如果有使用折扣券,discount有值,total_fee+discount=原请求的total_fee
        String discount = resHandler.getParameter("discount");
        //支付结果
        String trade_state = resHandler.getParameter("trade_state");

        //判断签名及结果
        if ("0".equals(trade_state)) {
    //------------------------------
    //即时到账处理业务开始
    //------------------------------
    System.out.println("out_trade_no:"+out_trade_no+"total_fee:"+total_fee);
    Mobilepay mobilepay = new Mobilepay();
    mobilepay.comfirmpay(out_trade_no,""+ConfigUtil.WX);
    //处理数据库逻辑
    //注意交易单不要重复处理
    //注意判断返回金额
    //------------------------------
    //即时到账处理业务完毕
    //------------------------------

    System.out.println("即时到账支付成功");
    //给财付通系统发送成功信息,财付通系统收到此结果后不再进行后续通知
        } else {
    System.out.println("即时到账支付失败");
        }
        resHandler.sendToCFT("success");
    } else {
        System.out.println("通知签名验证失败");
        resHandler.sendToCFT("fail");
    }
%>


已经返回了success,有时候只调用1次,有的时候调用2次或5次

  • 写回答

1条回答 默认 最新

  • devmiao 2015-12-11 19:43
    关注
    评论

报告相同问题?

悬赏问题

  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用