Documentation ¶
Index ¶
- Constants
- Variables
- func NewSdk(appkey, appsecret, ver, env string) *sdk
- type Client
- func (c *Client) InvoiceAmount(body InvoiceAmountRequest) (rsp InvoiceAmountResponse, err error)
- func (c *Client) InvoiceBlue(body InvoiceBlueRequest) (rsp InvoiceBlueResponse, err error)
- func (c *Client) InvoicePrint(body InvoicePrintRequest) (rsp InvoicePrintResponse, err error)
- func (c *Client) InvoiceRed(body InvoiceRedRequest) (rsp InvoiceRedResponse, err error)
- func (c *Client) InvoiceStatus(body InvoiceStatusRequest) (rsp InvoiceStatusResponse, err error)
- func (c *Client) InvoiceVerify(body InvoiceVerifyRequest) (rsp InvoiceVerifyResponse, err error)
- func (c *Client) MerchantRegister(body MerchantRegisterRequest) (rsp MerchantRegisterResponse, err error)
- func (c *Client) SendEmail(body SendEmailRequest) (rsp SendEmailResponse, err error)
- func (c *Client) SendEmailQuery(body SendEmailQueryRequest) (rsp SendEmailQueryResponse, err error)
- type Config
- type Info
- type Invoice
- type InvoiceAmountRequest
- type InvoiceAmountResponse
- type InvoiceBlueCallbackBody
- type InvoiceBlueRequest
- type InvoiceBlueResponse
- type InvoiceDetail
- type InvoiceNoRed
- type InvoicePrintRequest
- type InvoicePrintResponse
- type InvoiceRedRequest
- type InvoiceRedResponse
- type InvoiceStatusRequest
- type InvoiceStatusResponse
- type InvoiceVerifyRequest
- type InvoiceVerifyResponse
- type Item
- type ItemDetail
- type MerchantRegisterCallbackBody
- type MerchantRegisterRequest
- type MerchantRegisterResponse
- type ResponseModel
- type SendEmailQueryRequest
- type SendEmailQueryResponse
- type SendEmailRequest
- type SendEmailResponse
Constants ¶
View Source
const ( EnvProd = "prod" // (生产环境) EnvTest = "test" // (沙盒环境) AppVersion = "1.0.0" InvoiceTypeBlue uint8 = 0 // 发票种类-蓝票 InvoiceTypeRed uint8 = 1 // 发票种类-红票 InvoiceStatusDoing uint8 = 1 // 开票中 InvoiceStatusSuccess uint8 = 2 // 开票成功 InvoiceStatusFailure uint8 = 3 // 开票失败 InvoiceTitleTypePerson uint8 = 1 // 个人 InvoiceTitleTypeEnterprise uint8 = 2 // 企业 TradeTypeElse = "0" // 其他 TradeTypeCommunication = "1" // 通信 TradeTypeFood = "2" // 餐饮 TradeTypeTransportation = "3" // 交通 TradeTypePayment = "4" // 支付平台 TradeTypeTicketAndTourist = "5" // 票务/旅游 InvoiceTypeCodeZZSZY = "004" // 增值税专用发票 InvoiceTypeCodeZZSPT = "007" // 增值税普通发票 InvoiceTypeCodeZZSJS = "025" // 增值税卷式发票 InvoiceTypeCodeZZSDZ = "026" // 增值税电子发票(默认) InvoiceTypeCodeQKL = "032" // 区块链发票 ZeroTaxNo = "" // 非零税率 ZeroTaxExport = "0" // 出口零税 ZeroTaxFree = "1" // 免税 ZeroTaxNone = "2" // 不征税 ZeroTaxCommon = "3" // 普通零税率 PreferentialPolicyNo = "" // 不使用 PreferentialPolicyUse = "1" // 使用 RedStateSuccess uint8 = 1 // 调用成功 RedStateFailure uint8 = 0 // 调用失败 TicketDoing = "1" // 开票中 TicketSuccess = "2" // 开票成功 TicketFailure = "3" // 开票失败 // invoice/query接口的返回状态 QueryStatusUnknown uint8 = 0 // 无效状态 QueryStatusDoing uint8 = 1 // 开票中 QueryStatusFailed uint8 = 2 // 开票失败 QueryStatusWaitSign uint8 = 3 // 已开票待签章 QueryStatusSignFailed uint8 = 4 // 签章失败 QueryStatusSuccess uint8 = 5 // 开票成功 QueryStatusWaitInvalid uint8 = 6 // 待作废 QueryStatusInvalidFailed uint8 = 7 // 作废失败 QueryStatusInvalidSuccess uint8 = 8 // 作废成功 VerifyCodeTrue uint8 = 0 // 成功(发票验证为真) VerifyCodeFail uint8 = 1 // 成功(发票验证为假) SendEmailStatusSuccess uint8 = 1 // 发送邮件成功 SendEmailStatusFailure uint8 = 2 // 发送邮件失败 CallbackNotifyTypeBlue = "invoice.blue" // 蓝票通知类型 CallbackNotifyTypeRed = "invoice.red" // 红票通知类型 CallbackTicketStatusSuccess int8 = 2 // 开票成功,其他都是失败 MerchantRegisterStatusInvalid = "0" // 商户注册,无效状态 MerchantRegisterStatusValid = "1" // 商户注册,有效状态 MerchantRegisterStatusNoBlue = "2" // 商户注册,禁止开蓝票 MerchantRegisterStatusNoRed = "3" // 商户注册,禁止冲红 PrintTypeInvoiceWithDialog = "0" // (弹框) 发票打印(默认) PrintTypeDetailListWithDialog = "1" // (弹框) 清单打印 PrintTypeInvoiceWithoutDialog = "9" // (不弹框) 发票打印 PrintTypeDetailListWithoutDialog = "8" // (不弹框) 清单打印 PrintFlagBatch = "0" // 批量打印 PrintFlagSingle = "1" // 单张打印 PrintModeOrigin = "0" // 或空,调用助手插件和服务器托管等渠道原有打印接口 PrintModeWcs = "1" // 调用wcs提供的通用打印接口 RegionCodeBeiJing uint8 = 11 // 北京市 RegionCodeShangHai uint8 = 31 // 上海市 RegionCodeTianJing uint8 = 12 // 天津市 RegionCodeHeBei uint8 = 13 // 河北省 RegionCodeShanXi uint8 = 14 // 山西省 RegionCodeNeiMengGu uint8 = 15 // 内蒙古自治区 RegionCodeLiaoNing uint8 = 21 // 辽宁省 RegionCodeJiNing uint8 = 22 // 吉林省 RegionCodeHeiLongJiang uint8 = 23 // 黑龙江省 RegionCodeJiangShu uint8 = 32 // 江苏省 RegionCodeZheJiang uint8 = 33 // 浙江省 RegionCodeAnHui uint8 = 34 // 安徽省 RegionCodeFuJian uint8 = 35 // 福建省 RegionCodeJiangXi uint8 = 36 // 江西省 RegionCodeShanDong uint8 = 37 // 山东省 RegionCodeHeNan uint8 = 41 // 河南省 RegionCodeHuBei uint8 = 42 // 湖北省 RegionCodeHuNan uint8 = 43 // 湖南省 RegionCodeGuangDong uint8 = 44 // 广东省 RegionCodeGuangXi uint8 = 45 // 广西壮族自治区 RegionCodeHaiNan uint8 = 46 // 海南省 RegionCodeChongQing uint8 = 50 // 重庆市 StatusCodeNormal uint16 = 0 // 正常 StatusCodeRequestError uint16 = 400 // 请求错误,服务器无法理解http请求 StatusCodeNotPermission uint16 = 403 // 禁止访问 StatusCodeServerInnerError uint16 = 500 // 服务器内部错误 StatusCodeVersionError uint16 = 1001 // 版本错误 StatusCodeLackCommonParameters uint16 = 1002 // 缺少公共参数 StatusCodeTimestampError uint16 = 1003 // 时间戳错误 StatusCodeAppKeyNotExists uint16 = 1004 // appkey不存在 StatusCodeAppClosed uint16 = 1005 // app已关闭 StatusCodeDeveloperClosed uint16 = 1006 // 开发者已被关闭 StatusCodeSignError uint16 = 1007 // 签名错误 StatusCodeDeveloperUnAudit uint16 = 1008 // 开发者资质待审核 StatusCodeDeveloperNoAudit uint16 = 1009 // 开发者资质审核未通过 StatusCodeParameterInValid uint16 = 1010 // 参数检验错误 StatusCodeDirtyData uint16 = 1011 // 脏数据 StatusCodeCallNumberNotEnough uint16 = 1012 // 接口调用次数不足 StatusCodeInterfaceFeeError uint16 = 1013 // 接口计费错误 StatusCodearameterError uint16 = 1014 // 业务参数错误 StatusCodeDependDeny uint16 = 1015 // 依赖服务返回拒绝 StatusCodeDependError uint16 = 1016 // 依赖服务故障 )
Variables ¶
View Source
var BaseUrl = map[string]string{"test": "https://openapi-test.wetax.com.cn", "prod": "https://openapi.wetax.com.cn"}
Functions ¶
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func (*Client) InvoiceAmount ¶
func (c *Client) InvoiceAmount(body InvoiceAmountRequest) (rsp InvoiceAmountResponse, err error)
查询发票信息
func (*Client) InvoiceBlue ¶
func (c *Client) InvoiceBlue(body InvoiceBlueRequest) (rsp InvoiceBlueResponse, err error)
开具发票
func (*Client) InvoicePrint ¶
func (c *Client) InvoicePrint(body InvoicePrintRequest) (rsp InvoicePrintResponse, err error)
打印发票
func (*Client) InvoiceRed ¶
func (c *Client) InvoiceRed(body InvoiceRedRequest) (rsp InvoiceRedResponse, err error)
发票冲红
func (*Client) InvoiceStatus ¶
func (c *Client) InvoiceStatus(body InvoiceStatusRequest) (rsp InvoiceStatusResponse, err error)
查询发票信息
func (*Client) InvoiceVerify ¶
func (c *Client) InvoiceVerify(body InvoiceVerifyRequest) (rsp InvoiceVerifyResponse, err error)
发票查验
func (*Client) MerchantRegister ¶
func (c *Client) MerchantRegister(body MerchantRegisterRequest) (rsp MerchantRegisterResponse, err error)
商户注册
func (*Client) SendEmail ¶
func (c *Client) SendEmail(body SendEmailRequest) (rsp SendEmailResponse, err error)
邮件发送
func (*Client) SendEmailQuery ¶
func (c *Client) SendEmailQuery(body SendEmailQueryRequest) (rsp SendEmailQueryResponse, err error)
邮件发送查询
type Invoice ¶
type Invoice struct { SellerTaxPayerNumber string `json:"seller_taxpayer_num"` // 销方税号 CallbackUrl string `json:"callback_url"` // 红票接收地址 OrderSn string `json:"order_sn,omitempty"` // 需要红冲的高灯订单号(蓝票开具时获得),和order_id不能同时为空 OrderId string `json:"order_id,omitempty"` // 需要红冲的三方自有订单号(蓝票开具时传入),和order_sn不能同时为空 }
type InvoiceAmountRequest ¶
type InvoiceAmountResponse ¶
type InvoiceAmountResponse struct {
Number int64 `json:"number"` // 剩余发票数量
}
type InvoiceBlueCallbackBody ¶
type InvoiceBlueCallbackBody struct { AppKey string `json:"appkey"` // 服务商appkey Message string `json:"message"` // 返回结果详情 NotifyType string `json:"notify_type"` // 通知类型,参见constant.go NotifyTime string `json:"notify_time"` // 通知时间 格式"2017-09-09 10:20:12" OrderId string `json:"order_id"` // 商户交易流水号(由商户维护唯一性) GlobalUniqueId string `json:"g_unique_id"` // 平台交易流水号(由平台维护唯一性,同order_sn,兼容老平台用户) OrderSn string `json:"order_sn"` // 平台唯一交易订单号(由平台维护唯一性) TicketSn string `json:"ticket_sn"` // 发票号码 开票失败时值为空 TicketCode string `json:"ticket_code"` // 发票代码 开票失败时值为空 TicketDate string `json:"ticket_date"` // 开票时间 TicketStatus int8 `json:"ticket_status"` // 发票状态,参见constant.go TicketTotalAmountHasTax string `json:"ticket_total_amount_has_tax"` // 发票含税总价 开票失败时值为空 TicketTotalAmountNoTax string `json:"ticket_total_amount_no_tax"` // 发票去税总价 开票失败时值为空 TicketTaxAmount string `json:"ticket_tax_amount"` // 发票税额 开票失败时值为空 QrCode string `json:"qrcode"` // 发票二维码base64内容,最大10Kb。渠道不同可能返回为空 CheckCode string `json:"check_code"` // 发票校验码 开票失败时值为空 CipherText string `json:"cipher_text"` // 发票密文 PdfUrl string `json:"pdf_url"` // 发票url地址 开票失败时值为空(纸票没有pdf) }
type InvoiceBlueRequest ¶
type InvoiceBlueRequest struct { SellerName string `json:"seller_name,omitempty"` // 销方名称 SellerTaxPayerNumber string `json:"seller_taxpayer_num"` // 销货方税号 SellerAddress string `json:"seller_address,omitempty"` // 销货方地址 SellerTel string `json:"seller_tel,omitempty"` // 销货方电话 SellerBankName string `json:"seller_bank_name,omitempty"` // 销货方开户行 SellerBankAccount string `json:"seller_bank_account,omitempty"` // 销货方银行账号 TitleType uint8 `json:"title_type"` // 发票抬头类型(见constant定义) BuyerTitle string `json:"buyer_title"` // 购方抬头 BuyerTaxPayerNumber string `json:"buyer_taxpayer_num,omitempty"` // 购方税号(企业类型的抬头必填) BuyerAddress string `json:"buyer_address,omitempty"` // 购方地址 BuyerBankName string `json:"buyer_bank_name,omitempty"` // 购方开户行 BuyerBankAccount string `json:"buyer_bank_account,omitempty"` // 购方银行账号 BuyerPhone string `json:"buyer_phone,omitempty"` // 购方电话 BuyerEmail string `json:"buyer_email,omitempty"` // 购方邮箱 TakerPhone string `json:"taker_phone,omitempty"` // 收票人手机 TakerName string `json:"taker_name,omitempty"` // 收票人名称 OrderId string `json:"order_id"` // 商户订单号 InvoiceTypeCode string `json:"invoice_type_code,omitempty"` // 发票种类编码(见constant定义) CallbackUrl string `json:"callback_url"` // 接收开票平台推送的消息地址 Drawer string `json:"drawer,omitempty"` // 开票人 Payee string `json:"payee,omitempty"` // 收款人 Checker string `json:"checker,omitempty"` // 复核人 TerminalCode string `json:"terminal_code,omitempty"` // 开票终端代码,使用百望税控服务器时必填 UserOpenId string `json:"user_openid,omitempty"` // 三方用户id SpecialInvoiceKind string `json:"special_invoice_kind,omitempty"` // 特殊票种标识(成品油票必传:08,其他票种可以为空) Zsfs string `json:"zsfs,omitempty"` // 征收方式:开具差额征税发票时必填"2" Deduction int64 `json:"deduction,omitempty"` // 差额征税扣除额(分),当zsfs为2时,此项必填 AmountHasTax int64 `json:"amount_has_tax"` // 含税金额(分) TaxAmount int64 `json:"tax_amount"` // 税额(分) AmountWithoutTax int64 `json:"amount_without_tax"` // 不含税金额(分) Remark string `json:"remark,omitempty"` // 发票备注 StoreNo string `json:"store_no,omitempty"` // 门店编码 Template uint8 `json:"template,omitempty"` // 发票模板:1.普通区块链电子发票样(默认)、2.丽江、3.石林、4.新版自定义模板 Info Info `json:"info,omitempty"` // 预留字段、云南区块链商户,使用冠名票发票模板时必填 TradeType string `json:"trade_type,omitempty"` // 行业分类(见constant定义) MachineNo string `json:"machine_no,omitempty"` // 税盘号 Items []Item `json:"items"` // 商品数组 }
type InvoiceBlueResponse ¶
type InvoiceDetail ¶
type InvoiceDetail struct { TicketCode string `json:"ticket_code"` // 发票代码 TicketSn string `json:"ticket_sn"` // 发票号码 TicketDate string `json:"ticket_date"` // 开票日期 BuyerName string `json:"buyer_name"` // 销方名称 BuyerTaxCode string `json:"buyer_tax_code"` // 购方税号 BuyerAddressPhone string `json:"buyer_address_phone"` // 销方地址和电话 BuyerBankAccount string `json:"buyer_bank_account"` // 销方银行账号 SellerName string `json:"seller_name"` // 销方名称 SellerTaxCode string `json:"seller_tax_code"` // 购方税号 SellerAddressPhone string `json:"seller_address_phone"` // 销方地址和电话 SellerBankAccount string `json:"seller_bank_account"` // 销方银行账号 Remark string `json:"remark"` // 发票备注 MachineNo string `json:"machine_no"` // 税盘号 InvoiceType string `json:"invoice_type"` // 发票种类编码(见constant定义) CheckCode string `json:"check_code"` // 发票校验码 IsAbandoned string `json:"is_abandoned"` // 是否作废(红冲) HasSellerList string `json:"has_seller_list"` // 是否有销货清单 SellerListTitle string `json:"seller_list_title"` // 销货清单标题 SellerListTax string `json:"seller_list_tax"` // 销货清单税额 AmountWithoutTax string `json:"amount_without_tax"` // 不含税金额(元) TaxAmount string `json:"tax_amount"` // 税额(元) AmountWithTax string `json:"amount_with_tax"` // 含税金额(元) Items []ItemDetail `json:"items"` // 项目明细 }
type InvoiceNoRed ¶
type InvoicePrintRequest ¶
type InvoicePrintRequest struct { SellerTaxPayerNumber string `json:"seller_taxpayer_num"` // 销货方税号 OrderSn string `json:"order_sn"` // (二选一) 高灯方商户订单号 OrderId string `json:"order_id"` // (二选一) 商户订单号 PrintType string `json:"print_type"` // 打印类型 PrintFlag string `json:"print_flag"` // 打印方式 PrintMode string `json:"print_mode"` // 打印模式 IsRed uint8 `json:"is_red"` // 发票种类 }
type InvoicePrintResponse ¶
type InvoicePrintResponse struct { }
type InvoiceRedRequest ¶
type InvoiceRedRequest struct {
Invoices []Invoice `json:"invoices"` // 发票组
}
type InvoiceRedResponse ¶
type InvoiceRedResponse = []InvoiceNoRed
type InvoiceStatusRequest ¶
type InvoiceStatusResponse ¶
type InvoiceStatusResponse struct { OrderId string `json:"order_id"` // 三方订单号 OrderSn string `json:"order_sn,omitempty"` // 平台订单号 Status uint8 `json:"status"` // 发票状态 Message string `json:"message"` // 开票错误信息 TicketDate string `json:"ticket_date"` // 开票日期 TicketSn string `json:"ticket_sn"` // 发票号码 TicketCode string `json:"ticket_code"` // 发票代码 CheckCode string `json:"check_code"` // 发票校验码 AmountWithTax string `json:"amount_with_tax"` // 含税金额(元) AmountWithoutTax string `json:"amount_without_tax"` // 不含税金额(元) TaxAmount string `json:"tax_amount"` // 税额(元) IsRed uint8 `json:"is_red_washed"` // 是否被红冲 PdfUrl string `json:"pdf_url"` // 发票pdf文件url }
type InvoiceVerifyRequest ¶
type InvoiceVerifyResponse ¶
type InvoiceVerifyResponse struct { Status uint8 `json:"status"` // 销方名称 OriginStatus string `json:"origin_status"` // 详细状态(详见附录) Message string `json:"message"` // 查询描述 Invoice InvoiceDetail `json:"invoice"` // 发票信息 }
type Item ¶
type Item struct { Name string `json:"name"` // 商品名(见constant定义) TaxCode string `json:"tax_code"` // 税目编码(见constant定义) TaxType string `json:"tax_type,omitempty"` // 税目类别 Models string `json:"models,omitempty"` // 商品规格 Unit string `json:"unit,omitempty"` // 计量单位 TotalPrice int64 `json:"total_price"` // 不含税商品总金额(精确到2位) Total string `json:"total"` // 商品数量 Price string `json:"price"` // 不含税商品单价 TaxRate int64 `json:"tax_rate"` // 税率(千分位,税率*1000) TaxAmount int64 `json:"tax_amount"` // 税额(分) Discount int64 `json:"discount,omitempty"` // 总的折扣金额;金额必须是负数;无折扣时不传 PreferentialPolicyFlag string `json:"preferential_policy_flag,omitempty"` // 优惠政策标志(见constant定义) ZeroTaxFlag string `json:"zero_tax_flag,omitempty"` // 零税率标识,默认为空(见constant定义) VatSpecialManagement string `json:"vat_special_management,omitempty"` // 增值税特殊管理 }
type ItemDetail ¶
type ItemDetail struct { LineNo string `json:"line_no"` // 项目行号 Name string `json:"name"` // 商品名 Model string `json:"model"` // 商品规格 Unit string `json:"unit"` // 计量单位 Number string `json:"num"` // 商品数量 Price string `json:"per_price"` // 商品单价 AmountWithoutTax string `json:"amount_without_tax"` // 不含税金额 TaxRate string `json:"tax_rate"` // 税率 TaxAmount string `json:"tax_amount"` // 税额 }
type MerchantRegisterCallbackBody ¶
type MerchantRegisterCallbackBody struct { AppKey string `json:"appkey"` // 服务商appkey Code string `json:"code"` // 返回状态码 Message string `json:"message"` // 返回描述信息 SerialNo string `json:"serial_no"` // 请求流水号 TaxpayerName string `json:"taxpayer_name"` // 销方名称 TaxpayerNum string `json:"taxpayer_num"` // 销方纳税人识别号 PlatformCode string `json:"platform_code,omitempty"` // 企业平台编码 RegistrationCode string `json:"registration_code,omitempty"` // 企业注册码 AuthorizationCode string `json:"authorization_code,omitempty"` // 企业授权码 ExpressName string `json:"express_name,omitempty"` // 快递名称 ExpressNo string `json:"express_no,omitempty"` // 快递单号 }
type MerchantRegisterRequest ¶
type MerchantRegisterRequest struct { SerialNo string `json:"serial_no,omitempty"` // 请求流水号(强烈建议传该字段,回调通知的时候会通过该字段标识) TaxpayerName string `json:"taxpayer_name"` // 企业名称 TaxpayerNum string `json:"taxpayer_num"` // 纳税人识别号(税号) LegalPersonName string `json:"legal_person_name"` // 注册企业法人代表名称 ContactsName string `json:"contacts_name"` // 联系人姓名 Email string `json:"email,omitempty"` // 联系人邮箱地址 BusinessMobile string `json:"business_mobile,omitempty"` // 企业电话 Phone string `json:"phone"` // 联系人手机号 BankName string `json:"bank_name,omitempty"` // 银行名称 BankAccount string `json:"bank_account,omitempty"` // 银行账号 Address string `json:"address"` // 不包含省市名称的地址 RegionCode uint8 `json:"region_code"` // 地区编码(见constant定义), 类型和文档不一致,文档是string, 实测应是int。 CityName string `json:"city_name"` // 市(地区)名称 Drawer string `json:"drawer"` // 开票人 Reviewer string `json:"reviewer,omitempty"` // 复核人 Payee string `json:"payee,omitempty"` // 收款人 RegisterCode string `json:"register_code,omitempty"` // 注册邀请码 TaxRegistrationCertificate string `json:"tax_registration_certificate"` // 税务登记证图片 State string `json:"state,omitempty"` // 开票状态(见constant定义) CallbackUrl string `json:"callback_url"` // 接收推送的消息地址 }
type ResponseModel ¶
type ResponseModel struct { Code uint16 `json:"code"` // 状态码 Msg string `json:"message"` // 错误信息 Data interface{} `json:"data"` // 业务逻辑返回 }
返回结果的通信标识
type SendEmailQueryRequest ¶
type SendEmailQueryResponse ¶
type SendEmailRequest ¶
type SendEmailRequest struct { OrderId string `json:"order_id,omitempty"` // 商户订单号 OrderSn string `json:"order_sn,omitempty"` // 高灯方商户订单号 SellerTaxpayerNum string `json:"seller_taxpayer_num"` // 销方纳税人识别号 IsRed uint8 `json:"is_red,omitempty"` // 是否为红票(0:蓝票,1:红票,默认为0, 参照constant中关于发票种类的定义) Email string `json:"email"` // 收票人邮箱 }
type SendEmailResponse ¶
type SendEmailResponse struct {
Status uint8 `json:"status"` // 邮件状态(见constant定义)
}
Source Files ¶
Click to show internal directories.
Click to hide internal directories.