alipay

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

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

Go to latest
Published: May 23, 2018 License: MIT Imports: 13 Imported by: 0

README

AliPay SDK for Golang

鸣谢

感谢下列人员对本项目的支持:

@wusphinx

@clearluo

@zwh8800

帮助

在集成的过程中有遇到问题,欢迎加 QQ 群 564704807 讨论。

已实现接口

手机网站支付API
  • 手机网站支付接口

    alipay.trade.wap.pay

  • 电脑网站支付

    alipay.trade.page.pay

  • 统一收单线下交易查询

    alipay.trade.query

  • 统一收单交易支付接口

    alipay.trade.pay

  • 统一收单交易创建接口

    alipay.trade.create

  • 统一收单线下交易预创建

    alipay.trade.precreate

  • 统一收单交易撤销接口

    alipay.trade.cancel

  • 统一收单交易关闭接口

    alipay.trade.close

  • 统一收单交易退款接口

    alipay.trade.refund

  • App支付接口

    alipay.trade.app.pay

  • 统一收单交易退款查询

    alipay.trade.fastpay.refund.query

  • 单笔转账到支付宝账户接口

    alipay.fund.trans.toaccount.transfer

  • 查询转账订单接口

    alipay.fund.trans.order.query

通知
  • 通知内容转换及签名验证

    将支付宝的通知内容转换为 Golang 的结构体,并且验证其合法性。

集成流程

支付宝开放平台申请创建相关的应用,使用自己的支付宝账号登录即可。

沙箱环境

支付宝开放平台为每一个应用提供了沙箱环境,供开发人员开发测试使用。

沙箱环境是独立的,每一个应用都会有一个商家账号和买家账号。

应用信息配置

参考官网文档 进行应用的配置。

本 SDK 中的签名方法默认为 RSA2,采用支付宝提供的 RSA签名验签工具 生成秘钥时,建议秘钥的格式采用 PKCS1,秘钥长度采用 2048。所以在支付宝管理后台请注意配置 RSA2(SHA256)密钥

请参考 如何生成 RSA 密钥

创建 Wap 支付
var client = alipay.New(appId, partnerId, "", privateKey, false)

var p = AliPayTradeWapPay{}
p.NotifyURL = "xxx"
p.Subject = "标题"
p.OutTradeNo = "传递一个唯一单号"
p.TotalAmount = "10.00"
p.ProductCode = "商品编码"

var url, _ = client.TradeWapPay(p)
// 直接访问该 URL 就可以了
同步返回验签

支持自动对支付宝返回的数据进行签名验证,详细信息请参考自行实现验签.

如果需要开启自动验签,只需要在初始化 AliPay 对象的时候提供 aliPublickKey 参数,该参数的值为支付宝管理后台获取到的支付宝公钥,如下:

var client = alipay.New(appId, partnerId, aliPublickKey, privateKey, false)
验证支付结果

有支付或者其它动作发生后,支付宝服务器会调用我们提供的 Notify URL,并向其传递会相关的信息。参考手机网站支付结果异步通知

我们需要在提供的 Notify URL 服务中获取相关的参数并进行验证:


var client = alipay.New(appId, partnerId, aliPublickKey, privateKey, false)
 
http.HandleFunc("/alipay", func(rep http.ResponseWriter, req *http.Request) {
	var noti, _ = client.GetTradeNotification(req)
	if noti != nil {
		fmt.Println("支付成功")
	} else {
		fmt.Println("支付失败")
	}
})

此验证方法适用于支付宝所有情况下发送的 Notify,不管是手机 App 支付还是 Wap 支付。

需要特别注意,从支付宝后台获取到支付宝的公钥之后,需要将其转换成标准的公钥格式,如下所示:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2MhEVUp+rRRyAD9HZfiS
g8LLxRAX18XOMJE8/MNnlSSTWCCoHnM+FIU+AfB+8FE+gGIJYXJlpTIyWn4VUMte
wh/4C8uwzBWod/3ilw9Uy7lFblXDBd8En8a59AxC6c9YL1nWD7/sh1szqej31VRI
2OXQSYgvhWNGjzw2/KS1GdrWmdsVP2hOiKVy6TNtH7XnCSRfBBCQ+LgqO1tE0NHD
DswRwBLAFmIlfZ//qZ+a8FvMc//sUm+CV78pQba4nnzsmh10fzVVFIWiKw3VDsxX
PRrAtOJCwNsBwbvMuI/ictvxxjUl4nBZDw4lXt5eWWqBrnTSzogFNOk06aNmEBTU
hwIDAQAB
-----END PUBLIC KEY-----
支持 RSA 签名及验证

默认采用的是 RSA2 签名,如果需要使用 RSA 签名,只需要在初始化 AliPay 的时候,将其 SignType 设置为 alipay.K_SIGN_TYPE_RSA 即可:

var client = alipay.New(...)
client.SignType = alipay.K_SIGN_TYPE_RSA

当然,相关的 Key 也要注意替换。

License

This project is licensed under the MIT License.

Documentation

Index

Constants

View Source
const (
	K_TIME_FORMAT = "2006-01-02 15:04:05"

	K_ALI_PAY_TRADE_STATUS_WAIT_BUYER_PAY = "WAIT_BUYER_PAY" // 交易创建,等待买家付款
	K_ALI_PAY_TRADE_STATUS_TRADE_CLOSED   = "TRADE_CLOSED"   // 未付款交易超时关闭,或支付完成后全额退款
	K_ALI_PAY_TRADE_STATUS_TRADE_SUCCESS  = "TRADE_SUCCESS"  // 交易支付成功
	K_ALI_PAY_TRADE_STATUS_TRADE_FINISHED = "TRADE_FINISHED" // 交易结束,不可退款

	K_ALI_PAY_SANDBOX_API_URL    = "https://openapi.alipaydev.com/gateway.do"
	K_ALI_PAY_PRODUCTION_API_URL = "https://openapi.alipay.com/gateway.do"
	K_FORMAT                     = "JSON"
	K_CHARSET                    = "utf-8"
	K_VERSION                    = "1.0"

	// https://doc.open.alipay.com/docs/doc.htm?treeId=291&articleId=105806&docType=1
	K_SUCCESS_CODE = "10000"
)
View Source
const (
	K_SIGN_TYPE_RSA2 = "RSA2"
	K_SIGN_TYPE_RSA  = "RSA"
)
View Source
const (
	K_TRADE_STATUS_WAIT_BUYER_PAY = "WAIT_BUYER_PAY" //(交易创建,等待买家付款)
	K_TRADE_STATUS_TRADE_CLOSED   = "TRADE_CLOSED"   //(未付款交易超时关闭,或支付完成后全额退款)
	K_TRADE_STATUS_TRADE_SUCCESS  = "TRADE_SUCCESS"  //(交易支付成功)
	K_TRADE_STATUS_TRADE_FINISHED = "TRADE_FINISHED" //(交易结束,不可退款)
)

