alipay

package module
v0.0.0-...-aa8f08c Latest Latest
Warning

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

Go to latest
Published: Dec 1, 2023 License: Apache-2.0 Imports: 22 Imported by: 0

README

支付宝相关接口(简易版)

支付宝相关支付、小程序登录、小程序二维码、小程序订单同步

安装

启用 Go module
go get github.com/Caiqm/alipay
import "github.com/Caiqm/alipay"
未启用 Go module
go get github.com/Caiqm/alipay
import "github.com/Caiqm/alipay"

如何使用

// 实例化支付宝支付
var client, err = alipay.New(appID, privateKey, isProduction)
关于应用私钥 (privateKey)

应用私钥是我们通过工具生成的私钥,调用支付宝接口的时候,我们需要使用该私钥对参数进行签名。

关于 alipay.New() 函数中的最后一个参数 isProduction

支付宝提供了用于开发时测试的 sandbox 环境,对接的时候需要注意相关的 app id 和密钥是 sandbox 环境还是 production 环境的。如果是 sandbox 环境,本参数应该传 false,否则为 true。

普通公钥模式

需要注意此处用到的公钥是支付宝公钥,不是我们用工具生成的应用公钥。

如何查看支付宝公钥?

client.LoadAlipayCertPublicKey("aliPublicKey")

支付宝APP支付

func TestClient_TradeAppPay(t *testing.T) {
	t.Log("========== TradeAppPay ==========")
	var p = TradeAppPay{}
	p.NotifyURL = "http://203.86.24.181:3000/alipay"
	p.Body = "body"
	p.Subject = "商品标题"
	p.OutTradeNo = "01010101"
	p.TotalAmount = "100.00"
	p.ProductCode = "p_1010101"
	param, err := client.TradeAppPay(p)
	if err != nil {
		t.Fatal(err)
	}
	t.Log(param)
}

支付宝小程序登录

// 换取授权访问令牌接口
func TestClient_SystemOauthToken(t *testing.T) {
    t.Log("========== SystemOauthToken ==========")
    var p = SystemOauthToken{}
    p.GrantType = "authorization_code"
    p.Code = "647f16afe0b44c49a8eb1cb3c02aXX31"
    rsp, err := client.SystemOauthToken(p)
    if err != nil {
    t.Fatal(err)
    }
    if rsp.IsFailure() {
    t.Fatal(rsp.Msg, rsp.SubMsg)
    }
    t.Logf("%v", rsp)
}

支付宝小程序订单数据同步

// 订单数据同步接口,注意:需要根据行业来进行调整
func TestClient_OrderPush(t *testing.T) {
	t.Log("========== OrderPush ==========")
	// 商品信息
	var i ItemOrder
	i.ItemName = "开始处理"
	// 素材图片
	materialExtInfo := ExtInfo{
		ExtKey:   "image_material_id",
		ExtValue: "",
	}
	i.ExtInfo = append(i.ExtInfo, materialExtInfo)
	// 额外参数
	var e, e1, e2, e3 ExtInfo
	e.ExtKey = "merchant_order_status"
	e.ExtValue = "START_SERVICE"
	e1.ExtKey = "merchant_order_link_page"
	e1.ExtValue = "/pages/order/orderDetail"
	e2.ExtKey = "tiny_app_id"
	e2.ExtValue = client.appId
	e3.ExtKey = "merchant_biz_type"
	e3.ExtValue = "BUSINESS_REGISTRATION"
	// 主要参数
	var p OrderPush
	p.ItemOrderList = append(p.ItemOrderList, i)
	p.ExtInfo = append(p.ExtInfo, e)
	p.ExtInfo = append(p.ExtInfo, e1)
	p.ExtInfo = append(p.ExtInfo, e2)
	p.ExtInfo = append(p.ExtInfo, e3)
	p.Amount = 1
	p.OrderCreateTime = time.Now().Format(time.DateTime)
	p.OrderModifiedTime = p.OrderCreateTime
	p.SourceApp = "Alipay"
	p.OutBizNo = time.Now().Format("20060102150405") + strconv.Itoa(int(time.Now().Unix()))
	p.OrderType = "SERVICE_ORDER"
	p.BuyerInfo = BuyerInfo{UserId: ""}
	rsp, err := client.OrderPush(p)
	if err != nil {
		t.Fatal(err)
	}
	t.Logf("%v", rsp)
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNullParams           = errors.New("alipay: bad params")
	ErrBadResponse          = errors.New("alipay: bad response")
	ErrSignNotFound         = errors.New("alipay: sign content not found")
	ErrAliPublicKeyNotFound = errors.New("alipay: alipay public key not found")
)

Functions

This section is empty.

Types

type AuxParam

type AuxParam struct {
}

func (AuxParam) NeedEncrypt

func (aux AuxParam) NeedEncrypt() bool

func (AuxParam) NeedVerify

func (aux AuxParam) NeedVerify() bool

type BKAgentRespInfo

type BKAgentRespInfo struct {
	BindtrxId        string `json:"bindtrx_id"`
	BindclrissrId    string `json:"bindclrissr_id"`
	BindpyeracctbkId string `json:"bindpyeracctbk_id"`
	BkpyeruserCode   string `json:"bkpyeruser_code"`
	EstterLocation   string `json:"estter_location"`
}

type BuyerInfo

type BuyerInfo struct {
	Name     string    `json:"name,omitempty"`      // 姓名
	Mobile   string    `json:"mobile,omitempty"`    // 手机号
	CertType string    `json:"cert_type,omitempty"` // 证件类型。身份证: IDENTITY_CARD 户口本: HOKOU 护照: PASSPORT 军官证: OFFICER_CARD 士兵证: SOLDIER_CARD
	CertNo   string    `json:"cert_no,omitempty"`   // 证件号
	UserId   string    `json:"user_id,omitempty"`   // 支付宝uid
	ExtInfo  []ExtInfo `json:"ext_info,omitempty"`  // 扩展信息
}

买家信息

type ChargeInfo

type ChargeInfo struct {
	ChargeFee               string          `json:"charge_fee"`
	OriginalChargeFee       string          `json:"original_charge_fee"`
	SwitchFeeRate           string          `json:"switch_fee_rate"`
	IsRatingOnTradeReceiver string          `json:"is_rating_on_trade_receiver"`
	IsRatingOnSwitch        string          `json:"is_rating_on_switch"`
	ChargeType              string          `json:"charge_type"`
	SubFeeDetailList        []*SubFeeDetail `json:"sub_fee_detail_list"`
}

type Client

type Client struct {
	Client *http.Client
	// contains filtered or unexported fields
}

func New

func New(appId, privateKey string, isProduction bool, opts ...OptionFunc) (nClient *Client, err error)

初始化客户端

func (*Client) CreateQrcode

func (c *Client) CreateQrcode(param CreateQrcode) (result *CreateQrcodeRsp, err error)

