lovefeast

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 9, 2023 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Amount

type Amount struct {
	// 订单总金额,单位为分。
	Total *int64 `json:"total"`
	// 用户支付金额,单位为分。
	PayerTotal *int64 `json:"payer_total"`
	// CNY:人民币,境内商户号仅支持人民币。
	Currency *string `json:"currency"`
	// 用户支付币种
	PayerCurrency *string `json:"payer_currency"`
}

Amount

func (Amount) Clone

func (o Amount) Clone() *Amount

func (Amount) MarshalJSON

func (o Amount) MarshalJSON() ([]byte, error)

func (Amount) String

func (o Amount) String() string

type BrandEntity

type BrandEntity struct {
	// 用户在该品牌下捐赠的总次数
	DonateCount *int64 `json:"donate_count"`
	// 仅供参品牌返回,该品牌为环卫工人供餐总量
	ConsumeCount *int64 `json:"consume_count,omitempty"`
}

BrandEntity

func (BrandEntity) Clone

func (o BrandEntity) Clone() *BrandEntity

func (BrandEntity) MarshalJSON

func (o BrandEntity) MarshalJSON() ([]byte, error)

func (BrandEntity) String

func (o BrandEntity) String() string

type BrandsApiService

type BrandsApiService services.Service

func (*BrandsApiService) GetBrand

func (a *BrandsApiService) GetBrand(ctx context.Context, req GetBrandRequest) (resp *BrandEntity, result *core.APIResult, err error)

GetBrand 查询爱心餐品牌信息

接口介绍:商户根据品牌ID查询爱心餐品牌的捐赠与供餐信息 适用对象:服务商、直连商户

Example
package main

import (
	"context"
	"log"

	"github.com/Marek-maxs/wechatpay-go/core"
	"github.com/Marek-maxs/wechatpay-go/core/option"
	"github.com/Marek-maxs/wechatpay-go/services/lovefeast"
	"github.com/Marek-maxs/wechatpay-go/utils"
)

func main() {
	var (
		mchID                      string = "190000****"                               // 商户号
		mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
		mchAPIv3Key                string = "2ab9****************************"         // 商户APIv3密钥
	)

	// 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
	mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
	if err != nil {
		log.Printf("load merchant private key error:%s", err)
		return
	}

	ctx := context.Background()
	// 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
	opts := []core.ClientOption{
		option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
	}
	client, err := core.NewClient(ctx, opts...)
	if err != nil {
		log.Printf("new wechat pay client err:%s", err)
		return
	}

	svc := lovefeast.BrandsApiService{Client: client}
	resp, result, err := svc.GetBrand(ctx,
		lovefeast.GetBrandRequest{
			BrandId: core.Int64(1442),
		},
	)

	if err != nil {
		// 处理错误
		log.Printf("call GetBrand err:%s", err)
	} else {
		// 处理返回结果
		log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
	}
}
Output:

type GetBrandRequest

type GetBrandRequest struct {
	// 品牌的品牌ID,商家进驻微信支付品牌商家后获得的品牌ID
	BrandId *int64 `json:"brand_id"`
}

GetBrandRequest

func (GetBrandRequest) Clone

func (o GetBrandRequest) Clone() *GetBrandRequest

func (GetBrandRequest) MarshalJSON

func (o GetBrandRequest) MarshalJSON() ([]byte, error)

func (GetBrandRequest) String

func (o GetBrandRequest) String() string

type GetByUserRequest

type GetByUserRequest struct {
	// 用户在商户AppID下的唯一标识
	Openid *string `json:"openid"`
	// 商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一
	OutTradeNo *string `json:"out_trade_no"`
}

GetByUserRequest

func (GetByUserRequest) Clone

func (GetByUserRequest) MarshalJSON

func (o GetByUserRequest) MarshalJSON() ([]byte, error)

func (GetByUserRequest) String

func (o GetByUserRequest) String() string

type ListByUserRequest

type ListByUserRequest struct {
	// 用户在商户AppID下的唯一标识
	Openid *string `json:"openid"`
	// 品牌的品牌ID,商家进驻微信支付品牌商家后获得的品牌ID
	BrandId *int64 `json:"brand_id"`
	// 返回的最大记录条数,默认值为10
	Limit *int64 `json:"limit"`
	// 查询起始位置,默认值为0
	Offset *int64 `json:"offset,omitempty"`
}