//////////////////////////////////////////////////////////////////////////////

View Source
const (
	K_NOTIFY_TYPE_TRADE_STATUS_SYNC = "trade_status_sync"
)

Variables

This section is empty.

Functions

func NewRequest

func NewRequest(method, url string, params url.Values) (*http.Request, error)

func VerifySign

func VerifySign(data url.Values, key []byte) (ok bool, err error)

Types

type AliPay

type AliPay struct {
	AliPayPublicKey []byte
	Client          *http.Client
	SignType        string
	// contains filtered or unexported fields
}

func New

func New(appId, partnerId string, aliPublicKey, privateKey []byte, isProduction bool) (client *AliPay)

func (*AliPay) AppURLValues

func (this *AliPay) AppURLValues(targetId string) (string, error)

func (*AliPay) DoRequest

func (this *AliPay) DoRequest(method string, param AliPayParam, results interface{}) (err error)

func (*AliPay) FundTransOrderQuery

func (this *AliPay) FundTransOrderQuery(param AliPayFundTransOrderQuery) (results *AliPayFundTransOrderQueryResponse, err error)

FundTransOrderQuery https://docs.open.alipay.com/api_28/alipay.fund.trans.order.query/ 查询转账订单接口

func (*AliPay) FundTransToAccountTransfer

func (this *AliPay) FundTransToAccountTransfer(param AliPayFundTransToAccountTransfer) (results *AliPayFundTransToAccountTransferResponse, err error)

FundTransToAccountTransfer https://docs.open.alipay.com/api_28/alipay.fund.trans.toaccount.transfer 单笔转账到支付宝账户接口

func (*AliPay) GetTradeNotification

func (this *AliPay) GetTradeNotification(req *http.Request) (*TradeNotification, error)

func (*AliPay) NotifyVerify

func (this *AliPay) NotifyVerify(notifyId string) bool

func (*AliPay) TradeAppPay

func (this *AliPay) TradeAppPay(param AliPayTradeAppPay) (results string, err error)

TradeAppPay https://docs.open.alipay.com/api_1/alipay.trade.app.pay

func (*AliPay) TradeCancel

func (this *AliPay) TradeCancel(param AliPayTradeCancel) (results *AliPayTradeCancelResponse, err error)

TradeCancel https://docs.open.alipay.com/api_1/alipay.trade.cancel/

func (*AliPay) TradeClose

func (this *AliPay) TradeClose(param AliPayTradeClose) (results *AliPayTradeCloseResponse, err error)

TradeClose https://docs.open.alipay.com/api_1/alipay.trade.close/

func (*AliPay) TradeCreate

func (this *AliPay) TradeCreate(param AliPayTradeCreate) (results *AliPayTradeCreateResponse, err error)

TradeCreate https://docs.open.alipay.com/api_1/alipay.trade.create/

func (*AliPay) TradeOrderSettle

func (this *AliPay) TradeOrderSettle(param AliPayTradeOrderSettle) (results interface{}, err error)

TradeOrderSettle https://docs.open.alipay.com/api_1/alipay.trade.order.settle

func (*AliPay) TradePagePay

func (this *AliPay) TradePagePay(param AliPayTradePagePay) (results *url.URL, err error)

TradePagePay https://docs.open.alipay.com/270/alipay.trade.page.pay

func (*AliPay) TradePay

func (this *AliPay) TradePay(param AliPayTradePay) (results *AliPayTradePayResponse, err error)

TradePay https://docs.open.alipay.com/api_1/alipay.trade.pay/

func (*AliPay) TradePreCreate

func (this *AliPay) TradePreCreate(param AliPayTradePreCreate) (results *AliPayTradePreCreateResponse, err error)

TradePreCreate https://docs.open.alipay.com/api_1/alipay.trade.precreate/

func (*AliPay) TradeQuery

func (this *AliPay) TradeQuery(param AliPayTradeQuery) (results *AliPayTradeQueryResponse, err error)

TradeQuery https://docs.open.alipay.com/api_1/alipay.trade.query/

func (*AliPay) TradeRefund

func (this *AliPay) TradeRefund(param AliPayTradeRefund) (results *AliPayTradeRefundResponse, err error)

TradeRefund https://docs.open.alipay.com/api_1/alipay.trade.refund/

func (*AliPay) URLValues

func (this *AliPay) URLValues(param AliPayParam) (value url.Values, err error)

func (*AliPay) UserAuthorization

func (this *AliPay) UserAuthorization(param AlipayUserAuthorization) (results *AlipayUserAuthorizationResponse, err error)

func (*AliPay) UserInfo

func (this *AliPay) UserInfo(param AlipayUserInfo) (results *AlipayUserInfoResponse, err error)

func (*AliPay) VerifySign

func (this *AliPay) VerifySign(data url.Values) (ok bool, err error)

type AliPayFastpayTradeRefundQuery

type AliPayFastpayTradeRefundQuery struct {
	AppAuthToken string `json:"-"`                      // 可选
	OutTradeNo   string `json:"out_trade_no,omitempty"` // 与 TradeNo 二选一
	TradeNo      string `json:"trade_no,omitempty"`     // 与 OutTradeNo 二选一
	OutRequestNo string `json:"out_request_no"`         // 必须 请求退款接口时,传入的退款请求号,如果在退款请求时未传入,则该值为创建交易时的外部交易号
}