CreateQrcode 小程序生成推广二维码接口 https://opendocs.alipay.com/mini/a25c5d8f_alipay.open.app.qrcode.create?scene=common&pathHash=2334bbff

func (*Client) DecodePhoneNumber

func (c *Client) DecodePhoneNumber(data []byte) (result *MobileNumber, err error)

DecodePhoneNumber 小程序获取会员手机号 https://opendocs.alipay.com/mini/api/getphonenumber 本方法用于解码小程序端 my.getPhoneNumber 获取的数据

func (*Client) LoadAlipayCertPublicKey

func (c *Client) LoadAlipayCertPublicKey(s string) (err error)

加载支付宝公钥

func (*Client) LoadOptionFunc

func (c *Client) LoadOptionFunc(opts ...OptionFunc)

加载接口链接

func (*Client) MerchantFileUpload

func (c *Client) MerchantFileUpload(param MerchantFileUpload) (result *MerchantFileUploadRsp, err error)

MerchantFileUpload 商品文件上传接口 https://opendocs.alipay.com/mini/510d4a72_alipay.merchant.item.file.upload?scene=common&pathHash=c08922b1

func (*Client) OnReceivedData

func (c *Client) OnReceivedData(fn func(method string, data []byte))

func (*Client) OrderPush

func (c *Client) OrderPush(param OrderPush) (result *OrderPushRsp, err error)

OrderPush 订单数据同步接口 https://opendocs.alipay.com/mini/84f9ee3c_alipay.merchant.order.sync?scene=common&pathHash=103117c9

func (*Client) Request

func (c *Client) Request(payload *Payload, result interface{}) (err error)

请求接口

func (*Client) SetEncryptKey

func (c *Client) SetEncryptKey(key string) error

SetEncryptKey 接口内容加密密钥 https://opendocs.alipay.com/common/02mse3

func (*Client) SystemOauthToken

func (c *Client) SystemOauthToken(param SystemOauthToken) (result *SystemOauthTokenRsp, err error)

SystemOauthToken 换取授权访问令牌接口 https://docs.open.alipay.com/api_9/alipay.system.oauth.token

func (*Client) TradeAppPay

func (c *Client) TradeAppPay(param TradeAppPay) (result string, err error)

TradeAppPay App支付接口 https://docs.open.alipay.com/api_1/alipay.trade.app.pay

func (*Client) TradeCreate

func (c *Client) TradeCreate(param TradeCreate) (result *TradeCreateRsp, err error)

TradeCreate 统一收单交易创建接口 https://docs.open.alipay.com/api_1/alipay.trade.create/

func (*Client) TradeFastPayRefundQuery

func (c *Client) TradeFastPayRefundQuery(param TradeFastPayRefundQuery) (result *TradeFastPayRefundQueryRsp, err error)

TradeFastPayRefundQuery 统一收单交易退款查询接口 https://docs.open.alipay.com/api_1/alipay.trade.fastpay.refund.query

func (*Client) TradePagePay

func (c *Client) TradePagePay(param TradePagePay) (result *url.URL, err error)

TradePagePay 统一收单下单并支付页面接口 https://docs.open.alipay.com/api_1/alipay.trade.page.pay

func (*Client) TradeQuery

func (c *Client) TradeQuery(param TradeQuery) (result *TradeQueryRsp, err error)

TradeQuery 统一收单线下交易查询接口 https://docs.open.alipay.com/api_1/alipay.trade.query/

func (*Client) TradeRefund

func (c *Client) TradeRefund(param TradeRefund) (result *TradeRefundRsp, err error)

TradeRefund 统一收单交易退款接口 https://docs.open.alipay.com/api_1/alipay.trade.refund/

func (*Client) TradeWapPay

func (c *Client) TradeWapPay(param TradeWapPay) (result *url.URL, err error)

TradeWapPay 手机网站支付接口 https://docs.open.alipay.com/api_1/alipay.trade.wap.pay/

func (*Client) URLValues

func (c *Client) URLValues(param Param) (value url.Values, err error)

请求参数

func (*Client) UserInfoShare

func (c *Client) UserInfoShare(param UserInfoShare) (result *UserInfoShareRsp, err error)

UserInfoShare 支付宝会员授权信息查询接口 https://docs.open.alipay.com/api_2/alipay.user.info.share

func (*Client) Verify

func (c *Client) Verify(signContent, sign []byte) (err error)

验证密钥

type Code

type Code string

Code 支付宝接口响应错误码 https://doc.open.alipay.com/docs/doc.htm?treeId=291&articleId=105806&docType=1

const (
	CodeSuccess                Code = "10000" // 接口调用成功
	CodeUnknowError            Code = "20000" // 服务不可用
	CodeInvalidAuthToken       Code = "20001" // 授权权限不足
	CodeMissingParam           Code = "40001" // 缺少必选参数
	CodeInvalidParam           Code = "40002" // 非法的参数
	CodeInsufficientConditions Code = "40003" // 条件异常
	CodeBusinessFailed         Code = "40004" // 业务处理失败
	CodeCallLimited            Code = "40005" // 调用频次超限
	CodePermissionDenied       Code = "40006" // 权限不足
)

公共错误码 https://opendocs.alipay.com/common/02km9f#API%20%E5%85%AC%E5%85%B1%E9%94%99%E8%AF%AF%E7%A0%81

func (Code) IsFailure

func (c Code) IsFailure() bool

func (Code) IsSuccess

func (c Code) IsSuccess() bool

type CreateQrcode

type CreateQrcode struct {
	AuxParam
	AppAuthToken string `json:"-"`           // 可选
	UrlParam     string `json:"url_param"`   // 跳转小程序的页面路径,小程序中能访问到的页面路径
	QueryParam   string `json:"query_param"` // 小程序的启动参数,打开小程序的query ,在小程序 onLaunch的方法中获取
	Describe     string `json:"describe"`    // 对应的二维码描述
	Color        string `json:"color"`       // 圆形二维码颜色(十六进制颜色色值),仅圆形二维码支持颜色设置,方形二维码默认为黑色
	Size         string `json:"size"`        // 合成后图片的大小规格,有s、m、l三档可选,s: 8cm大小 m: 12cm大小 l: 30cm大小
}

CreateQrcode 小程序生成推广二维码接口 https://opendocs.alipay.com/mini/a25c5d8f_alipay.open.app.qrcode.create?scene=common&pathHash=2334bbff

func (CreateQrcode) APIName

func (c CreateQrcode) APIName() string

func (CreateQrcode) Params

func (c CreateQrcode) Params() map[string]string

type CreateQrcodeRsp

type CreateQrcodeRsp struct {
	Error
	QrCodeUrl            string `json:"qr_code_url"`              // 方形二维码图片链接地址
	QrCodeUrlCircleWhite string `json:"qr_code_url_circle_white"` // 圆形二维码地址,白色slogan
	QrCodeUrlCircleBlue  string `json:"qr_code_url_circle_blue"`  // 圆形二维码地址,蓝色slogan
}

