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

支付宝沙箱测试支付成功后,跳转回调界面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
    关注

    解决了没有

    评论

报告相同问题?

悬赏问题

  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常