2
回答
担保交易发货失败
注册赢门票,抽奖送华为P10>>>   

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

发货按钮是提交到后台一个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

举报
zxc__
发帖于2年前 2回/381阅
顶部