开发者社区> 问答> 正文

担保交易发货失败

做的一个电商网站,用的担保交易,按照文档填的参数,现在付款方面都很正常,但是买家付款后,商家有个发货,点了发货后,老是失败。前面曾经有一天成功过,但是不知道为什么。

发货按钮是提交到后台一个controller,我把controller 方法主体发出来吧。

public class AdminSendGoodsController extends Controller{
 private static String failedUrl="http://182.92.103.164:8080/BPPost/xmlfailed";
 private static String successUrl="http://182.92.103.164:8080/BPPost/xmlsuccess";
 /**
 * <%=request.getContextPath()%>/admin/SendGoods/
 */
 public void index(){
 boolean flag =false;
 byte[] xmlbyte = "测试测试".getBytes();
 URL url;
 try {
 url = new URL(successUrl);
 HttpURLConnection conn = (HttpURLConnection) url.openConnection();
 conn.setConnectTimeout(20000);
 conn.setDoOutput(true);// 允许输出
 conn.setDoInput(true);
 conn.setUseCaches(false);// 不使用缓存
 conn.setRequestMethod("POST");
 conn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接
 conn.setRequestProperty("Charset", "UTF-8");
 conn.setRequestProperty("Content-Length", String.valueOf(xmlbyte.length));
 conn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8");
 conn.getOutputStream().write(xmlbyte);
 conn.getOutputStream().flush();
 conn.getOutputStream().close();

 if(200 == conn.getResponseCode()){
 InputStream inputStream = conn.getInputStream();
 System.out.println(PostXmlParseUtils.xmlParse(inputStream));
 flag = true;
 }
 } catch (MalformedURLException e) {
 e.printStackTrace();
 } catch (ProtocolException e) {
 e.printStackTrace();
 } catch (IOException e) {
 e.printStackTrace();
 } catch (XmlPullParserException e) {
 e.printStackTrace();
 }

 if(flag){
 //如果正常,则发货成功


 //更新物流方式
 int indentId = getParaToInt("indentId");
 int transportId = getParaToInt("transport");
 Indent indent = Indent.me.findById(indentId);
 indent.set("TransportId", transportId);
 indent.set("Status", 2);
 flag = indent.update();

 renderJson("{\"flag\": \"success\"}");
 }else{
 //否则,发货失败
 renderJson("{\"flag\": \"error\"}");
 }
 } 

就这样,然后结果是一直发货失败。

查看eclipse的console,报的异常是

java.net.ConnectException: Connection refused: connect 

at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)..... 

这个应该是sengoods里的方法发送链接请求失败,昨天的时候是请求超时,我不知道为什么变了,那个方法里的网址是干什么的也没搞懂,(这个是别人写的代码,那人联系不到了,现在我接手修改的,我刚学编程几个月,新人一个)。

在网页里审查元素,网页向sendgoods这个方法发送请求返回值是200,说明请求已经到达这个方法了,现在就是这个方法向successURL发送请求的时候失败了,我的理解大概就这样,就不知道怎么解决这儿问题,求解求解,非常感谢。@JFinal

展开
收起
爵霸 2016-05-31 09:57:48 2061 0
0 条回答
写回答
取消 提交回答
问答地址:
相关产品:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载