////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/api_1/alipay.trade.fastpay.refund.query

func (AliPayFastpayTradeRefundQuery) APIName

func (this AliPayFastpayTradeRefundQuery) APIName() string

func (AliPayFastpayTradeRefundQuery) ExtJSONParamName

func (this AliPayFastpayTradeRefundQuery) ExtJSONParamName() string

func (AliPayFastpayTradeRefundQuery) ExtJSONParamValue

func (this AliPayFastpayTradeRefundQuery) ExtJSONParamValue() string

func (AliPayFastpayTradeRefundQuery) Params

func (this AliPayFastpayTradeRefundQuery) Params() map[string]string

type AliPayFastpayTradeRefundQueryResponse

type AliPayFastpayTradeRefundQueryResponse struct {
	AliPayTradeFastpayRefundQueryResponse struct {
		Code         string `json:"code"`
		Msg          string `json:"msg"`
		SubCode      string `json:"sub_code"`
		SubMsg       string `json:"sub_msg"`
		OutRequestNo string `json:"out_request_no"` // 本笔退款对应的退款请求号
		OutTradeNo   string `json:"out_trade_no"`   // 创建交易传入的商户订单号
		RefundReason string `json:"refund_reason"`  // 发起退款时,传入的退款原因
		TotalAmount  string `json:"total_amount"`   // 发该笔退款所对应的交易的订单金额
		RefundAmount string `json:"refund_amount"`  // 本次退款请求,对应的退款金额
		TradeNo      string `json:"trade_no"`       // 支付宝交易号
	} `json:"alipay_trade_fastpay_refund_query_response"`
	Sign string `json:"sign"`
}

func (*AliPayFastpayTradeRefundQueryResponse) IsSuccess

func (this *AliPayFastpayTradeRefundQueryResponse) IsSuccess() bool

type AliPayFundTransOrderQuery

type AliPayFundTransOrderQuery struct {
	AppAuthToken string `json:"-"`                    // 可选
	OutBizNo     string `json:"out_biz_no,omitempty"` // 与 OrderId 二选一
	OrderId      string `json:"order_id,omitempty"`   // 与 OutBizNo 二选一
}

////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/api_28/alipay.fund.trans.order.query/ 查询转账订单接口请求参数

func (AliPayFundTransOrderQuery) APIName

func (this AliPayFundTransOrderQuery) APIName() string

func (AliPayFundTransOrderQuery) ExtJSONParamName

func (this AliPayFundTransOrderQuery) ExtJSONParamName() string

func (AliPayFundTransOrderQuery) ExtJSONParamValue

func (this AliPayFundTransOrderQuery) ExtJSONParamValue() string

func (AliPayFundTransOrderQuery) Params

func (this AliPayFundTransOrderQuery) Params() map[string]string

type AliPayFundTransOrderQueryResponse

type AliPayFundTransOrderQueryResponse struct {
	Body struct {
		Code           string `json:"code"`
		Msg            string `json:"msg"`
		SubCode        string `json:"sub_code"`
		SubMsg         string `json:"sub_msg"`
		OutBizNo       string `json:"out_biz_no"`       // 发起转账来源方定义的转账单据号。 该参数的赋值均以查询结果中 的 out_biz_no 为准。 如果查询失败,不返回该参数
		OrderId        string `json:"order_id"`         // 支付宝转账单据号,查询失败不返回。
		Status         string `json:"status"`           // 转账单据状态
		PayDate        string `json:"pay_date"`         // 支付时间
		ArrivalTimeEnd string `json:"arrival_time_end"` // 预计到账时间,转账到银行卡专用
		OrderFree      string `json:"order_fee"`        // 预计收费金额(元),转账到银行卡专用
		FailReason     string `json:"fail_reason"`      // 查询到的订单状态为FAIL失败或REFUND退票时,返回具体的原因。
		ErrorCode      string `json:"error_code"`       // 查询失败时,本参数为错误代 码。 查询成功不返回。 对于退票订单,不返回该参数。
	} `json:"alipay_fund_trans_order_query_response"`
	Sign string `json:"sign"`
}

查询转账订单接口响应参数

func (*AliPayFundTransOrderQueryResponse) IsSuccess

func (this *AliPayFundTransOrderQueryResponse) IsSuccess() bool

type AliPayFundTransToAccountTransfer

type AliPayFundTransToAccountTransfer struct {
	AppAuthToken  string `json:"-"`               // 可选
	OutBizNo      string `json:"out_biz_no"`      // 必选 商户转账唯一订单号
	PayeeType     string `json:"payee_type"`      // 必选 收款方账户类型,"ALIPAY_LOGONID":支付宝帐号
	PayeeAccount  string `json:"payee_account"`   // 必选 收款方账户。与payee_type配合使用
	Amount        string `json:"amount"`          // 必选 转账金额,元
	PayerShowName string `json:"payer_show_name"` // 可选 付款方显示姓名
	PayeeRealName string `json:"payee_real_name"` // 可选 收款方真实姓名,如果本参数不为空,则会校验该账户在支付宝登记的实名是否与收款方真实姓名一致。
	Remark        string `json:"remark"`          // 可选 转账备注,金额大于50000时必填
}

////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/api_28/alipay.fund.trans.toaccount.transfer 单笔转账到支付宝账户接口请求结构

func (AliPayFundTransToAccountTransfer) APIName

func (AliPayFundTransToAccountTransfer) ExtJSONParamName

func (this AliPayFundTransToAccountTransfer) ExtJSONParamName() string

func (AliPayFundTransToAccountTransfer) ExtJSONParamValue

func (this AliPayFundTransToAccountTransfer) ExtJSONParamValue() string

func (AliPayFundTransToAccountTransfer) Params

type AliPayFundTransToAccountTransferResponse