CreateQrcodeRsp 小程序生成推广二维码接口响应参数

type DepositBackInfo

type DepositBackInfo struct {
	HasDepositBack     string `json:"has_deposit_back"`
	DBackStatus        string `json:"dback_status"`
	DBackAmount        string `json:"dback_amount"`
	BankAckTime        string `json:"bank_ack_time"`
	ESTBankReceiptTime string `json:"est_bank_receipt_time"`
}

type DiscountInfo

type DiscountInfo struct {
	ExternalDiscountId string  `json:"external_discount_id"`         // 外部优惠id
	DiscountName       string  `json:"discount_name"`                // 优惠名称
	DiscountQuantity   int64   `json:"discount_quantity,omitempty"`  // 优惠数量
	DiscountAmount     float64 `json:"discount_amount"`              // 优惠金额 单位为【元】
	DiscountPageLink   string  `json:"discount_page_link,omitempty"` // 优惠跳转链接地址
}

订单优惠信息

type Error

type Error struct {
	Code    Code   `json:"code"`
	Msg     string `json:"msg"`
	SubCode string `json:"sub_code"`
	SubMsg  string `json:"sub_msg"`
}

func (Error) Error

func (e Error) Error() string

func (Error) IsFailure

func (e Error) IsFailure() bool

func (Error) IsSuccess

func (e Error) IsSuccess() bool

type ExtInfo

type ExtInfo struct {
	ExtKey   string `json:"ext_key"`   // 键
	ExtValue string `json:"ext_value"` // 值
}

额外信息

type FundBill

type FundBill struct {
	FundChannel string  `json:"fund_channel"`       // 交易使用的资金渠道,详见 支付渠道列表
	BankCode    string  `json:"bank_code"`          // 银行卡支付时的银行代码
	Amount      string  `json:"amount"`             // 该支付工具类型所使用的金额
	RealAmount  float64 `json:"real_amount,string"` // 渠道实际付款金额
}

type GoodsDetailItem

type GoodsDetailItem struct {
	GoodsId       string `json:"goods_id"`
	AliPayGoodsId string `json:"alipay_goods_id"`
	GoodsName     string `json:"goods_name"`
	Quantity      string `json:"quantity"`
	Price         string `json:"price"`
	GoodsCategory string `json:"goods_category"`
	Body          string `json:"body"`
	ShowUrl       string `json:"show_url"`
}

type HBFQPayInfo

type HBFQPayInfo struct {
	UserInstallNum string `json:"user_install_num"` // 用户使用花呗分期支付的分期数
}

type ItemOrder

type ItemOrder struct {
	SkuId      string    `json:"sku_id"`             // 商品 sku id
	ItemId     string    `json:"item_id"`            // 商品ID 支付宝平台侧商品ID
	ItemName   string    `json:"item_name"`          // 商品名称
	UnitPrice  float64   `json:"unit_price"`         // 商品单价(单位:元)。 小程序订单助手业务中,为必传;其他业务场景参见对应的产品文档。
	Quantity   int64     `json:"quantity"`           // 商品数量(单位:自拟)小程序订单助手业务中,为必传;其他业务场景参见对应的产品文档。
	Unit       string    `json:"unit"`               // 商品规格,例如:斤
	Status     string    `json:"status"`             // 商品状态枚举 初始状态: INIT 已退款: REFUNDED 已关闭: CLOSED 处理中: PROCESSING 待支付: WAIT_PAY 业务完结: BIZ_FINISHED 已完结: SUCCESS_FINISHED 已支付: PAID 已提交: SUBMITTED 业务关闭: BIZ_CLOSED (注意事项: 默认无需传入,如需使用请联系业务负责人)
	StatusDesc string    `json:"status_desc"`        // 商品状态描述,默认无需传入,如需使用请联系业务负责人
	ExtInfo    []ExtInfo `json:"ext_info,omitempty"` // 扩展信息
}

商品信息

type JourneyOrder

type JourneyOrder struct {
	MerchantJourneyNo string    `json:"merchant_journey_no"`     // 商户行程单号 注意事项 同一个pid下的行程单号需唯一。同一个pid下外部行程单号唯一
	JourneyDesc       string    `json:"journey_desc,omitempty"`  // 行程描述
	JourneyIndex      string    `json:"journey_index,omitempty"` // 描述本行程为整个行程中的第几程
	Title             string    `json:"title,omitempty"`         // 行程标题
	Status            string    `json:"status,omitempty"`        // 行程状态 注:行程状态必须与支付宝侧进行约定
	StatusDesc        string    `json:"status_desc,omitempty"`   // 行程状态描述
	Type              string    `json:"type"`                    // 行程类型,例如:airticket
	SubType           string    `json:"sub_type"`                // 行程子类型,例如:abroad
	JourneyCreateTime string    `json:"journey_create_time"`     // 行程创建时间
	JourneyModifyTime string    `json:"journey_modify_time"`     // 行程修改时间
	Action            string    `json:"action,omitempty"`        // 操作动作 删除后的行程不再展示: DELETE
	ExtInfo           []ExtInfo `json:"ext_info"`                // 扩展信息
}

行程信息

type LogisticsInfo

type LogisticsInfo struct {
	TrackingNo    string `json:"tracking_no"`    // 物流单号
	LogisticsCode string `json:"logistics_code"` // 物流公司编号。 物流公司编号值请查看产品文档。该值为空时,有可能匹配不到物流信息。若有则必传
}

物流信息

type MerchantFileUpload

type MerchantFileUpload struct {
	AuxParam
	AppAuthToken string `json:"-"` // 可选
	Scene        string `json:"-"` // 业务场景描述。 小程序订单中心场景固定为 SYNC_ORDER。
}

MerchantFileUpload 商品文件上传接口 https://opendocs.alipay.com/mini/510d4a72_alipay.merchant.item.file.upload?scene=common&pathHash=c08922b1

func (MerchantFileUpload) APIName

func (o MerchantFileUpload) APIName() string

func (MerchantFileUpload) Params

func (o MerchantFileUpload) Params() map[string]string

type MerchantFileUploadRsp

type MerchantFileUploadRsp struct {
	MaterialId  string `json:"material_id"`  // 文件在商品中心的素材标识(素材ID长期有效)
	MaterialKey string `json:"material_key"` // 文件在商品中心的素材标示,创建/更新商品时使用
}

MerchantFileUploadRsp 商品文件上传接口响应接口

type MobileNumber

type MobileNumber struct {
	Code   Code   `json:"code"`
	Msg    string `json:"msg"`
	Mobile string `json:"mobile"`
}

MobileNumber 小程序获取会员手机号 https://opendocs.alipay.com/mini/api/getphonenumber

type OptionFunc

