This commit is contained in:
邹宗楠
2025-08-12 17:52:16 +08:00
parent 4f11f14a86
commit e2a9064949
2 changed files with 59 additions and 0 deletions

View File

@@ -231,3 +231,8 @@ func TestGetImage(t *testing.T) {
globals.SugarLogger.Debugf("---%s", string(data))
}
func TestUploadInvoice(t *testing.T) {
err := api.UploadInvoice("12532643754865764", "https://s3plus.meituan.com/invoice/h1d28903f293gd9g19rgf21e", "71209468123", "192473206944002876")
globals.SugarLogger.Debugf("--err := %v", err)
}

View File

@@ -0,0 +1,54 @@
package mtwmapi
import (
"fmt"
"git.rosy.net.cn/baseapi/utils"
"strings"
)
type InvoiceCallback struct {
Timestamp int64 `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 int `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, ","))
}