type AliPayFundTransToAccountTransferResponse struct {
	Body struct {
		Code     string `json:"code"`
		Msg      string `json:"msg"`
		SubCode  string `json:"sub_code"`
		SubMsg   string `json:"sub_msg"`
		OutBizNo string `json:"out_biz_no"` // 商户转账唯一订单号:发起转账来源方定义的转账单据号。请求时对应的参数,原样返回
		OrderId  string `json:"order_id"`   // 支付宝转账单据号,成功一定返回,失败可能不返回也可能返回
		PayDate  string `json:"pay_date"`   // 支付时间:格式为yyyy-MM-dd HH:mm:ss,仅转账成功返回
	} `json:"alipay_fund_trans_toaccount_transfer_response"`
	Sign string `json:"sign"`
}

单笔转账到支付宝账户接口响应参数

func (*AliPayFundTransToAccountTransferResponse) IsSuccess

type AliPayParam

type AliPayParam interface {
	// 用于提供访问的 method
	APIName() string

	// 返回参数列表
	Params() map[string]string

	// 返回扩展 JSON 参数的字段名称
	ExtJSONParamName() string

	// 返回扩展 JSON 参数的字段值
	ExtJSONParamValue() string
}

type AliPayTradeAppPay

type AliPayTradeAppPay struct {
	TimeExpire string `json:"time_expire,omitempty"` // 绝对超时时间,格式为yyyy-MM-dd HH:mm。
	// contains filtered or unexported fields
}

//////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/api_1/alipay.trade.app.pay/

func (AliPayTradeAppPay) APIName

func (this AliPayTradeAppPay) APIName() string

func (AliPayTradeAppPay) ExtJSONParamName

func (this AliPayTradeAppPay) ExtJSONParamName() string

func (AliPayTradeAppPay) ExtJSONParamValue

func (this AliPayTradeAppPay) ExtJSONParamValue() string

func (AliPayTradeAppPay) Params

func (this AliPayTradeAppPay) Params() map[string]string

type AliPayTradeCancel

type AliPayTradeCancel struct {
	AppAuthToken string `json:"-"` // 可选
	NotifyURL    string `json:"-"` // 可选

	OutTradeNo string `json:"out_trade_no"` // 原支付请求的商户订单号,和支付宝交易号不能同时为空
	TradeNo    string `json:"trade_no"`     // 支付宝交易号,和商户订单号不能同时为空
}

//////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/api_1/alipay.trade.cancel/

func (AliPayTradeCancel) APIName

func (this AliPayTradeCancel) APIName() string

func (AliPayTradeCancel) ExtJSONParamName

func (this AliPayTradeCancel) ExtJSONParamName() string

func (AliPayTradeCancel) ExtJSONParamValue

func (this AliPayTradeCancel) ExtJSONParamValue() string

func (AliPayTradeCancel) Params

func (this AliPayTradeCancel) Params() map[string]string

type AliPayTradeCancelResponse

type AliPayTradeCancelResponse struct {
	AliPayTradeCancelResponse struct {
		Code       string `json:"code"`
		Msg        string `json:"msg"`
		SubCode    string `json:"sub_code"`
		SubMsg     string `json:"sub_msg"`
		TradeNo    string `json:"trade_no"`     // 支付宝交易号
		OutTradeNo string `json:"out_trade_no"` // 创建交易传入的商户订单号
		RetryFlag  string `json:"retry_flag"`   // 是否需要重试
		Action     string `json:"action"`       // 本次撤销触发的交易动作 close:关闭交易,无退款 refund:产生了退款
	} `json:"alipay_trade_cancel_response"`
	Sign string `json:"sign"`
}

func (*AliPayTradeCancelResponse) IsSuccess

func (this *AliPayTradeCancelResponse) IsSuccess() bool

type AliPayTradeClose

type AliPayTradeClose struct {
	AppAuthToken string `json:"-"`                      // 可选
	NotifyURL    string `json:"-"`                      // 可选
	OutTradeNo   string `json:"out_trade_no,omitempty"` // 与 TradeNo 二选一
	TradeNo      string `json:"trade_no,omitempty"`     // 与 OutTradeNo 二选一
	OperatorId   string `json:"operator_id,omitempty"`  // 可选
}

////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/api_1/alipay.trade.close/

func (AliPayTradeClose) APIName

func (this AliPayTradeClose) APIName() string

func (AliPayTradeClose) ExtJSONParamName

func (this AliPayTradeClose) ExtJSONParamName() string

func (AliPayTradeClose) ExtJSONParamValue

func (this AliPayTradeClose) ExtJSONParamValue() string

func (AliPayTradeClose) Params

func (this AliPayTradeClose) Params() map[string]string

type AliPayTradeCloseResponse

type AliPayTradeCloseResponse struct {
	AliPayTradeClose struct {
		Code       string `json:"code"`
		Msg        string `json:"msg"`
		SubCode    string `json:"sub_code"`
		SubMsg     string `json:"sub_msg"`
		OutTradeNo string `json:"out_trade_no"`
		TradeNo    string `json:"trade_no"`
	} `json:"alipay_trade_close_response"`
	Sign string `json:"sign"`
}

type AliPayTradeCreate

type AliPayTradeCreate struct {
	AppAuthToken string `json:"-"` // 可选

	DiscountableAmount string             `json:"discountable_amount"` // 可打折金额. 参与优惠计算的金额,单位为元,精确到小数点后两位
	BuyerId            string             `json:"buyer_id"`
	GoodsDetail        []*GoodsDetailItem `json:"goods_detail,omitempty"`
	OperatorId         string             `json:"operator_id"`
	TerminalId         string             `json:"terminal_id"`
	// contains filtered or unexported fields
}

//////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/api_1/alipay.trade.create/

func (AliPayTradeCreate) APIName

func (this AliPayTradeCreate) APIName() string

func (AliPayTradeCreate) ExtJSONParamName

func (this AliPayTradeCreate) ExtJSONParamName() string

func (AliPayTradeCreate) ExtJSONParamValue

func (this AliPayTradeCreate) ExtJSONParamValue() string

func (AliPayTradeCreate) Params

func (this AliPayTradeCreate) Params() map[string]string

