wustgaj 2019-04-22 18:46 采纳率: 0%
浏览 6747

支付宝沙箱测试支付成功后,跳转回调界面return_url报错

【问题描述】支付宝沙箱测试支付成功后,跳转回调界面return_url报错:系统有点儿忙,一会儿再试试。 错误码:SYSTEM_ERROR

图片说明

图片说明

图片说明

图片说明

@Controller

@RequestMapping("/Alipay")

public class AlipayController {
@RequestMapping(value="/goPay", method={RequestMethod.POST})

@ResponseBody

public String goPay(ModelMap map, HttpServletRequest request, HttpServletResponse response) throws Exception{

    //获得初始化的AlipayClient
    AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, "json", AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);

    //设置请求参数
    AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
    alipayRequest.setReturnUrl(AlipayConfig.return_url);
    alipayRequest.setNotifyUrl(AlipayConfig.notify_url);

    //商户订单号,商户网站订单系统中唯一订单号,必填
    String out_trade_no =new String(request.getParameter("WIDout_trade_no").getBytes("ISO-8859-1"),"UTF-8");
    //付款金额,必填
    String total_amount = new String(request.getParameter("WIDtotal_amount").getBytes("ISO-8859-1"),"UTF-8");
    //订单名称,必填
    String subject =new String(request.getParameter("WIDsubject").getBytes("ISO-8859-1"),"UTF-8");
    //商品描述,可空
    String body = new String(request.getParameter("WIDbody").getBytes("ISO-8859-1"),"UTF-8");
    alipayRequest.setBizContent("{\"out_trade_no\":\""+ out_trade_no +"\"," 
            + "\"total_amount\":\""+ total_amount +"\"," 
            + "\"subject\":\""+ subject +"\"," 
            + "\"body\":\""+ body +"\"," 
            + "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");

    //请求
    String result = alipayClient.pageExecute(alipayRequest).getBody();


    return result;
}

@RequestMapping(value = "/alipayReturnNotice")

public ModelAndView alipayReturnNotice(HttpServletRequest request, HttpServletRequest response) throws Exception {


    System.out.println("支付成功, 进入同步通知接口...");
    //获取支付宝GET过来反馈信息
    Map<String,String> params = new HashMap<String,String>();
    Map<String,String[]> requestParams = request.getParameterMap();
    for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext();) {
        String name = (String) iter.next();
        String[] values = (String[]) requestParams.get(name);
        String valueStr = "";
        for (int i = 0; i < values.length; i++) {
            valueStr = (i == values.length - 1) ? valueStr + values[i]
                    : valueStr + values[i] + ",";
        }
        //乱码解决,这段代码在出现乱码时使用
        valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");
        params.put(name, valueStr);
    }

    boolean signVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.alipay_public_key, AlipayConfig.charset, AlipayConfig.sign_type); //璋冪敤SDK楠岃瘉绛惧悕

    ModelAndView mv = new ModelAndView("alipay/return_url");

    if(signVerified) {
        //商户订单号
        String out_trade_no = new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"),"UTF-8");

        //支付宝交易号
        String trade_no = new String(request.getParameter("trade_no").getBytes("ISO-8859-1"),"UTF-8");

        //付款金额
        String total_amount = new String(request.getParameter("total_amount").getBytes("ISO-8859-1"),"UTF-8");

        // 修改叮当状态,改为 支付成功,已付款; 同时新增支付流水
        //寰呮坊鍔爋rderService.updateOrderStatus(out_trade_no, trade_no, total_amount);


        //Orders order = orderService.getOrderById(out_trade_no);
        //Product product = productService.getProductById(order.getProductId());

//
// log.info("********************** 支付成功(支付宝同步通知) **********************");
// log.info("* 订单号: {}", out_trade_no);
// log.info("* 支付宝交易号: {}", trade_no);
// log.info("* 实付金额: {}", total_amount);
// log.info("* 购买产品: {}", product.getName());
// log.info("***************************************************************");

    mv.addObject("out_trade_no", out_trade_no);
    mv.addObject("trade_no", trade_no);
    mv.addObject("total_amount", total_amount);
    mv.addObject("flag", "success");

    }else {
        //log.info("鏀粯, 楠岀澶辫触...");
        System.out.println("鏀粯, 楠岀澶辫触...");
    }

    return mv;
}

}

  • 写回答

1条回答 默认 最新

  • DXIANGH 2020-12-04 10:37
    关注

    解决了没有

    评论

报告相同问题?

悬赏问题

  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败