marketing_image_uploader.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // Copyright 2021 Tencent Inc. All rights reserved.
  2. package fileuploader
  3. import (
  4. "context"
  5. "io"
  6. "git.nanodreamtech.com/sg/wechatpay-go/core"
  7. "git.nanodreamtech.com/sg/wechatpay-go/services"
  8. )
  9. // MarketingImageUploadResponse 图片上传API(营销专用)返回结果
  10. type MarketingImageUploadResponse struct {
  11. MediaUrl *string `json:"media_url"` // revive:disable-line:var-naming
  12. }
  13. // MarketingImageUploader 图片上传API(营销专用)
  14. //
  15. // 通过本接口上传图片后可获得图片url地址。图片url可在微信支付营销相关的API使用,
  16. // 包括商家券、代金券、支付有礼等。
  17. // 接口文档地址:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter9_0_1.shtml
  18. type MarketingImageUploader services.Service
  19. // Upload 上传图片至微信支付营销系统
  20. func (u *MarketingImageUploader) Upload(
  21. ctx context.Context, fileReader io.Reader, filename string, contentType string,
  22. ) (*MarketingImageUploadResponse, *core.APIResult, error) {
  23. result, err := (*baseFileUploader)(u).upload(
  24. ctx, "/v3/marketing/favor/media/image-upload", fileReader, filename, contentType, map[string]interface{}{},
  25. )
  26. if err != nil {
  27. return nil, result, err
  28. }
  29. var resp = new(MarketingImageUploadResponse)
  30. if err = core.UnMarshalResponse(result.Response, resp); err != nil {
  31. return nil, result, err
  32. }
  33. return resp, result, nil
  34. }