type AliPayTradeCreateResponse

type AliPayTradeCreateResponse struct {
	AliPayTradeCreateResponse struct {
		Code       string `json:"code"`
		Msg        string `json:"msg"`
		SubCode    string `json:"sub_code"`
		SubMsg     string `json:"sub_msg"`
		TradeNo    string `json:"trade_no"` // 支付宝交易号
		OutTradeNo string `json:"out_trade_no"`
	} `json:"alipay_trade_create_response"`
	Sign string `json:"sign"`
}

type AliPayTradeOrderSettle

type AliPayTradeOrderSettle struct {
	AppAuthToken      string              `json:"-"`                  // 可选
	OutRequestNo      string              `json:"out_request_no"`     // 必须 结算请求流水号 开发者自行生成并保证唯一性
	TradeNo           string              `json:"trade_no"`           // 必须 支付宝订单号
	RoyaltyParameters []*RoyaltyParameter `json:"royalty_parameters"` // 必须 分账明细信息
	OperatorId        string              `json:"operator_id"`        //可选 操作员id
}

////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/api_1/alipay.trade.order.settle

func (AliPayTradeOrderSettle) APIName

func (this AliPayTradeOrderSettle) APIName() string

func (AliPayTradeOrderSettle) ExtJSONParamName

func (this AliPayTradeOrderSettle) ExtJSONParamName() string

func (AliPayTradeOrderSettle) ExtJSONParamValue

func (this AliPayTradeOrderSettle) ExtJSONParamValue() string

func (AliPayTradeOrderSettle) Params

func (this AliPayTradeOrderSettle) Params() map[string]string

type AliPayTradePagePay

type AliPayTradePagePay struct {
	AuthToken   string `json:"auth_token,omitempty"`   // 针对用户授权接口,获取用户相关数据时,用于标识用户授权关系
	GoodsDetail string `json:"goods_detail,omitempty"` // 订单包含的商品列表信息,Json格式,详见商品明细说明
	QRPayMode   string `json:"qr_pay_mode,omitempty"`  // PC扫码支付的方式,支持前置模式和跳转模式。
	QRCodeWidth string `json:"qrcode_width,omitempty"` // 商户自定义二维码宽度 注:qr_pay_mode=4时该参数生效
	// contains filtered or unexported fields
}

////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/270/alipay.trade.page.pay

func (AliPayTradePagePay) APIName

func (this AliPayTradePagePay) APIName() string

func (AliPayTradePagePay) ExtJSONParamName

func (this AliPayTradePagePay) ExtJSONParamName() string

func (AliPayTradePagePay) ExtJSONParamValue

func (this AliPayTradePagePay) ExtJSONParamValue() string

func (AliPayTradePagePay) Params

func (this AliPayTradePagePay) Params() map[string]string

type AliPayTradePay

type AliPayTradePay struct {
	AppAuthToken string `json:"-"` // 可选

	Scene    string `json:"scene"`     // 必须 支付场景 条码支付,取值:bar_code 声波支付,取值:wave_code	bar_code,wave_code
	AuthCode string `json:"auth_code"` // 必须 支付授权码

	BuyerId            string             `json:"buyer_id"` // 可选 家的支付宝用户id,如果为空,会从传入了码值信息中获取买家ID
	TransCurrency      string             `json:"trans_currency,omitempty"`
	SettleCurrency     string             `json:"settle_currency,omitempty"`
	DiscountableAmount string             `json:"discountable_amount,omitempty"` // 可选 参与优惠计算的金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]。 如果该值未传入,但传入了【订单总金额】和【不可打折金额】,则该值默认为【订单总金额】-【不可打折金额】
	GoodsDetail        []*GoodsDetailItem `json:"goods_detail,omitempty"`        // 可选 订单包含的商品列表信息,Json格式,其它说明详见商品明细说明
	OperatorId         string             `json:"operator_id,omitempty"`         // 可选 商户操作员编号
	TerminalId         string             `json:"terminal_id,omitempty"`         // 可选 商户机具终端编号
	AuthConfirmMode    string             `json:"auth_confirm_mode,omitempty"`
	TerminalParams     string             `json:"terminal_params,omitempty"`
	// contains filtered or unexported fields
}

//////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/api_1/alipay.trade.pay/

func (AliPayTradePay) APIName

func (this AliPayTradePay) APIName() string

func (AliPayTradePay) ExtJSONParamName

func (this AliPayTradePay) ExtJSONParamName() string

func (AliPayTradePay) ExtJSONParamValue

func (this AliPayTradePay) ExtJSONParamValue() string

func (AliPayTradePay) Params

func (this AliPayTradePay) Params() map[string]string

type AliPayTradePayResponse

type AliPayTradePayResponse struct {
	AliPayTradePay struct {
		Code                string           `json:"code"`
		Msg                 string           `json:"msg"`
		SubCode             string           `json:"sub_code"`
		SubMsg              string           `json:"sub_msg"`
		BuyerLogonId        string           `json:"buyer_logon_id"`           // 买家支付宝账号
		BuyerPayAmount      string           `json:"buyer_pay_amount"`         // 买家实付金额,单位为元,两位小数。
		BuyerUserId         string           `json:"buyer_user_id"`            // 买家在支付宝的用户id
		CardBalance         string           `json:"card_balance"`             // 支付宝卡余额
		DiscountGoodsDetail string           `json:"discount_goods_detail"`    // 本次交易支付所使用的单品券优惠的商品优惠信息
		FundBillList        []*FundBill      `json:"fund_bill_list,omitempty"` // 交易支付使用的资金渠道
		GmtPayment          string           `json:"gmt_payment"`
		InvoiceAmount       string           `json:"invoice_amount"`                // 交易中用户支付的可开具发票的金额,单位为元,两位小数。
		OutTradeNo          string           `json:"out_trade_no"`                  // 创建交易传入的商户订单号
		TradeNo             string           `json:"trade_no"`                      // 支付宝交易号
		PointAmount         string           `json:"point_amount"`                  // 积分支付的金额,单位为元,两位小数。
		ReceiptAmount       string           `json:"receipt_amount"`                // 实收金额,单位为元,两位小数
		StoreName           string           `json:"store_name"`                    // 发生支付交易的商户门店名称
		TotalAmount         string           `json:"total_amount"`                  // 发该笔退款所对应的交易的订单金额
		VoucherDetailList   []*VoucherDetail `json:"voucher_detail_list,omitempty"` // 本交易支付时使用的所有优惠券信息
	} `json:"alipay_trade_pay_response"`
	Sign string `json:"sign"`
}

