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

54 lines
1.9 KiB
Go

package jdapi
import (
"encoding/json"
"fmt"
"git.rosy.net.cn/baseapi/utils"
)
// QueryInvoiceDetail 发票申请详情查询
// https://opendj.jd.com/staticnew/widgets/resources.html?groupid=182&apiid=38559b4a4fc34c8b8d3223d43c731d70
func (a *API) QueryInvoiceDetail(orderID string) (invoice *InvoiceDetailResult, err error) {
jdParams := map[string]interface{}{
"orderId": orderID,
}
result, err := a.AccessAPINoPage("JdInvoiceService/getInvoiceApplyDetail", jdParams, nil, nil, genNoPageResultParser("code", "msg", "result", "0"))
if err != nil {
return nil, err
}
if err = utils.Map2StructByJson(result, &invoice, false); err != nil {
return nil, err
}
return invoice, err
}
// QueryInvoiceList 查询发票列表
// https://opendj.jd.com/staticnew/widgets/resources.html?groupid=182&apiid=55f36649c0d642d8aa0cd8949729a124
func (a *API) QueryInvoiceList(param *QueryInvoiceListParam) (invoice []*InvoiceListResult, err error) {
jdParams := utils.Struct2MapByJson(param)
result, err := a.AccessAPINoPage("JdInvoiceService/pageInvoiceApply", jdParams, nil, nil, genNoPageResultParser("code", "msg", "result", "0"))
if err != nil {
return nil, err
}
if result.(map[string]interface{})["list"] != nil {
data := make([]*InvoiceListResult, 0, 0)
if err = json.Unmarshal(utils.MustMarshal(result.(map[string]interface{})["list"]), &data); err != nil {
return nil, err
}
return data, nil
}
return nil, fmt.Errorf("未查询到发票数据")
}
// UploadBlueTicket 上传蓝票
// https://opendj.jd.com/staticnew/widgets/resources.html?groupid=182&apiid=1eb09fa07adf4243b14b2193fdf7154d
func (a *API) UploadBlueTicket(param *BlueTicketParam) (err error) {
jdParams := utils.Struct2MapByJson(param)
_, err = a.AccessAPINoPage("JdInvoiceService/applyInvoiceForOwn", jdParams, nil, nil, genNoPageResultParser("code", "msg", "", "0"))
if err != nil {
return err
}
return nil
}