type OptionFunc func(c *Client)

func WithFileInformation

func WithFileInformation(name, path string, fileType bool) OptionFunc

加载文件信息

type OrderPush

type OrderPush struct {
	AuxParam
	AppAuthToken      string          `json:"-"`                             // 可选
	OutBizNo          string          `json:"out_biz_no"`                    // 外部订单号 out_biz_no唯一对应一笔订单,相同的订单需传入相同的out_biz_no
	BuyerInfo         BuyerInfo       `json:"buyer_info"`                    // 买家信息
	ServiceCode       string          `json:"service_code,omitempty"`        // 服务code:传入小程序后台提报的服务id,将订单与服务关联,有利于提高服务曝光机会;入参服务id的类目须与订单类型相符,若不相符将会报错;如订单类型为“外卖”,则入参的服务ID所对应的服务类目也必须得是”外卖“;service_code 通过 alipay.open.app.service.apply,(服务提报申请)接口创建服务后获取。
	Amount            float64         `json:"amount"`                        // 订单总金额:某笔交易订单优惠前的总金额,单位为【元】SERVICE_ORDER且不涉及金额可不传入该字段,其他场景必传
	PayAmount         float64         `json:"pay_amount"`                    // 用户应付金额 :用户最终结算时需要支付金额(不包含选择支付宝付款时,支付宝给予的优惠减免金额),单位为【元】SERVICE_ORDER且不涉及金额可不传入该字段,其他场景必传
	OrderType         string          `json:"order_type"`                    // 订单类型 服务订单: SERVICE_ORDER
	CategoryId        string          `json:"category_id,omitempty"`         // 标准服务类目
	DiscountAmount    float64         `json:"discount_amount,omitempty"`     // 商户总计优惠金额:代表商户侧给予用户的总计优惠金额 (不包含选择支付宝付款时,支付宝给予的优惠减免金额),单位为【元】。
	TradeNo           string          `json:"trade_no"`                      // 订单所对应的支付宝交易号
	TradeType         string          `json:"trade_type"`                    // 交易号类型 交易: TRADE 受托: ENTRUST 转账: TRANSFER
	PayTimeoutExpress string          `json:"pay_timeout_express,omitempty"` // 支付超时时间,超过时间支付宝自行关闭订单,例如:15h
	ItemOrderList     []ItemOrder     `json:"item_order_list,omitempty"`     // 商品信息列表,可选
	LogisticsInfoList []LogisticsInfo `json:"logistics_info_list,omitempty"` // "物流信息 列表最多支持物流信息个数,请参考产品文档 注:若该值不为空,且物流信息同步至我的快递,则在查询订单时可返回具体物流信息"
	ShopInfo          ShopInfo        `json:"shop_info,omitempty"`           // 门店信息,扫码点餐获取返佣时必填。
	OrderCreateTime   string          `json:"order_create_time,omitempty"`   // 订单创建时间 注意事项: 当order_type为SERVICE_ORDER时必传
	OrderModifiedTime string          `json:"order_modified_time"`           // 订单修改时间 注意事项: 用于订单状态或数据变化较快的顺序控制,SERVICE_ORDER按照行业标准化接入场景必须传入该字段控制乱序。order_modified_time较晚的同步会被最终存储,order_modified_time相同的两次同步会被幂等处理
	OrderPayTime      string          `json:"order_pay_time,omitempty"`      // 订单支付时间 注意事项: 当pay_channel为非ALIPAY时,且订单状态已流转到“支付”或支付后时,需要将支付时间传入
	SendMsg           string          `json:"send_msg"`                      // 是否需要小程序订单代理发送模版消息。不传默认不发送,需要发送: Y 不需要发送: N
	DiscountInfoList  []DiscountInfo  `json:"discount_info_list,omitempty"`  // 订单优惠信息
	SyncContent       string          `json:"sync_content"`                  // 同步内容 全部(默认): ALL 仅行程信息: JOURNEY_ONLY
	JourneyOrderList  []JourneyOrder  `json:"journey_order_list,omitempty"`  // 行程信息
	SourceApp         string          `json:"source_app"`                    // 用于区分用户下单的订单来源 支付宝端内: Alipay 钉钉小程序: DingTalk
	ExtInfo           []ExtInfo       `json:"ext_info"`                      // 扩展信息
}

OrderPush 订单数据同步接口 https://opendocs.alipay.com/mini/84f9ee3c_alipay.merchant.order.sync?scene=common&pathHash=103117c9

func (OrderPush) APIName

func (o OrderPush) APIName() string

func (OrderPush) Params

func (o OrderPush) Params() map[string]string

type OrderPushRsp

type OrderPushRsp struct {
	RecordId         string `json:"record_id"`    // 同步订单记录id (自2022年5月19日起,新接入商户,除点餐场景,该字段不再返回)
	OrderId          string `json:"order_id"`     // 支付宝订单号
	OrderStatus      string `json:"order_status"` // 订单状态
	DistributeResult []struct {
		SceneCode           string `json:"scene_code"`            // 分发场景code 订单消息: SERVICE_MSG
		SceneName           string `json:"scene_name"`            // 分发场景名,对应scene_code
		NotDistributeReason string `json:"not_distribute_reason"` // 未分发到场景的具体原因
	} `json:"distribute_result"` // 分发结果 若未分发到场景侧,则会返回具体的未分发原因
	SyncSuggestions []struct {
		Type    string `json:"type"`    // 同步建议类型
		Message string `json:"message"` // 同步建议内容
	} `json:"sync_suggestions"` // 订单同步优化建议
}

OrderPushRsp 订单数据同步接口响应参数

type Param

type Param interface {
	// APIName 用于提供访问的 method,即接口名称
	APIName() string

	// Params 公共请求参数
	Params() map[string]string

	// NeedEncrypt 该接口是否支持内容加密,有的接口不支持内容加密,比如文件上传接口:alipay.open.file.upload
	NeedEncrypt() bool

	// NeedVerify 是否对支付宝接口返回的数据进行签名验证, 为了安全建议都需要对签名进行验证,本方法存在是因为部分接口不支持签名验证。
	// 比如:应用支付宝公钥证书下载 https://opendocs.alipay.com/common/06ue2z
	NeedVerify() bool
}

type Payload

type Payload struct {
	Encrypt bool // 是否进行内容加密
	Verify  bool // 是否验证签名
	// contains filtered or unexported fields
}

func NewPayload

func NewPayload(method string) *Payload

func (*Payload) APIName

func (p *Payload) APIName() string

func (*Payload) AddBizField

func (p *Payload) AddBizField(key string, value interface{}) *Payload

AddBizField 添加请求参数 biz_content 的字段,这里添加的信息会序列化成 JSON 字符串,然后通过 biz_content 参数传递。

这里添加的参数一般为支付宝接口文档中的【请求参数】,参考:https://opendocs.alipay.com/apis/api_1/alipay.trade.query/#%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0

