java调用WEBAPI新增销售增值税发票小数进位问题
金蝶云社区-nmgzjf
nmgzjf
0人赞赏了该文章 792次浏览 未经作者许可,禁止转载编辑于2016年11月13日 00:23:13

背景:第三方java通过http post传入json。以下是提交代码:

String sUrl = map.get(deal).toString();
JSONArray jParas = new JSONArray();
jParas.put(formId);
jParas.put(content);

HttpURLConnection connectionInvoke = initUrlConn(sUrl, jParas);

BufferedReader reader = new BufferedReader(new InputStreamReader(
connectionInvoke.getInputStream()));

String line;
//System.out.println(" ============================= ");
//System.out.println(" Contents of post request ");
//System.out.println(" ============================= ");
String sResult = "没有反馈数据!";
while ((line = reader.readLine()) != null) {
sResult = new String(line.getBytes(), "utf-8");
//System.out.println(sResult);
}
//System.out.println(" ============================= ");
//System.out.println(" Contents of post request ends ");
//System.out.println(" ============================= ");
reader.close();

connectionInvoke.disconnect();

return sResult;

Json文本如下:
{
"Model": {
"FID": 0,
"FBillTypeId": {
"FNumber": "XSZZSZYFP01_SYS"
},
"FBillNo": "43test",
"FDate": "2016/11/12 22:39",
"FBILLINGWAY": "0",
"FINVOICENO": "",
"FINVOICEDATE": "",
"FDocumentStatus": "A",
"FCUSTOMERID": {
"FNUMBER": "COM-009007"
},
"FSALEORGID": {
"FNUMBER": "0"
},
"FSALEDEPTID": {
"FNUMBER": "DEP-005"
},
"FISTAX": true,
"FRedBlue": 0,
"FSETTLEORGID": {
"FNumber": "0"
},
"FSALESICENTRY": [{
"FMaterialId": {
"FNUMBER": "0-001"
},
"FPRICEQTY": 1,
"FTaxRate": 0,
"FAUXTAXPRICE": 524999.93,
"FDETAILTAXAMOUNTFOR": 0,
"FENTRYDISCOUNTRATE": 0,
"FALLAMOUNTFOR": 524999.93
}]
},
"Creator": "",
"NeedUpDateFields": []
}

发票可以成功写入,可是问题来来了
单价、价税合计字段值,变成了


我按帖子制作了日志,
{{{/article/2681092}}}


也用.NET写了一个HTTP提交测试程序,我的.NET提交程序没有问题,JAVA的就不行,而这两个程序的java文本完全一样。

现在第三方也比较生气了,他们认为我们的日志是对JSON处理后的,要我们拿出最原始接收的JSON文本,并且如果接收正常,就与他们无关了,要求我们自己解决这个问题。

请总部老师们帮忙:
1。有没有办法获取或记录最初post过来的反序列化后的json文本?
2。我观察了一下,发票的价税合计应该和税率等有关,但无论如何,含税单价不应该是94呀(JSON传值 是.93),
3。我正在搭JAVA环境,准备自己测试一下,是java与.net兼容问题么?为什么我.net 传入的相同json文本,就没有错误呢?

真的很郁闷,还望老师指点。感激不尽!