搜索结果

×

搜索结果将在这里显示。

申请发票开票

接口说明

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

适用对象:特约商户

请求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());
}