一般情况下,支付宝接口文档中的【请求参数】都是通过调用本方法添加。但是也有例外,如 https://opendocs.alipay.com/mini/05snwo#%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0 中的【请求参数】就需要调用 AddParam 进行添加,因为其【公共请求参数】中没有 biz_content 字段。

func (*Payload) AddParam

func (p *Payload) AddParam(key, value string) *Payload

AddParam 添加公共请求参数。

这里添加的参数一般为支付宝接口文档中的【公共请求参数】,参考:https://opendocs.alipay.com/apis/api_1/alipay.trade.query/#%E5%85%AC%E5%85%B1%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0

一般情况下,不需要调用本方法添加公共请求参数,因为公共参数基本都是必须且其值相对固定,都已处理。除了个别参数,如:app_auth_token。

func (*Payload) MarshalJSON

func (p *Payload) MarshalJSON() ([]byte, error)

转化为json

func (*Payload) NeedEncrypt

func (p *Payload) NeedEncrypt() bool

func (*Payload) NeedVerify

func (p *Payload) NeedVerify() bool

func (*Payload) Params

func (p *Payload) Params() map[string]string

type RefundChargeInfo

type RefundChargeInfo struct {
	RefundChargeFee        string                `json:"refund_charge_fee"`                    // 实退费用
	SwitchFeeRate          string                `json:"switch_fee_rate"`                      // 签约费率
	ChargeType             string                `json:"charge_type"`                          // 收单手续费trade,花呗分期手续hbfq,其他手续费charge
	RefundSubFeeDetailList []*RefundSubFeeDetail `json:"refund_sub_fee_detail_list,omitempty"` // 组合支付退费明细
}

type RefundRoyalty

type RefundRoyalty struct {
	RefundAmount  string `json:"refund_amount"`
	RoyaltyType   string `json:"royalty_type"`
	ResultCode    string `json:"result_code"`
	TransOut      string `json:"trans_out"`
	TransOutEmail string `json:"trans_out_email"`
	TransIn       string `json:"trans_in"`
	TransInEmail  string `json:"trans_in_email"`
}

type RefundRoyaltyParameter

type RefundRoyaltyParameter struct {
	RoyaltyType  string `json:"royalty_type,omitempty"`   // 可选 分账类型. 普通分账为:transfer;补差为:replenish;为空默认为分账transfer;
	TransOut     string `json:"trans_out,omitempty"`      // 可选 支出方账户。如果支出方账户类型为userId,本参数为支出方的支付宝账号对应的支付宝唯一用户号,以2088开头的纯16位数字;如果支出方类型为loginName,本参数为支出方的支付宝登录号。 泛金融类商户分账时,该字段不要上送。
	TransOutType string `json:"trans_out_type,omitempty"` // 可选 支出方账户类型。userId表示是支付宝账号对应的支付宝唯一用户号;loginName表示是支付宝登录号; 泛金融类商户分账时,该字段不要上送。
	TransInType  string `json:"trans_in_type,omitempty"`  // 可选 收入方账户类型。userId表示是支付宝账号对应的支付宝唯一用户号;cardAliasNo表示是卡编号;loginName表示是支付宝登录号;
	TransIn      string `json:"trans_in"`                 // 必选 收入方账户。如果收入方账户类型为userId,本参数为收入方的支付宝账号对应的支付宝唯一用户号,以2088开头的纯16位数字;如果收入方类型为cardAliasNo,本参数为收入方在支付宝绑定的卡编号;如果收入方类型为loginName,本参数为收入方的支付宝登录号;
	Amount       string `json:"amount,omitempty"`         // 可选 分账的金额,单位为元
	Desc         string `json:"desc,omitempty"`           // 可选 分账描述
	RoyaltyScene string `json:"royalty_scene,omitempty"`  // 可选 可选值:达人佣金、平台服务费、技术服务费、其他
	TransInName  string `json:"trans_in_name,omitempty"`  // 可选 分账收款方姓名,上送则进行姓名与支付宝账号的一致性校验,校验不一致则分账失败。不上送则不进行姓名校验
}

type RefundSubFeeDetail

type RefundSubFeeDetail struct {
	RefundChargeFee string `json:"refund_charge_fee"` // 实退费用
	SwitchFeeRate   string `json:"switch_fee_rate"`   // 签约费率
}

type ShopInfo

type ShopInfo struct {
	MerchantShopId       string `json:"merchant_shop_id"`        // 商户门店id 支持英文、数字的组合
	AlipayShopId         string `json:"alipay_shop_id"`          // 蚂蚁门店shop_id
	Name                 string `json:"name"`                    // 店铺名称
	Address              string `json:"address"`                 // 店铺地址
	PhoneNum             string `json:"phone_num"`               // 联系电话-支持固话或手机号 仅支持数字、+、- 。例如 手机:1380***1111、固话:021-888**888
	MerchantShopLinkPage string `json:"merchant_shop_link_page"` // 店铺详情链接地址,例如:pages/shop/index
	Type                 string `json:"type"`                    // 仅当alipay_shop_id字段值为非标准蚂蚁门店时使用,其他场景无需传入 蚂蚁门店: ALIPAY_SHOP 饿了么门店: ELEME_SHOP
}

门店信息

type SubFeeDetail

type SubFeeDetail struct {
	ChargeFee         string `json:"charge_fee"`
	OriginalChargeFee string `json:"original_charge_fee"`
	SwitchFeeRate     string `json:"switch_fee_rate"`
}

type SystemOauthToken

type SystemOauthToken struct {
	AuxParam
	AppAuthToken string `json:"-"` // 可选
	GrantType    string `json:"-"` // 值为 authorization_code 时,代表用code换取;值为refresh_token时,代表用refresh_token换取
	Code         string `json:"-"`
	RefreshToken string `json:"-"`
}

SystemOauthToken 换取授权访问令牌接口请求参数 https://docs.open.alipay.com/api_9/alipay.system.oauth.token

func (SystemOauthToken) APIName

func (s SystemOauthToken) APIName() string

func (SystemOauthToken) Params

func (s SystemOauthToken) Params() map[string]string

type SystemOauthTokenRsp

type SystemOauthTokenRsp struct {
	Error
	UserId       string `json:"user_id"`
	AccessToken  string `json:"access_token"`
	ExpiresIn    int64  `json:"expires_in"`
	RefreshToken string `json:"refresh_token"`
	ReExpiresIn  int64  `json:"re_expires_in"`
	AuthStart    string `json:"auth_start"`
	OpenId       string `json:"open_id"`
}

SystemOauthTokenRsp 换取授权访问令牌接口请求参数

type Trade

