Files
baseapi/platformapi/mtwmapi/invoice.go
2025-11-21 09:09:09 +08:00

54 lines
2.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package mtwmapi
import (
"fmt"
"git.rosy.net.cn/baseapi/utils"
"strings"
)
type InvoiceCallback struct {
Timestamp string `json:"timestamp"` // 时间戳
AppId string `json:"app_id"` // 美团分配给APP方的id
Sig string `json:"sig"` // 输入参数计算后的签名结果
MtRequestId string `json:"mt_request_id"` // 平台请求id由平台自动生成并保证唯一性不参与业务逻辑在接口响应时返回给商家系统
OrderId string `json:"order_id"` // 订单ID
InvoiceTaskId string `json:"invoice_task_id"` // 开票任务id
PushType string `json:"push_type"` // 消息类型1-开发票3-催发票
InvoiceTitle string `json:"invoice_title"` // 发票的抬头。
TaxpayerId string `json:"taxpayer_id"` // 纳税人识别号
NeedInvoiceByCategory int `json:"need_invoice_by_category"` // 1-需要按大类开票2-需要商品明细开
CompanyAddress string `json:"company_address"` // 公司地址
CompanyPhone string `json:"company_phone"` // 电话
AccountBank string `json:"account_bank"` // 开户银行
AccountNumber string `json:"account_number"` // 开户账号
Email string `json:"email"` // 邮箱
EmailExpireTime int64 `json:"email_expire_time"` // 邮箱有效期
ItemTotalInvoiceAmount int64 `json:"item_total_invoice_amount"` // 商家开票金额
}
// UploadInvoice 上传发票给用户
func (a *API) UploadInvoice(orderId, invoiceUrl, invoiceId, taskId string) (err error) {
resp, err := a.AccessAPI2("ecommerce/invoice/upload", false, map[string]interface{}{
KeyOrderID: orderId,
"invoice_url": invoiceUrl,
"invoice_id": invoiceId,
"invoice_task_id": taskId,
}, "", "")
if err != nil {
return err
}
if utils.MustInterface2Int64(resp.(map[string]interface{})["result_code"]) == 1 {
return nil
}
errMsg := make([]string, 0, 0)
if resp.(map[string]interface{})["error_list"] != nil {
for _, v := range resp.(map[string]interface{})["error_list"].([]interface{}) {
errMsg = append(errMsg, v.(map[string]interface{})["msg"].(string))
}
}
return fmt.Errorf("%s", strings.Join(errMsg, ","))
}