dongfandong 2015-07-29 11:18 采纳率: 33.3%
浏览 4185

支付宝服务窗网关问题

激活开发者模式的时候我用了第三方的网关,现在想改成自己的,需要改成自己的网关: www.betafenqi.com/gateway_alipay.aspx

确定修改的时候有个错误提示:应用网关响应异常。
支付宝上面的demo让我稍作修改,集成到我的ssh工程中了,因为是线上测试,所以不容易找出什么问题,知道的大神帮下忙呗。下面是我的代码(没贴出调用部分,和demo基本一致):

*  public String alipay() throws MyException{

        System.out.println("网关--支付宝test~");
        System.out.println("接受参数。。");
        HttpServletRequest request = ServletActionContext.getRequest();
        HttpServletResponse response = ServletActionContext.getResponse();
        Map<String,String> pars = RequestUtil.getRequestParams(request);
        System.out.println("参数。。"+pars.toString());
        if(!("{}".equals(pars.toString()))){
            url = "index.jsp";
            String service = pars.get("service");
            String bizContent = pars.get("biz_content");
            JSONObject bizContentJson = (JSONObject) new XMLSerializer().read(bizContent);
            System.out.println("bizContent:"+bizContent);
            Event event = gatewayServ.getEvent(service, bizContentJson);
            String responseMsg = event.execute();

            try {
                responseMsg = AlipaySignature.encryptAndSign(responseMsg,
                        AlipayConfig.ALIPAY_PUBLIC_KEY,
                        AlipayConfig.PRIVATE_KEY, AlipayConfig.CHARSET,
                        false, true);
            } catch (AlipayApiException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }


                try {
                    //http 内容应答
                    response.reset();
                    response.setContentType("text/xml;charset=GBK");
                    PrintWriter printWriter;
                    printWriter = response.getWriter();
                    printWriter.print(responseMsg);
                    response.flushBuffer();
                    System.out.println("response串:"+response);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            //根据业务参数获取

        }else{
            System.out.println("参数为空");
            url = "test.jsp";
        }
        return SUCCESS;
    }

  • 写回答

1条回答 默认 最新

  • navyran 2016-02-24 02:11
    关注

    你可以把支付宝请求过来的参数都打印日志,然后自己把这些参数组装起来,重新用工具post模拟发送一遍,看看你的服务端报了什么错误。参看:http://blog.csdn.net/navyran/article/details/50726415

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?