type Trade struct {
	AuxParam
	NotifyURL    string `json:"-"`
	ReturnURL    string `json:"-"`
	AppAuthToken string `json:"-"` // 可选

	// biz content,这四个参数是必须的
	Body        string `json:"body,omitempty"`
	Subject     string `json:"subject"`      // 订单标题
	OutTradeNo  string `json:"out_trade_no"` // 商户订单号,64个字符以内、可包含字母、数字、下划线;需保证在商户端不重复
	TotalAmount string `json:"total_amount"` // 订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]
	ProductCode string `json:"product_code"` // 销售产品码,与支付宝签约的产品码名称。 参考官方文档, App 支付时默认值为 QUICK_MSECURITY_PAY
}

type TradeAppPay

type TradeAppPay struct {
	Trade
}

TradeAppPay App支付接口请求参数 https://docs.open.alipay.com/api_1/alipay.trade.app.pay/

func (TradeAppPay) APIName

func (t TradeAppPay) APIName() string

func (TradeAppPay) NeedEncrypt

func (t TradeAppPay) NeedEncrypt() bool

func (TradeAppPay) Params

func (t TradeAppPay) Params() map[string]string

type TradeCreate

type TradeCreate struct {
	Trade
	DiscountableAmount string             `json:"discountable_amount"` // 可打折金额. 参与优惠计算的金额,单位为元,精确到小数点后两位
	BuyerId            string             `json:"buyer_id"`            // 买家支付宝用户ID。 2088开头的16位纯数字,小程序场景下获取用户ID请参考:用户授权; 其它场景下获取用户ID请参考:网页授权获取用户信息; 注:交易的买家与卖家不能相同。
	BuyerOpenId        string             `json:"buyer_open_id"`       // 新版接口无法获取user_id, 这里只能传递openid值
	OpAppId            string             `json:"op_app_id,omitempty"` // 小程序支付中,商户实际经营主体的小程序应用的appid, 注意事项:商户需要先在产品管理中心绑定该小程序appid,否则下单会失败
	GoodsDetail        []*GoodsDetailItem `json:"goods_detail,omitempty"`
	OperatorId         string             `json:"operator_id"`
	TerminalId         string             `json:"terminal_id"`
}

TradeCreate 统一收单交易创建接口请求参数 https://docs.open.alipay.com/api_1/alipay.trade.create/

func (TradeCreate) APIName

func (t TradeCreate) APIName() string

func (TradeCreate) Params

func (t TradeCreate) Params() map[string]string

type TradeCreateRsp

type TradeCreateRsp struct {
	Error
	TradeNo    string `json:"trade_no"` // 支付宝交易号
	OutTradeNo string `json:"out_trade_no"`
}

TradeCreateRsp 统一收单交易创建接口响应参数

type TradeFastPayRefundQuery

type TradeFastPayRefundQuery struct {
	AuxParam
	AppAuthToken string   `json:"-"`                       // 可选
	OutTradeNo   string   `json:"out_trade_no,omitempty"`  // 与 TradeNo 二选一
	TradeNo      string   `json:"trade_no,omitempty"`      // 与 OutTradeNo 二选一
	OutRequestNo string   `json:"out_request_no"`          // 必须 请求退款接口时,传入的退款请求号,如果在退款请求时未传入,则该值为创建交易时的外部交易号
	QueryOptions []string `json:"query_options,omitempty"` // 可选 查询选项,商户通过上送该参数来定制同步需要额外返回的信息字段,数组格式。 refund_detail_item_list
}

TradeFastPayRefundQuery 统一收单交易退款查询接口请求参数 https://docs.open.alipay.com/api_1/alipay.trade.fastpay.refund.query

func (TradeFastPayRefundQuery) APIName

func (t TradeFastPayRefundQuery) APIName() string

func (TradeFastPayRefundQuery) Params

func (t TradeFastPayRefundQuery) Params() map[string]string

type TradeFastPayRefundQueryRsp

type TradeFastPayRefundQueryRsp struct {
	Error
	TradeNo              string              `json:"trade_no"`                          // 支付宝交易号
	OutTradeNo           string              `json:"out_trade_no"`                      // 创建交易传入的商户订单号
	OutRequestNo         string              `json:"out_request_no"`                    // 本笔退款对应的退款请求号
	TotalAmount          string              `json:"total_amount"`                      // 发该笔退款所对应的交易的订单金额
	RefundAmount         string              `json:"refund_amount"`                     // 本次退款请求,对应的退款金额
	RefundStatus         string              `json:"refund_status"`                     // 退款状态。枚举值: REFUND_SUCCESS 退款处理成功; 未返回该字段表示退款请求未收到或者退款失败;
	RefundRoyaltys       []*RefundRoyalty    `json:"refund_royaltys"`                   // 退分账明细信息
	GMTRefundPay         string              `json:"gmt_refund_pay"`                    // 退款时间。
	RefundDetailItemList []*TradeFundBill    `json:"refund_detail_item_list"`           // 本次退款使用的资金渠道; 默认不返回该信息,需要在入参的query_options中指定"refund_detail_item_list"值时才返回该字段信息。
	SendBackFee          string              `json:"send_back_fee"`                     // 本次商户实际退回金额;
	DepositBackInfo      []*DepositBackInfo  `json:"deposit_back_info"`                 // 银行卡冲退信息
	RefundHYBAmount      string              `json:"refund_hyb_amount"`                 // 本次请求退惠营宝金额
	RefundChargeInfoList []*RefundChargeInfo `json:"refund_charge_info_list,omitempty"` // 退费信息
}

TradeFastPayRefundQueryRsp 统一收单交易退款查询接口响应参数

type TradeFundBill

type TradeFundBill struct {
	FundChannel string `json:"fund_channel"` // 交易使用的资金渠道,详见 支付渠道列表
	Amount      string `json:"amount"`       // 该支付工具类型所使用的金额
	RealAmount  string `json:"real_amount"`  // 渠道实际付款金额
	FundType    string `json:"fund_type"`    // 渠道所使用的资金类型
}

type TradePagePay

type TradePagePay struct {
	Trade
	AuthToken   string `json:"auth_token,omitempty"`   // 针对用户授权接口,获取用户相关数据时,用于标识用户授权关系
	QRPayMode   string `json:"qr_pay_mode,omitempty"`  // PC扫码支付的方式,支持前置模式和跳转模式。
	QRCodeWidth string `json:"qrcode_width,omitempty"` // 商户自定义二维码宽度 注:qr_pay_mode=4时该参数生效
}

TradePagePay 统一收单下单并支付页面接口请求参数 https://opendocs.alipay.com/apis/api_1/alipay.trade.page.pay

func (TradePagePay) APIName

func (t TradePagePay) APIName() string

func (TradePagePay) Params

func (t TradePagePay) Params() map[string]string

type TradeQuery

