查询电子发票信息
名称 | 类型 | 是否必须 | 示例值 | 描述 |
---|---|---|---|---|
appMethod | String | Y | suning.custom.category.query | 方法名 |
appRequestTime | String | Y | 2012-04-25 20:23:30 | 时间戳,格式为yyyy-MM-dd HH:mm:ss,例如:2012-04-25 20:23:30。API服务端允许客户端请求时间误差为10分钟。 |
format | String | N | XML | 默认xml,可指定格式为xml,json |
appKey | String | Y | b0c332a133c102765f39de********** | 分配给应用的访问令牌 |
versionNo | String | Y | v1.2 | API的版本,目前为v1.2版本 |
signInfo | String | Y | 460d7ff15b073e463125b4********** | appSecret,appMethod ,appRequestTime, appKey, versionNo, 请求报文base64加密后的数据顺序MD5(32位小写),其中appSecret为appKey对应的密钥 |
access_token | String | N | a1c5c62b08df3a3cbf7efd********** | 采用OAuth授权方式为必填参数 |
名称 | 类型 | 是否必须 | 示例值 | 描述 |
---|---|---|---|---|
orderItemIdList | String | N | ||
orderItemId | String | Y | 99992017120601 | 平台订单行号 |
orderId | String | Y | 12000036333 | 平台订单号 |
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
returnCode | String | Y | 查询成功与否标识,Y-成功,N-失败 请求发票中心查询是否成功,成功返回Y。 如发票中心数据解析失败等问题,返回N。 |
returnMsg | String | 查询参数为空或有错误 | 查询成功与否描述,如查询失败,查询成功与否标识返回N时,返回报错信息。 查询成功与否标识为Y时,为空。 |
invItems | String | ||
itemCode | String | Y | 查询结果,Y-成功,N-失败 N,查询参数为空或有错误 |
itemMsg | String | 发票标识invoiceFlag不正确 | 查询结果描述,如查询失败,查询成功与否标识返回N时,返回报错信息。 |
orderItemId | String | 99992017120601 | 外部平台订单行号 |
status | String | 1 | 发票开具状态,0-无订单信息、1-不满足开票条件、2-正常、3-已作废、4-已红冲、5-退货无需开票、6-增换普、7-待开票、8-开票中 状态为正常时,表明该发票已正常开具 |
bluePdfUrl | String | http://xxx.xxx.xxx/FPFX/actions/f634e11271b63280447141e380b30bb0815132 | 蓝票PDF路径,二者必有一个必反 |
redPdfUrl | String | http://xxx.xxx.xxx/FPFX/actions/837469218796304367ad778200eee4c68b0198 | 红票PDF路径,二者必有一个必反 |
dissatisfyReasons | String | ||
withoutinvoiceReason | String | 1 | 暂不开票原因,0-特殊品类,1-无需暂不开票,2-开票金额过小,3-财务不给开票,4-月度集中开票 |
sysfailReason | String | 1 | 系统失败原因,0-正常,1-推送(航信)失败,2-(航信)接收失败,3-增换普失败(实时延保普票) |
<sn_request> <sn_body> <queryElecinvoice> <orderItemIdList> <orderItemId>99992017120601</orderItemId> </orderItemIdList> <orderId>12000036333</orderId> </queryElecinvoice> </sn_body> </sn_request>
{ "sn_request": { "sn_body": { "queryElecinvoice": { "orderItemIdList": [ { "orderItemId": "99992017120601" } ], "orderId": "12000036333" } } } }
<sn_responseContent> <sn_body> <queryElecinvoice> <returnCode>Y</returnCode> <invItems> <dissatisfyReasons> <withoutinvoiceReason>1</withoutinvoiceReason> <sysfailReason>1</sysfailReason> </dissatisfyReasons> <redPdfUrl>http://xxx.xxx.xxx/FPFX/actions/837469218796304367ad778200eee4c68b0198</redPdfUrl> <itemMsg>发票标识invoiceFlag不正确</itemMsg> <status>1</status> <orderItemId>99992017120601</orderItemId> <bluePdfUrl>http://xxx.xxx.xxx/FPFX/actions/f634e11271b63280447141e380b30bb0815132</bluePdfUrl> <itemCode>Y</itemCode> </invItems> <returnMsg>查询参数为空或有错误</returnMsg> </queryElecinvoice> </sn_body> </sn_responseContent>
{ "sn_responseContent": { "sn_body": { "queryElecinvoice": { "returnCode": "Y", "invItems": [ { "dissatisfyReasons": { "withoutinvoiceReason": "1", "sysfailReason": "1" }, "redPdfUrl": "http://xxx.xxx.xxx/FPFX/actions/837469218796304367ad778200eee4c68b0198", "itemMsg": "发票标识invoiceFlag不正确", "orderItemId": "99992017120601", "status": "1", "bluePdfUrl": "http://xxx.xxx.xxx/FPFX/actions/f634e11271b63280447141e380b30bb0815132", "itemCode": "Y" } ], "returnMsg": "查询参数为空或有错误" } } } }
异常码 | 错误描述 | 解决方案 |
---|---|---|
biz.online.queryelecinvoice.length-overlong:* | 参数的值超过规定长度 | 请检查此参数的值,*号表示参数字段名 |
biz.online.queryelecinvoice.missing-parameter:* | 参数必填 | 请检查此参数的值,*号表示参数字段名 |
biz.handler.data-get:no-result | 查询没结果 | 请检查查询参数 |
isp.sys.service.unavailable.poas | 服务不可用 | 请联系苏宁技术人员 |
biz.online.queryelecinvoice.invalid-biz:100 | json转换异常 | 系统异常请联系苏宁技术人员 |
biz.online.queryelecinvoice.invalid-biz:101 | 未查询到平台配置信息 | 系统异常请联系苏宁技术人员 |
biz.online.queryelecinvoice.invalid-biz:102 | 此订单查无记录 | 系统异常请联系苏宁技术人员 |
异常码 | 错误描述 | 解决方案 |
---|---|---|
sys.check.user-permission:inexistence | 访问令牌不存在 | 更换访问令牌 |
sys.check.user-permission:overdue | 访问令牌已过期 | 请使用刷新令牌刷新 |
sys.check.api-permission:inexistence | Api方法不存在 | 请参考帮助中心 |
sys.check.api-permission:overdue | Api方法已过期 | 请参考帮助中心 |
sys.check.method-permission:authority | 无权操作此api | 确认是否有访问该方法权限 |
sys.auth.vendor-request:errory | 无权操作此供应商 | 请确认供应商编码是否正确 |
sys.controller.api-request:limit | Api请求受控 | 超过请求次数 |
sys.check.app-time:error | 请求参数错误api请求时间误差大 | 参考帮助中心 |
sys.check.request-params:error | 请求报文结构错误 | 参考帮助中心、日期格式等 |
sys.check.starttime-format:error | 请求开始时间错误 | 参考帮助中心、日期格式等 |
biz.handler.data-get:success | 业务数据查询成功 | 无 |
biz.handler.data-get:fail | 业务数据查询失败 | 检查请求条件 |
biz.handler.data-get:no-result | 业务数据结果为空 | 无 |
sys.check.pageno-format:error | pageNo格式错误,只允许1到99999之间的整数 | 检查pageNo输入是否有误 |
sys.check.pagesize-format:error | pageSize格式错误,只允许1到50之间的整数(订单相关是1到100) | 检查pageSize输入是否有误 |
sys.check.page-param:error | pageNo或者pageSize不在要求范围内,pageNo只允许1到99999之间的整数,pageSize只允许1到50之间的整数(订单相关是1到100) | 检查pageNo和pageSize输入是否有误 |
sys.check.miss-time:starttime | 不存在开始时间(节点) | 检查输入 |
sys.check.miss-time:endtime | 不存在结束时间(节点) | 检查输入 |
sys.check.starttime-value:null | 开始时间为空(值) | 检查输入 |
sys.check.endtime-value:null | 结束时间为空(值) | 检查输入 |
sys.check.starttime-format:error | 校验开始时间不合法,格式yyyy-MM-dd HH:mm:ss | 检查时间格式 |
sys.check.endtime-format:error | 校验结束时间不合法,格式yyyy-MM-dd HH:mm:ss | 检查时间格式 |
sys.check.query-time:error | 开始时间是否小于结束时间 | 检查开始和结束时间大小 |
sys.check.query-time:outofrange | 时间查询是否超出指定范围 | 检查时间范围 |
sys.check.app-sign:null | 签名信息为空 | 检查签名信息 |
sys.check.app-sign:error | 签名信息错误 | 检查签名信息 |
sys.check.missing-parameter:apiversion | API版本号未指定 | 检查API版本号 |
sys.check.missing-parameter:appRequestTime | 请求时间丢失 | 检查请求时间 |
sys.check.missing-nestElement:sn_body | 缺少sn_body节点 | 检查sn_body是否存在 |
sys.check.user-permission:inexistence | 用户key不存在 | 检查用户key是否存在 |
biz.handler.batch-handler:no-support | 非查询类API不支持批量操作 | 检查API类型 |
biz.handler.request-message:error | 查询类API输入多个业务节点 | 检查业务节点 |
sys.check.header-param:null | header参数为空 | 请检查header参数 |
sys.controller.api-access:limit | 访问限制 | 无 |
sys.controller.api-frequency:limit | 访问频率限制 | 无 |
sys.error.network:failure | 网络异常 | 无 |
sys.error.network-status:? | 响应失败 ?为状态码 | 无 |
sys.check.snunionid.length.is.not:48 | 混淆会员编码长度不是48位 | 使用转换器转换混淆会员编码规定要求混淆会员编码48位 |