func (*AliPayTradePayResponse) IsSuccess

func (this *AliPayTradePayResponse) IsSuccess() bool

type AliPayTradePreCreate

type AliPayTradePreCreate struct {
	AppAuthToken       string             `json:"-"`                      // 可选
	DiscountableAmount string             `json:"discountable_amount"`    // 可选 可打折金额. 参与优惠计算的金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000] 如果该值未传入,但传入了【订单总金额】,【不可打折金额】则该值默认为【订单总金额】-【不可打折金额】
	GoodsDetail        []*GoodsDetailItem `json:"goods_detail,omitempty"` // 可选 订单包含的商品列表信息.Json格式. 其它说明详见:“商品明细说明”
	OperatorId         string             `json:"operator_id"`            // 可选 商户操作员编号
	TerminalId         string             `json:"terminal_id"`            // 可选 商户机具终端编号
	// contains filtered or unexported fields
}

//////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/api_1/alipay.trade.precreate/

func (AliPayTradePreCreate) APIName

func (this AliPayTradePreCreate) APIName() string

func (AliPayTradePreCreate) ExtJSONParamName

func (this AliPayTradePreCreate) ExtJSONParamName() string

func (AliPayTradePreCreate) ExtJSONParamValue

func (this AliPayTradePreCreate) ExtJSONParamValue() string

func (AliPayTradePreCreate) Params

func (this AliPayTradePreCreate) Params() map[string]string

type AliPayTradePreCreateResponse

type AliPayTradePreCreateResponse struct {
	AliPayPreCreateResponse struct {
		Code       string `json:"code"`
		Msg        string `json:"msg"`
		SubCode    string `json:"sub_code"`
		SubMsg     string `json:"sub_msg"`
		OutTradeNo string `json:"out_trade_no"` // 创建交易传入的商户订单号
		QRCode     string `json:"qr_code"`      // 当前预下单请求生成的二维码码串,可以用二维码生成工具根据该码串值生成对应的二维码
	} `json:"alipay_trade_precreate_response"`
	Sign string `json:"sign"`
}

func (*AliPayTradePreCreateResponse) IsSuccess

func (this *AliPayTradePreCreateResponse) IsSuccess() bool

type AliPayTradeQuery

type AliPayTradeQuery struct {
	AppAuthToken string `json:"-"`                      // 可选
	OutTradeNo   string `json:"out_trade_no,omitempty"` // 订单支付时传入的商户订单号, 与 TradeNo 二选一
	TradeNo      string `json:"trade_no,omitempty"`     // 支付宝交易号
}

https://docs.open.alipay.com/api_1/alipay.trade.query/

func (AliPayTradeQuery) APIName

func (this AliPayTradeQuery) APIName() string

func (AliPayTradeQuery) ExtJSONParamName

func (this AliPayTradeQuery) ExtJSONParamName() string

func (AliPayTradeQuery) ExtJSONParamValue

func (this AliPayTradeQuery) ExtJSONParamValue() string

func (AliPayTradeQuery) Params

func (this AliPayTradeQuery) Params() map[string]string

type AliPayTradeQueryResponse

type AliPayTradeQueryResponse struct {
	AliPayTradeQuery struct {
		Code             string `json:"code"`
		Msg              string `json:"msg"`
		SubCode          string `json:"sub_code"`
		SubMsg           string `json:"sub_msg"`
		AuthTradePayMode string `json:"auth_trade_pay_mode"` // 预授权支付模式,该参数仅在信用预授权支付场景下返回。信用预授权支付:CREDIT_PREAUTH_PAY
		BuyerLogonId     string `json:"buyer_logon_id"`      // 买家支付宝账号
		BuyerPayAmount   string `json:"buyer_pay_amount"`    // 买家实付金额,单位为元,两位小数。
		BuyerUserId      string `json:"buyer_user_id"`       // 买家在支付宝的用户id
		BuyerUserType    string `json:"buyer_user_type"`     // 买家用户类型。CORPORATE:企业用户;PRIVATE:个人用户。
		InvoiceAmount    string `json:"invoice_amount"`      // 交易中用户支付的可开具发票的金额,单位为元,两位小数。
		OutTradeNo       string `json:"out_trade_no"`        // 商家订单号
		PointAmount      string `json:"point_amount"`        // 积分支付的金额,单位为元,两位小数。
		ReceiptAmount    string `json:"receipt_amount"`      // 实收金额,单位为元,两位小数
		SendPayDate      string `json:"send_pay_date"`       // 本次交易打款给卖家的时间
		TotalAmount      string `json:"total_amount"`        // 交易的订单金额
		TradeNo          string `json:"trade_no"`            // 支付宝交易号
		TradeStatus      string `json:"trade_status"`        // 交易状态

		DiscountAmount      string           `json:"discount_amount"`               // 平台优惠金额
		FundBillList        []*FundBill      `json:"fund_bill_list,omitempty"`      // 交易支付使用的资金渠道
		MdiscountAmount     string           `json:"mdiscount_amount"`              // 商家优惠金额
		PayAmount           string           `json:"pay_amount"`                    // 支付币种订单金额
		PayCurrency         string           `json:"pay_currency"`                  // 订单支付币种
		SettleAmount        string           `json:"settle_amount"`                 // 结算币种订单金额
		SettleCurrency      string           `json:"settle_currency"`               // 订单结算币种
		SettleTransRate     string           `json:"settle_trans_rate"`             // 结算币种兑换标价币种汇率
		StoreId             string           `json:"store_id"`                      // 商户门店编号
		StoreName           string           `json:"store_name"`                    // 请求交易支付中的商户店铺的名称
		TerminalId          string           `json:"terminal_id"`                   // 商户机具终端编号
		TransCurrency       string           `json:"trans_currency"`                // 标价币种
		TransPayRate        string           `json:"trans_pay_rate"`                // 标价币种兑换支付币种汇率
		DiscountGoodsDetail string           `json:"discount_goods_detail"`         // 本次交易支付所使用的单品券优惠的商品优惠信息
		IndustrySepcDetail  string           `json:"industry_sepc_detail"`          // 行业特殊信息(例如在医保卡支付业务中,向用户返回医疗信息)。
		VoucherDetailList   []*VoucherDetail `json:"voucher_detail_list,omitempty"` // 本交易支付时使用的所有优惠券信息
	} `json:"alipay_trade_query_response"`
	Sign string `json:"sign"`
}