type TradeQuery struct {
	AuxParam
	AppAuthToken string   `json:"-"`                       // 可选
	OutTradeNo   string   `json:"out_trade_no,omitempty"`  // 订单支付时传入的商户订单号, 与 TradeNo 二选一
	TradeNo      string   `json:"trade_no,omitempty"`      // 支付宝交易号
	OrgPid       string   `json:"org_pid,omitempty"`       // 可选 银行间联模式下有用,其它场景请不要使用; 双联通过该参数指定需要查询的交易所属收单机构的pid;
	QueryOptions []string `json:"query_options,omitempty"` // 可选 查询选项,商户传入该参数可定制本接口同步响应额外返回的信息字段,数组格式。支持枚举如下:trade_settle_info:返回的交易结算信息,包含分账、补差等信息; fund_bill_list:交易支付使用的资金渠道;voucher_detail_list:交易支付时使用的所有优惠券信息;discount_goods_detail:交易支付所使用的单品券优惠的商品优惠信息;mdiscount_amount:商家优惠金额;
}

TradeQuery 统一收单线下交易查询接口请求参数 https://docs.open.alipay.com/api_1/alipay.trade.query/

func (TradeQuery) APIName

func (t TradeQuery) APIName() string

func (TradeQuery) Params

func (t TradeQuery) Params() map[string]string

type TradeQueryRsp

type TradeQueryRsp struct {
	Error
	TradeNo               string           `json:"trade_no"`                      // 支付宝交易号
	OutTradeNo            string           `json:"out_trade_no"`                  // 商家订单号
	BuyerLogonId          string           `json:"buyer_logon_id"`                // 买家支付宝账号
	TradeStatus           TradeStatus      `json:"trade_status"`                  // 交易状态
	TotalAmount           string           `json:"total_amount"`                  // 交易的订单金额
	TransCurrency         string           `json:"trans_currency"`                // 标价币种
	SettleCurrency        string           `json:"settle_currency"`               // 订单结算币种
	SettleAmount          string           `json:"settle_amount"`                 // 结算币种订单金额
	PayCurrency           string           `json:"pay_currency"`                  // 订单支付币种
	PayAmount             string           `json:"pay_amount"`                    // 支付币种订单金额
	SettleTransRate       string           `json:"settle_trans_rate"`             // 结算币种兑换标价币种汇率
	TransPayRate          string           `json:"trans_pay_rate"`                // 标价币种兑换支付币种汇率
	BuyerPayAmount        string           `json:"buyer_pay_amount"`              // 买家实付金额,单位为元,两位小数。
	PointAmount           string           `json:"point_amount"`                  // 积分支付的金额,单位为元,两位小数。
	InvoiceAmount         string           `json:"invoice_amount"`                // 交易中用户支付的可开具发票的金额,单位为元,两位小数。
	SendPayDate           string           `json:"send_pay_date"`                 // 本次交易打款给卖家的时间
	ReceiptAmount         string           `json:"receipt_amount"`                // 实收金额,单位为元,两位小数
	StoreId               string           `json:"store_id"`                      // 商户门店编号
	TerminalId            string           `json:"terminal_id"`                   // 商户机具终端编号
	FundBillList          []*FundBill      `json:"fund_bill_list,omitempty"`      // 交易支付使用的资金渠道
	StoreName             string           `json:"store_name"`                    // 请求交易支付中的商户店铺的名称
	BuyerUserId           string           `json:"buyer_user_id"`                 // 买家在支付宝的用户id
	BuyerUserName         string           `json:"buyer_user_name"`               // 买家名称;
	IndustrySepcDetailGov string           `json:"industry_sepc_detail_gov"`      // 行业特殊信息-统筹相关
	IndustrySepcDetailAcc string           `json:"industry_sepc_detail_acc"`      // 行业特殊信息-个账相关
	ChargeAmount          string           `json:"charge_amount"`                 // 该笔交易针对收款方的收费金额;
	ChargeFlags           string           `json:"charge_flags"`                  // 费率活动标识,当交易享受活动优惠费率时,返回该活动的标识;
	SettlementId          string           `json:"settlement_id"`                 // 支付清算编号,用于清算对账使用;
	TradeSettleInfo       *TradeSettleInfo `json:"trade_settle_info,omitempty"`   // 返回的交易结算信息,包含分账、补差等信息
	AuthTradePayMode      string           `json:"auth_trade_pay_mode"`           // 预授权支付模式,该参数仅在信用预授权支付场景下返回。信用预授权支付:CREDIT_PREAUTH_PAY
	BuyerUserType         string           `json:"buyer_user_type"`               // 买家用户类型。CORPORATE:企业用户;PRIVATE:个人用户。
	MdiscountAmount       string           `json:"mdiscount_amount"`              // 商家优惠金额
	DiscountAmount        string           `json:"discount_amount"`               // 平台优惠金额
	Subject               string           `json:"subject"`                       // 订单标题;
	Body                  string           `json:"body"`                          // 订单描述;
	AlipaySubMerchantId   string           `json:"alipay_sub_merchant_id"`        // 间连商户在支付宝端的商户编号;
	ExtInfos              string           `json:"ext_infos"`                     // 交易额外信息,特殊场景下与支付宝约定返回。
	PassbackParams        string           `json:"passback_params"`               // 公用回传参数。返回支付时传入的passback_params参数信息
	HBFQPayInfo           *HBFQPayInfo     `json:"hb_fq_pay_info"`                // 若用户使用花呗分期支付,且商家开通返回此通知参数,则会返回花呗分期信息。json格式其它说明详见花呗分期信息说明。 注意:商家需与支付宝约定后才返回本参数。
	CreditPayMode         string           `json:"credit_pay_mode"`               // 信用支付模式。表示订单是采用信用支付方式(支付时买家没有出资,需要后续履约)。"creditAdvanceV2"表示芝麻先用后付模式,用户后续需要履约扣款。 此字段只有信用支付场景才有值,商户需要根据字段值单独处理。此字段以后可能扩展其他值,建议商户使用白名单方式识别,对于未识别的值做失败处理,并联系支付宝技术支持人员。
	CreditBizOrderId      string           `json:"credit_biz_order_id"`           // 信用业务单号。信用支付场景才有值,先用后付产品里是芝麻订单号。
	HYBAmount             string           `json:"hyb_amount"`                    // 惠营宝回票金额
	BKAgentRespInfo       *BKAgentRespInfo `json:"bk_agent_resp_info"`            // 间联交易下,返回给机构的信 息
	ChargeInfoList        []*ChargeInfo    `json:"charge_info_list"`              // 计费信息列表
	DiscountGoodsDetail   string           `json:"discount_goods_detail"`         // 本次交易支付所使用的单品券优惠的商品优惠信息
	VoucherDetailList     []*VoucherDetail `json:"voucher_detail_list,omitempty"` // 本交易支付时使用的所有优惠券信息
}

TradeQueryRsp 统一收单线下交易查询接口响应参数

type TradeRefund

