搜索结果

×

搜索结果将在这里显示。

申请发票开票

接口说明

接口描述:发票开票接口,商户配置好开发票所需必要参数之后,商户业务系统调用此接口开发票。

适用对象:特约商户

请求URL:https://pay.yintongzaixian.com/api/invoice/open

请求方式:POST

请求类型:application/json 或 application/x-www-form-urlencoded

请求参数

字段名 变量名 必填 类型 示例值 描述
商户号 mchNo 是 String(30) M1621873433953 商户号
应用ID appId 是 String(24) 60cc09bce4b0f1c0b83761c9 应用ID
商户开票单号 mchOrderNo 是 String(30) 20160427210604000490 商户生成的开票单号,保证唯一
开票方式 invoiceWay 是 byte 2 开票方式: 2-获取开票链接
含税开票金额 amount 是 int 100 含税开票金额,单位分
客户端IP clientIp 是 String(128) 210.73.10.148 客户端IPV4地址
开票链接有效期 expiredDay 否 int 3 开票方式为2时,可设置开票链接有效期,设置区间1~999天,默认4天
购方信息 buyerInfo 是 String(256) {} 购方信息,json格式字符串,详见购方信息说明
销方信息 sellerInfo 否 String(256) {} 销方信息,json格式字符串,保留字段
商品信息 goodsList 否 String(256) [{}] 商品信息,json格式字符串,保留字段
渠道参数 channelExtra 否 String(256) {} 特定渠道发起的额外参数,json格式字符串.保留字段
备注 remark 否 String(256) 开票备注 备注
请求时间 reqTime 是 long 1622016572190 请求接口时间,13位时间戳
接口版本 version 是 String(3) 1.0 接口版本号,固定:1.0
签名 sign 是 String(32) C380BEC2BFD727A4B6845133519F3AD6 签名值,详见签名算法
签名类型 signType 是 String(32) MD5 签名类型,目前只支持MD5或RSA2方式

购方信息说明

字段名 变量名 必填 类型 示例值 描述
购方名称 buyerName 是 String(20) 张三 购方开票名称
购方税号 taxNo 否 String(128) abcde12345 购方开票税号,企业抬头必传
购方地址 address 否 String(20) 河北省沧州市解放西路华商大厦 购方地址
购方固定电话 telphone 否 String(20) 0317-xxx 购方固定电话
开户行 bankName 否 String(20) 中国农业银行 开户行
开户账号 bankAccount 否 String(20) 62xxxxx 开户账号
交付手机 pushPhone 否 String(20) 131xxxx 交付手机,交付邮箱和交付手机需必传其一
交付邮箱 pushEmail 否 String(20) xx@xx.xx 交付邮箱,交付邮箱和交付手机需必传其一

请求示例数据

{
    "buyerInfo": "{\"buyerName\":\"张三\",\"pushPhone\":\"12966668888\",\"taxNo\":\"556418D585E5FHG3Q\"}",
    "amount": 100,
    "mchOrderNo": "1715412578007",
    "invoiceWay": 2,
    "appId": "653b67b90d14f66aa119a518",
    "clientIp": "110.244.120.23",
    "sign": "1F98058E61DAA86AC909462C59F574AE",
    "signType": "MD5",
    "reqTime": "1715412578",
    "mchNo": "M1698391993",
    "version": "1.0"
}

返回参数

字段名 变量名 必填 类型 示例值 描述
返回状态 code 是 int 0 0-处理成功,其他-处理有误,详见错误码
返回信息 msg 否 String(128) 签名失败 具体错误原因,例如:签名失败、参数格式校验错误
签名信息 sign 否 String(32) 7C165045B92700E60693423D32AD6446 对data内数据签名,如data为空则不返回
返回数据 data 否 String(512) {} 返回下单数据,json格式数据

data数据格式

字段名 变量名 必填 类型 示例值 描述
发票单号 invoiceOrderId 是 String(30) FP1789196148628787202 支付系统发票单号
商户开票单号 mchOrderNo 是 String(30) 1715412578007 返回商户传入的开票单号
开票状态 state 是 int 2 开票状态: 0-订单生成 1-开票中 2-开票成功 3-开票失败 4-开票任务关闭 5-已冲红 6-已作废
开票链接地址 channelInvoiceQrcodeUrl 是 String(128) http://www.jeequan.com/pay.html 开票链接地址
开票链接失效时间 expiredTime 是 String(30) 2024-05-15 00:00:00 开票链接失效时间
渠道错误码 errCode 否 String ACQ.PAYMENT_AUTH_CODE_INVALID 上游渠道返回的错误码
渠道错误描述 errMsg 否 String Business Failed 失败 上游渠道返回的错误描述

返回示例数据

{
    "code": 0,
    "data": {
        "channelInvoiceQrcodeUrl": "https://openapi.tianquetech.com/merchant/makeInvoice.html?id=NTNmZTBlODU4YWFkNDFhN2EwYzA1ODM3ZTk4Yzc2MTU=",
        "expiredTime": "2024-05-15 00:00:00",
        "invoiceOrderId": "FP1789196148628787202",
        "mchOrderNo": "1715412578007",
        "state": 1
    },
    "msg": "SUCCESS",
    "sign": "7C165045B92700E60693423D32AD6446"
}

SDK调用示例(Java):

JeepayClient jeepayClient = JeepayClient.getInstance(Jeepay.appId, Jeepay.apiKey, Jeepay.getApiBase());
InvoiceOrderCreateRequest request = new InvoiceOrderCreateRequest();
InvoiceOrderCreateReqModel model = new InvoiceOrderCreateReqModel();
model.setMchNo(Jeepay.mchNo);                           // 商户号
model.setAppId(jeepayClient.getAppId());                 // 应用ID

request.setBizModel(model);
try {
    InvoiceOrderCreateResponse response = jeepayClient.execute(request);
    _log.info("验签结果:{}", response.checkSign(Jeepay.apiKey));
    if (response.isSuccess(Jeepay.apiKey)) {
        _log.info("data:{}", response.getData());
    } else {
        _log.info("请求失败:mchNo={}, msg={}", Jeepay.mchNo, response.getMsg());
    }
} catch (JeepayException e) {
    _log.error(e.getMessage());
}