ListByUserRequest

func (ListByUserRequest) Clone

func (ListByUserRequest) MarshalJSON

func (o ListByUserRequest) MarshalJSON() ([]byte, error)

func (ListByUserRequest) String

func (o ListByUserRequest) String() string

type MerchantOrder

type MerchantOrder struct {
	// 商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一。 特殊规则:最小字符长度为6
	OutTradeNo *string `json:"out_trade_no"`
	// 直连商户的商户号或服务商的商户号,由微信支付生成并下发。
	Mchid *string `json:"mchid"`
	// 子商户的商户号,由微信支付生成并下发。
	SubMchid *string `json:"sub_mchid,omitempty"`
	// 一块捐用户所在门店的商家编号。
	StoreId *string `json:"store_id"`
}

MerchantOrder

func (MerchantOrder) Clone

func (o MerchantOrder) Clone() *MerchantOrder

func (MerchantOrder) MarshalJSON

func (o MerchantOrder) MarshalJSON() ([]byte, error)

func (MerchantOrder) String

func (o MerchantOrder) String() string

type OrdersApiService

type OrdersApiService services.Service

func (*OrdersApiService) GetByUser

func (a *OrdersApiService) GetByUser(ctx context.Context, req GetByUserRequest) (resp *OrdersEntity, result *core.APIResult, err error)

GetByUser 查询用户捐赠单详情

接口介绍:商户根据商户订单号与用户标识查询捐赠单详情 适用对象:服务商、直连商户

Example
package main

import (
	"context"
	"log"

	"github.com/Marek-maxs/wechatpay-go/core"
	"github.com/Marek-maxs/wechatpay-go/core/option"
	"github.com/Marek-maxs/wechatpay-go/services/lovefeast"
	"github.com/Marek-maxs/wechatpay-go/utils"
)

func main() {
	var (
		mchID                      string = "190000****"                               // 商户号
		mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
		mchAPIv3Key                string = "2ab9****************************"         // 商户APIv3密钥
	)

	// 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
	mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
	if err != nil {
		log.Printf("load merchant private key error:%s", err)
		return
	}

	ctx := context.Background()
	// 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
	opts := []core.ClientOption{
		option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
	}
	client, err := core.NewClient(ctx, opts...)
	if err != nil {
		log.Printf("new wechat pay client err:%s", err)
		return
	}

	svc := lovefeast.OrdersApiService{Client: client}
	resp, result, err := svc.GetByUser(ctx,
		lovefeast.GetByUserRequest{
			Openid:     core.String("oUpF8uMuAJO_M2pxb1Q9zNjWeS6o"),
			OutTradeNo: core.String("1217752501201407033233368018"),
		},
	)

	if err != nil {
		// 处理错误
		log.Printf("call GetByUser err:%s", err)
	} else {
		// 处理返回结果
		log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
	}
}
Output:

func (*OrdersApiService) ListByUser

func (a *OrdersApiService) ListByUser(ctx context.Context, req ListByUserRequest) (resp *OrdersListByUserResponse, result *core.APIResult, err error)

ListByUser 查询用户捐赠单列表

接口介绍:商户可根据品牌ID与用户标识查询捐赠单列表 适用对象:服务商、直连商户

Example
package main

import (
	"context"
	"log"

	"github.com/Marek-maxs/wechatpay-go/core"
	"github.com/Marek-maxs/wechatpay-go/core/option"
	"github.com/Marek-maxs/wechatpay-go/services/lovefeast"
	"github.com/Marek-maxs/wechatpay-go/utils"
)

