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 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突