func (*AliPayTradeQueryResponse) IsSuccess

func (this *AliPayTradeQueryResponse) IsSuccess() bool

type AliPayTradeRefund

type AliPayTradeRefund struct {
	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"`         // 可选 标识一次退款请求,同一笔交易多次退款需要保证唯一,如需部分退款,则此参数必传。
	OperatorId   string `json:"operator_id"`            // 可选 商户的操作员编号
	StoreId      string `json:"store_id"`               // 可选 商户的门店编号
	TerminalId   string `json:"terminal_id"`            // 可选 商户的终端编号
}

////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/api_1/alipay.trade.refund/

func (AliPayTradeRefund) APIName

func (this AliPayTradeRefund) APIName() string

func (AliPayTradeRefund) ExtJSONParamName

func (this AliPayTradeRefund) ExtJSONParamName() string

func (AliPayTradeRefund) ExtJSONParamValue

func (this AliPayTradeRefund) ExtJSONParamValue() string

func (AliPayTradeRefund) Params

func (this AliPayTradeRefund) Params() map[string]string

type AliPayTradeRefundResponse

type AliPayTradeRefundResponse struct {
	AliPayTradeRefund struct {
		Code                 string              `json:"code"`
		Msg                  string              `json:"msg"`
		SubCode              string              `json:"sub_code"`
		SubMsg               string              `json:"sub_msg"`
		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"`                        // 退款总金额
		GmtRefundPay         string              `json:"gmt_refund_pay"`                    // 退款支付时间
		StoreName            string              `json:"store_name"`                        // 交易在支付时候的门店名称
		RefundDetailItemList []*RefundDetailItem `json:"refund_detail_item_list,omitempty"` // 退款使用的资金渠道
	} `json:"alipay_trade_refund_response"`
	Sign string `json:"sign"`
}

func (*AliPayTradeRefundResponse) IsSuccess

func (this *AliPayTradeRefundResponse) IsSuccess() bool

type AliPayTradeWapPay

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

https://docs.open.alipay.com/api_1/alipay.trade.wap.pay/

func (AliPayTradeWapPay) APIName

func (this AliPayTradeWapPay) APIName() string

func (AliPayTradeWapPay) ExtJSONParamName

func (this AliPayTradeWapPay) ExtJSONParamName() string

func (AliPayTradeWapPay) ExtJSONParamValue

func (this AliPayTradeWapPay) ExtJSONParamValue() string

func (AliPayTradeWapPay) Params

func (this AliPayTradeWapPay) Params() map[string]string

type AlipayUserAuthorization

type AlipayUserAuthorization struct {
	GrantType    string `json:"grant_type"`    // 值为authorization_code时,代表用code换取;值为refresh_token时,代表用refresh_token换取
	Code         string `json:"code"`          // 可选。授权码,用户对应用授权后得到。
	RefreshToken string `json:"refresh_token"` // 可选。刷刷新令牌,上次换取访问令牌时得到
}

https://docs.open.alipay.com/api_9/alipay.system.oauth.token/

func (AlipayUserAuthorization) APIName

func (this AlipayUserAuthorization) APIName() string

func (AlipayUserAuthorization) ExtJSONParamName

func (this AlipayUserAuthorization) ExtJSONParamName() string

func (AlipayUserAuthorization) ExtJSONParamValue

func (this AlipayUserAuthorization) ExtJSONParamValue() string

func (AlipayUserAuthorization) Params

func (this AlipayUserAuthorization) Params() map[string]string

type AlipayUserAuthorizationResponse

type AlipayUserAuthorizationResponse struct {
	Body struct {
		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"`
	} `json:"alipay_system_oauth_token_response"`
	BodyError struct {
		Code    string `json:"code"`
		Msg     string `json:"msg"`
		SubCode string `json:"sub_code"`
		SubMsg  string `json:"sub_msg"`
	} `json:"error_response"`
	Sign string `json:"sign"`
}

func (*AlipayUserAuthorizationResponse) IsSuccess

func (this *AlipayUserAuthorizationResponse) IsSuccess() bool

type AlipayUserInfo

type AlipayUserInfo struct {
	AuthToken string `json:"auth_token"`
}

https://docs.open.alipay.com/api_2/alipay.user.info.share

func (AlipayUserInfo) APIName

func (this AlipayUserInfo) APIName() string

func (AlipayUserInfo) ExtJSONParamName

func (this AlipayUserInfo) ExtJSONParamName() string

func (AlipayUserInfo) ExtJSONParamValue

func (this AlipayUserInfo) ExtJSONParamValue() string

func (AlipayUserInfo) Params

func (this AlipayUserInfo) Params() map[string]string

type AlipayUserInfoResponse

type AlipayUserInfoResponse struct {
	Body struct {
		Code               string `json:"code"`
		Msg                string `json:"msg"`
		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"`
	} `json:"alipay_user_info_share_response"`
	BodyError struct {
		Code    string `json:"code"`
		Msg     string `json:"msg"`
		SubCode string `json:"sub_code"`
		SubMsg  string `json:"sub_msg"`
	} `json:"error_response"`
	Sign string `json:"sign"`
}

func (*AlipayUserInfoResponse) IsSuccess

