提交开票申请

请求地址

https://api.4pyun.com/gate/1.0/invoice/obtain

调用方式

HTTP POST FORM 表单提交

特殊说明

1:app_id,app_secret 用户身份id和加密密钥由平台方提供,对接方需提供公司全称然后给到商务提交给研发申请
2:buyer_telephone buyer_address 要么都有值要么都没有值
3:buyer_bank_name,buyer_bank_account 要么都有值要么都没有值
4:企业开票也就是buyer_tax_type=1 buyer_tax_no 必须传 buyer_name必须是公司的名称不然开出来的票可能报销不了
5:企业开票也就是buyer_tax_type=2 buyer_tax_no 不传 buyer_name客户随便填不能有空格但是必须传该字段

请求参数

字段名称 字段说明 类型 必填 示例
app_id 平台分配的接入应用ID string Y op1234567723122
sign 请求数据签名 string Y C65FCAC2D3FB5E2D3D4AD93DD20C8C39
merchant 停车场商户号 string Y 6262666666
obtain_order 合作方请求开票订单号, 要求同一app_id下唯一 string Y obtainOrder-XXXXXXXXXXXXX
value 开票金额(单位分) string Y 1000
buyer_tax_type 1:企业开票 2:个人开票 string Y 1
buyer_tax_no 购方(车主)公司纳税识别号 string N XXXXXXXXXXXXXXX
buyer_name 购方名称 如果传了购方税号一定要填购方公司名称如果没有传购方税号可以随意传但是不能为空 string Y 深圳市神州XXXXXXXXX有限公司
buyer_email 接收开票结果邮箱 string Y 1916714111111@qq.com
buyer_mobile 接收开票成功短信手机号,并不是所有开票商都支持发短信建议有就传 string N 18075521111
buyer_telephone 购买方公司联系电话 string N 075588888888
buyer_address 购买方公司联系地址 string N XXXXXXX
buyer_bank_name 购买方公司银行卡名称 string N 银行名称
buyer_bank_account 购买方公司银行卡账号 string N 银行账户
notify_url 开票成功或者失败的回调后台地址 string Y https://www.hello.com
extra 附加业务参数, 用于生成发票备注模版 string N {"memo":"发票备注"}

请求示例

1.1:签名前字符串
    str=app_id=app_id=op6619067c70f1234213&buyer_email=191671412@qq.com&buyer_mobile=18075521111&buyer_name=随便开票&buyer_tax_no=91440300067123423&buyer_tax_type=1&merchant=626266016&obtain_order=123456789111&value=100&app_secret=d6d3ea8f910b9a3ffa2341234
1.2:MD5(str)
    sign=B10DE5E8A1B5E8B16878AE49C917C212
   @Test
    public void testObtain() {
        TreeMap<String, String> map = new TreeMap<>();
        // 平台分配的接入应用ID
        map.put("app_id", "op6619067c70f1234213");
        // 停车场商户号
        map.put("merchant", "626266016");
        // 合作方请求开票订单号, 要求同一app_id下唯一
        map.put("obtain_order", "123456789111");
        // 开票金额(单位分)
        map.put("value", "100");
        // 1:企业开票 2:个人开票
        map.put("buyer_tax_type", "1");
        // 购方(车主)公司纳税识别号
        map.put("buyer_tax_no", "91440300067123423");
        // 购方名称 如果传了购方税号一定要填购方公司名称如果没有传购方税号可以随意传但是不能为空
        map.put("buyer_name", "随便开票");
        // 接收开票结果邮箱
        map.put("buyer_email", "191671412@qq.com");
        // 接收开票成功短信手机号,并不是所有开票商都支持发短信建议有就传
        map.put("buyer_mobile", "18075521111");

        StringBuilder builder = new StringBuilder();
        for (String key : map.keySet()) {
            builder.append(key + "=" + map.get(key) + "&");
        }
        String appSecret = "d6d3ea8f910b9a3ffa2341234";
        String encriptStr = builder.toString() + "app_secret=" + appSecret;
        System.out.println(encriptStr);
        String sign = MD5.encryptHEX(encriptStr);
        String keyStr = builder.toString() + "sign=" + sign;
        System.out.println(keyStr);
        try {
            Form form = Form.form();
            for (String key : map.keySet()) {
                form.add(key, map.get(key));
            }
            form.add("sign", sign);
            Response response = Request.Post("https://api.4pyun.com/gate/1.0/invoice/obtain")
                    .bodyForm(form.build(), Charset.forName("utf-8"))
                    .execute();
            HttpResponse response1 = response.returnResponse();
            System.out.println(response1.getStatusLine());
            String text = IOUtils.toString(response1.getEntity().getContent(), "utf-8");
            System.out.println(text);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

请求返回结果参数说明

字段名称 字段说明 类型 必填 备注
code 请求状态码 string Y 1001:开票成功
1000:开票受理成功
其它:读取message信息
message 返回描述 string Y 返回描述
hint 返回错误说明 string N 返回具体错描述指导
seqno 服务器日志标示 string Y 查日志用到查问题尽量提供这个值
obtain_serial 平台开票编号 string N XXXXXXXXX

请求返回结果示例:

正常返回
{
    "code": "1000",
    "message": "开票中",
    "seqno": "3e6af71d2a4e7eec",
    "data_node": "CN-South/HS3-3",
    "time_cost": 838,
    "payload": {
        "obtain_serial": "202107212029510755019876"
    }
}
正常返回
{
    "code": "1001",
    "message": "开票成功",
    "seqno": "3e6af71d2a4e7eec",
    "data_node": "CN-South/HS3-3",
    "time_cost": 838,
    "payload": {
        "obtain_serial": "202107212029510755019876"
    }
}
服务器内部错误
{
    "code": "500",
    "message": "商户号不支持电子发票",
    "seqno": "b92e71a7ee445885",
    "data_node": "CN-South/HS3-3",
    "path": "POST /gate/1.0/invoice/obtain"
}
© 2022 Shenzhen ChinaRoad Technology Co., Ltd. © All Rights Reserved            UPDATED 2022/11/23 14:37:44

results matching ""

    No results matching ""