type TradeRefund struct {
	AuxParam
	AppAuthToken            string                    `json:"-"`                                   // 可选
	OutTradeNo              string                    `json:"out_trade_no,omitempty"`              // 与 TradeNo 二选一
	TradeNo                 string                    `json:"trade_no,omitempty"`                  // 与 OutTradeNo 二选一
	RefundAmount            string                    `json:"refund_amount"`                       // 必须 需要退款的金额,该金额不能大于订单金额,单位为元,支持两位小数
	RefundReason            string                    `json:"refund_reason"`                       // 可选 退款的原因说明
	OutRequestNo            string                    `json:"out_request_no"`                      // 必须 标识一次退款请求,同一笔交易多次退款需要保证唯一,如需部分退款,则此参数必传。
	RefundRoyaltyParameters []*RefundRoyaltyParameter `json:"refund_royalty_parameters,omitempty"` // 可选 退分账明细信息。 注: 1.当面付且非直付通模式无需传入退分账明细,系统自动按退款金额与订单金额的比率,从收款方和分账收入方退款,不支持指定退款金额与退款方。2.直付通模式,电脑网站支付,手机 APP 支付,手机网站支付产品,须在退款请求中明确是否退分账,从哪个分账收入方退,退多少分账金额;如不明确,默认从收款方退款,收款方余额不足退款失败。不支持系统按比率退款。
	QueryOptions            []string                  `json:"query_options,omitempty"`             // 可选 查询选项。 商户通过上送该参数来定制同步需要额外返回的信息字段,数组格式。支持:refund_detail_item_list:退款使用的资金渠道;deposit_back_info:触发银行卡冲退信息通知;

}

TradeRefund 统一收单交易退款接口请求参数 https://docs.open.alipay.com/api_1/alipay.trade.refund/

func (TradeRefund) APIName

func (t TradeRefund) APIName() string

func (TradeRefund) Params

func (t TradeRefund) Params() map[string]string

type TradeRefundRsp

type TradeRefundRsp struct {
	Error
	TradeNo              string              `json:"trade_no"`                          // 支付宝交易号
	OutTradeNo           string              `json:"out_trade_no"`                      // 商户订单号
	BuyerLogonId         string              `json:"buyer_logon_id"`                    // 用户的登录id
	BuyerUserId          string              `json:"buyer_user_id"`                     // 买家在支付宝的用户id
	FundChange           string              `json:"fund_change"`                       // 本次退款是否发生了资金变化
	RefundFee            string              `json:"refund_fee"`                        // 退款总金额
	StoreName            string              `json:"store_name"`                        // 交易在支付时候的门店名称
	RefundDetailItemList []*TradeFundBill    `json:"refund_detail_item_list,omitempty"` // 退款使用的资金渠道
	SendBackFee          string              `json:"send_back_fee"`                     // 本次商户实际退回金额。 说明:如需获取该值,需在入参query_options中传入 refund_detail_item_list。
	RefundHYBAmount      string              `json:"refund_hyb_amount"`                 // 本次请求退惠营宝金额
	RefundChargeInfoList []*RefundChargeInfo `json:"refund_charge_info_list,omitempty"` // 退费信息
}

TradeRefundRsp 统一收单交易退款接口响应参数

type TradeSettleDetail

type TradeSettleDetail struct {
	OperationType     string `json:"operation_type"`
	OperationSerialNo string `json:"operation_serial_no"`
	OperationDate     string `json:"operation_dt"`
	TransOut          string `json:"trans_out"`
	TransIn           string `json:"trans_in"`
	Amount            string `json:"amount"`
}

type TradeSettleInfo

type TradeSettleInfo struct {
	TradeSettleDetailList []*TradeSettleDetail `json:"trade_settle_detail_list"`
}

type TradeStatus

type TradeStatus string
const (
	TradeStatusWaitBuyerPay TradeStatus = "WAIT_BUYER_PAY" //(交易创建,等待买家付款)
	TradeStatusClosed       TradeStatus = "TRADE_CLOSED"   //(未付款交易超时关闭,或支付完成后全额退款)
	TradeStatusSuccess      TradeStatus = "TRADE_SUCCESS"  //(交易支付成功)
	TradeStatusFinished     TradeStatus = "TRADE_FINISHED" //(交易结束,不可退款)
)

type TradeWapPay

type TradeWapPay struct {
	Trade
	QuitURL    string `json:"quit_url,omitempty"`
	AuthToken  string `json:"auth_token,omitempty"`  // 针对用户授权接口,获取用户相关数据时,用于标识用户授权关系
	TimeExpire string `json:"time_expire,omitempty"` // 绝对超时时间,格式为yyyy-MM-dd HH:mm。
}

TradeWapPay 手机网站支付接口请求参数 https://docs.open.alipay.com/api_1/alipay.trade.wap.pay/

func (TradeWapPay) APIName

func (t TradeWapPay) APIName() string

func (TradeWapPay) Params

func (t TradeWapPay) Params() map[string]string

type UserInfoShare

type UserInfoShare struct {
	AuxParam
	AppAuthToken string `json:"-"` // 可选
	AuthToken    string `json:"-"` // 是
}

UserInfoShare 支付宝会员授权信息查询接口请求参数 https://docs.open.alipay.com/api_2/alipay.user.info.share

func (UserInfoShare) APIName

func (u UserInfoShare) APIName() string

func (UserInfoShare) Params

func (u UserInfoShare) Params() map[string]string

type UserInfoShareRsp

type UserInfoShareRsp struct {
	Error
	AuthNo             string `json:"auth_no"`
	UserId             string `json:"user_id"`
	Avatar             string `json:"avatar"`
	Province           string `json:"province"`
	City               string `json:"city"`
	NickName           string `json:"nick_name"`
	IsStudentCertified string `json:"is_student_certified"`
	UserType           string `json:"user_type"`
	UserStatus         string `json:"user_status"`
	IsCertified        string `json:"is_certified"`
	Gender             string `json:"gender"`
}

UserInfoShareRsp 支付宝会员授权信息查询接口响应参数

type VoucherDetail

type VoucherDetail struct {
	Id                 string `json:"id"`                  // 券id
	Name               string `json:"name"`                // 券名称
	Type               string `json:"type"`                // 当前有三种类型: ALIPAY_FIX_VOUCHER - 全场代金券, ALIPAY_DISCOUNT_VOUCHER - 折扣券, ALIPAY_ITEM_VOUCHER - 单品优惠
	Amount             string `json:"amount"`              // 优惠券面额,它应该会等于商家出资加上其他出资方出资
	MerchantContribute string `json:"merchant_contribute"` // 商家出资(特指发起交易的商家出资金额)
	OtherContribute    string `json:"other_contribute"`    // 其他出资方出资金额,可能是支付宝,可能是品牌商,或者其他方,也可能是他们的一起出资
	Memo               string `json:"memo"`                // 优惠券备注信息
}

Jump to

Keyboard shortcuts

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