func (this *AlipayUserInfoResponse) IsSuccess() bool

type BillDownloadURLQuery

type BillDownloadURLQuery struct {
	AppAuthToken string `json:"-"` // 可选
	BillType     string `json:"bill_type"`
	BillDate     string `json:"bill_date"`
}

https://docs.open.alipay.com/api_15/alipay.data.dataservice.bill.downloadurl.query

func (BillDownloadURLQuery) APIName

func (this BillDownloadURLQuery) APIName() string

func (BillDownloadURLQuery) ExtJSONParamName

func (this BillDownloadURLQuery) ExtJSONParamName() string

func (BillDownloadURLQuery) ExtJSONParamValue

func (this BillDownloadURLQuery) ExtJSONParamValue() string

func (BillDownloadURLQuery) Params

func (this BillDownloadURLQuery) Params() map[string]string

type BillDownloadURLQueryResponse

type BillDownloadURLQueryResponse struct {
	AliPayDataServiceBillDownloadURLQueryResponse struct {
		Code            string `json:"code"`
		Msg             string `json:"msg"`
		SubCode         string `json:"sub_code"`
		SubMsg          string `json:"sub_msg"`
		BillDownloadUrl string `json:"bill_download_url"`
	} `json:"alipay_data_dataservice_bill_downloadurl_query_response"`
	Sign string `json:"sign"`
}

type ExtendParamsItem

type ExtendParamsItem struct {
	SysServiceProviderId string `json:"sys_service_provider_id"`
	HbFqNum              string `json:"hb_fq_num"`
	HbFqSellerPercent    string `json:"hb_fq_seller_percent"`
	TimeoutExpress       string `json:"timeout_express"`
}

type FundBill

type FundBill struct {
	FundChannel string  `json:"fund_channel"`       // 交易使用的资金渠道,详见 支付渠道列表
	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 RefundDetailItem

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

type RoyaltyDetailInfoItem

type RoyaltyDetailInfoItem struct {
	SerialNo         string `json:"serial_no"`
	TransInType      string `json:"trans_in_type"`
	BatchNo          string `json:"batch_no"`
	OutRelationId    string `json:"out_relation_id"`
	TransOutType     string `json:"trans_out_type"`
	TransOut         string `json:"trans_out"`
	TransIn          string `json:"trans_in"`
	Amount           string `json:"amount"`
	Desc             string `json:"desc"`
	AmountPercentage string `json:"amount_percentage"`
	AliPayStoreId    string `json:"alipay_store_id"`
}

type RoyaltyInfo

type RoyaltyInfo struct {
	RoyaltyType       string                   `json:"royalty_type"`
	RoyaltyDetailInfo []*RoyaltyDetailInfoItem `json:"royalty_detail_infos,omitempty"`
}

type RoyaltyParameter

type RoyaltyParameter struct {
	TransOut         string  `json:"trans_out"`         // 可选 分账支出方账户,类型为userId,本参数为要分账的支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字。
	TransIn          string  `json:"trans_in"`          // 可选 分账收入方账户,类型为userId,本参数为要分账的支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字。
	Amount           float64 `json:"amount"`            // 可选 分账的金额,单位为元
	AmountPercentage float64 `json:"amount_percentage"` // 可选 分账信息中分账百分比。取值范围为大于0,少于或等于100的整数。
	Desc             string  `json:"desc"`              // 可选 分账描述
}

type SubMerchantItem

type SubMerchantItem struct {
	MerchantId string `json:"merchant_id"`
}

type TradeNotification

type TradeNotification struct {
	AuthAppId         string `json:"auth_app_id"`         // App Id
	NotifyTime        string `json:"notify_time"`         // 通知时间
	NotifyType        string `json:"notify_type"`         // 通知类型
	NotifyId          string `json:"notify_id"`           // 通知校验ID
	AppId             string `json:"app_id"`              // 开发者的app_id
	Charset           string `json:"charset"`             // 编码格式
	Version           string `json:"version"`             // 接口版本
	SignType          string `json:"sign_type"`           // 签名类型
	Sign              string `json:"sign"`                // 签名
	TradeNo           string `json:"trade_no"`            // 支付宝交易号
	OutTradeNo        string `json:"out_trade_no"`        // 商户订单号
	OutBizNo          string `json:"out_biz_no"`          // 商户业务号
	BuyerId           string `json:"buyer_id"`            // 买家支付宝用户号
	BuyerLogonId      string `json:"buyer_logon_id"`      // 买家支付宝账号
	SellerId          string `json:"seller_id"`           // 卖家支付宝用户号
	SellerEmail       string `json:"seller_email"`        // 卖家支付宝账号
	TradeStatus       string `json:"trade_status"`        // 交易状态
	TotalAmount       string `json:"total_amount"`        // 订单金额
	ReceiptAmount     string `json:"receipt_amount"`      // 实收金额
	InvoiceAmount     string `json:"invoice_amount"`      // 开票金额
	BuyerPayAmount    string `json:"buyer_pay_amount"`    // 付款金额
	PointAmount       string `json:"point_amount"`        // 集分宝金额
	RefundFee         string `json:"refund_fee"`          // 总退款金额
	Subject           string `json:"subject"`             // 总退款金额
	Body              string `json:"body"`                // 商品描述
	GmtCreate         string `json:"gmt_create"`          // 交易创建时间
	GmtPayment        string `json:"gmt_payment"`         // 交易付款时间
	GmtRefund         string `json:"gmt_refund"`          // 交易退款时间
	GmtClose          string `json:"gmt_close"`           // 交易结束时间
	FundBillList      string `json:"fund_bill_list"`      // 支付金额信息
	PassbackParams    string `json:"passback_params"`     // 回传参数
	VoucherDetailList string `json:"voucher_detail_list"` // 优惠券信息
}

https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.8AmJwg&treeId=203&articleId=105286&docType=1

func GetTradeNotification

func GetTradeNotification(req *http.Request, aliPayPublicKey []byte) (noti *TradeNotification, err error)

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"`                // 优惠券备注信息
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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