diff --git a/platformapi/mtwmapi/im_test.go b/platformapi/mtwmapi/im_test.go index a1f29907..56590c4b 100644 --- a/platformapi/mtwmapi/im_test.go +++ b/platformapi/mtwmapi/im_test.go @@ -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) +} diff --git a/platformapi/mtwmapi/invoice.go b/platformapi/mtwmapi/invoice.go new file mode 100644 index 00000000..654a6850 --- /dev/null +++ b/platformapi/mtwmapi/invoice.go @@ -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, ",")) +}