func main() {
	var (
		mchID                      string = "190000****"                               // 商户号
		mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
		mchAPIv3Key                string = "2ab9****************************"         // 商户APIv3密钥
	)

	// 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
	mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
	if err != nil {
		log.Printf("load merchant private key error:%s", err)
		return
	}

	ctx := context.Background()
	// 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
	opts := []core.ClientOption{
		option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
	}
	client, err := core.NewClient(ctx, opts...)
	if err != nil {
		log.Printf("new wechat pay client err:%s", err)
		return
	}

	svc := lovefeast.OrdersApiService{Client: client}
	resp, result, err := svc.ListByUser(ctx,
		lovefeast.ListByUserRequest{
			Openid:  core.String("oUpF8uMuAJO_M2pxb1Q9zNjWeS6o"),
			BrandId: core.Int64(2250),
			Limit:   core.Int64(20),
			Offset:  core.Int64(0),
		},
	)

	if err != nil {
		// 处理错误
		log.Printf("call ListByUser err:%s", err)
	} else {
		// 处理返回结果
		log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
	}
}
Output:

type OrdersEntity

type OrdersEntity struct {
	// 捐赠订单号
	WelfareTradeId *string `json:"welfare_trade_id"`
	// 直连商户或服务商申请的公众号或移动应用AppID
	Appid *string `json:"appid"`
	// 子商户申请的公众号或移动应用AppID
	SubAppid *string `json:"sub_appid,omitempty"`
	// 品牌的品牌ID,商家进驻微信支付品牌商家后获得的品牌ID
	BrandId *int64 `json:"brand_id"`
	// 捐赠来源 枚举值 MINIPROGRAM_PAY:一起捐小程序 ENTRUST_PAY:一块捐插件
	DonateSource *string `json:"donate_source"`
	// 商户订单,仅在一块捐来源回调中出现
	MerchantOrder *MerchantOrder `json:"merchant_order,omitempty"`
	// 捐赠公益机构名称。
	InstitutionName *string `json:"institution_name"`
	// 本次捐赠项目编号。
	BusinessId *string `json:"business_id"`
	// 本次捐赠活动名称。
	BusinessName *string `json:"business_name"`
	// 支付完成时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。
	SuccessTime *string `json:"success_time"`
	// 支付者信息
	Payer *Payer `json:"payer"`
	// 订单金额信息
	Amount *Amount `json:"amount"`
	// 设备编号,通过物料码进入爱心餐一起捐小程序捐赠时携带的设备编号参数
	DeviceId *string `json:"device_id,omitempty"`
}

OrdersEntity

func (OrdersEntity) Clone

func (o OrdersEntity) Clone() *OrdersEntity

func (OrdersEntity) MarshalJSON

func (o OrdersEntity) MarshalJSON() ([]byte, error)

func (OrdersEntity) String

func (o OrdersEntity) String() string

type OrdersListByUserResponse

type OrdersListByUserResponse struct {
	// 捐赠单详情
	Data []OrdersEntity `json:"data"`
	// 该次请求返回的记录条数
	Count *int64 `json:"count"`
	// 返回的最大记录条数,默认值为10
	Limit *int64 `json:"limit"`
	// 查询起始位置。
	Offset *int64 `json:"offset"`
	// 全部记录数量
	TotalCount *int64 `json:"total_count"`
}

OrdersListByUserResponse

func (OrdersListByUserResponse) Clone

func (OrdersListByUserResponse) MarshalJSON

func (o OrdersListByUserResponse) MarshalJSON() ([]byte, error)

func (OrdersListByUserResponse) String

func (o OrdersListByUserResponse) String() string

type Payer

type Payer struct {
	// 用户在AppID下的唯一标识。在【一块捐】场景下按照商家下单时AppID生成;在【一起捐】场景下按照商户登记AppID生成。
	Openid *string `json:"openid"`
	// 用户在子AppID下的唯一标识。在【一块捐】场景下按照商家下单时子AppID生成;在【一起捐】场景下按照商户登记子AppID生成。
	SubOpenid *string `json:"sub_openid,omitempty"`
	// 用户在爱心餐小程序授权头像的URL
	Avatar *string `json:"avatar,omitempty"`
	// 用户在爱心餐小程序授权昵称
	Nickname *string `json:"nickname,omitempty"`
}

Payer

func (Payer) Clone

func (o Payer) Clone() *Payer

func (Payer) MarshalJSON

func (o Payer) MarshalJSON() ([]byte, error)

func (Payer) String

func (o Payer) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL