alipay

package module
v0.0.0-...-8dbbb66 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2019 License: MIT Imports: 12 Imported by: 0

README

AliPay SDK for Golang

鸣谢

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

@wusphinx

@clearluo

@zwh8800

帮助

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

其它支付

微信支付 https://github.com/smartwalle/wxpay

PayPal https://github.com/smartwalle/paypal

已实现接口

手机网站支付API
中线(-)后面的名称是该接口在 AliPay 结构体中对应的方法名。
  • 手机网站支付接口

    alipay.trade.wap.pay - TradeWapPay()

  • 电脑网站支付

    alipay.trade.page.pay - TradePagePay()

  • 统一收单线下交易查询

    alipay.trade.query - TradeQuery()

  • 统一收单交易支付接口

    alipay.trade.pay - TradePay()

  • 统一收单交易创建接口

    alipay.trade.create - TradeCreate()

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

    alipay.trade.precreate - TradePreCreate()

  • 统一收单交易撤销接口

    alipay.trade.cancel - TradeCancel()

  • 统一收单交易关闭接口

    alipay.trade.close - TradeClose()

  • 统一收单交易退款接口

    alipay.trade.refund - TradeRefund()

  • App支付接口

    alipay.trade.app.pay - TradeAppPay()

  • 统一收单交易退款查询

    alipay.trade.fastpay.refund.query - TradeFastpayRefundQuery()

  • 支付宝订单信息同步接口

    alipay.trade.orderinfo.sync - TradeOrderInfoSync()

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

    alipay.fund.trans.toaccount.transfer - FundTransToAccountTransfer()

  • 查询转账订单接口

    alipay.fund.trans.order.query - FundTransOrderQuery()

  • 资金授权发码接口

    alipay.fund.auth.order.voucher.create - FundAuthOrderVoucherCreate()

  • 资金授权操作查询接口

    alipay.fund.auth.operation.detail.query - FundAuthOperationDetailQuery()

  • 资金授权撤销接口

    alipay.fund.auth.operation.cancel - FundAuthOperationCancel()

  • 资金授权解冻接口

    alipay.fund.auth.order.unfreeze - FundAuthOrderUnfreeze()

  • 资金授权冻结接口

    alipay.fund.auth.order.freeze - FundAuthOrderFreeze()

  • 线上资金授权冻结接口

    alipay.fund.auth.order.app.freeze - FundAuthOrderAppFreeze()

  • 查询对账单下载地址

    alipay.data.dataservice.bill.downloadurl.query - BillDownloadURLQuery()

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

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

集成流程

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

沙箱环境

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

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

应用信息配置

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

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

生成秘钥对之后,将公钥提供给支付宝(通过支付宝后台上传)对我们请求的数据进行签名验证,我们的代码中将使用私钥对请求数据签名。

请参考 如何生成 RSA 密钥

创建 Wap 支付
var aliPublicKey = "" // 可选,支付宝提供给我们用于签名验证的公钥,通过支付宝管理后台获取
var privateKey = "xxx" // 必须,上一步中使用 RSA签名验签工具 生成的私钥
var client = alipay.New(appId, aliPublicKey, privateKey, false)

var p = AliPayTradeWapPay{}
p.NotifyURL = "http://xxx"
p.ReturnURL = "http://xxx"
p.Subject = "标题"
p.OutTradeNo = "传递一个唯一单号"
p.TotalAmount = "10.00"
p.ProductCode = "QUICK_WAP_WAY"

var url, err = client.TradeWapPay(p)
if err != nil {
	fmt.Println(err)
}

var payURL = url.String()
fmt.Println(payURL)
// 这个 payURL 即是用于支付的 URL,可将输出的内容复制,到浏览器中访问该 URL 即可打开支付页面。
同步返回验签

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

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

var client = alipay.New(appId, aliPublicKey, privateKey, false)
Return URL

发起支付的时候,当我们有提供 Return URL 参数,那么支付成功之后,支付宝将会重定向到该 URL,并附带上相关的参数。

var p = AliPayTradeWapPay{}
p.ReturnURL = "http://xxx/return"

这时候我们需要对支付宝提供的参数进行签名验证,当然,前提是我们在 alipay.New(...) 初始化方法中有正确提供 支付宝公钥

var client = alipay.New(appId, aliPublicKey, privateKey, false)

http.HandleFunc("/return", func(rep http.ResponseWriter, req *http.Request) {
	req.ParseForm()
	ok, err := client.VerifySign(req.Form)
	fmt.Println(ok, err)
}
验证支付结果

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

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


var client = alipay.New(appId, aliPublicKey, 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("支付失败")
	}
	alipay.AckNotification(rep) // 确认收到通知消息
})

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

关于应用私钥 (privateKey)

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

关于应用公钥 (publicKey)

应用公钥是我们通过工具生成的公钥,需要通过支付宝后台上传该公钥,支付宝收到我们请求的时候,会使用该公钥对参数进行签名验证,以确保数据的有效性。

关于支付宝公钥 (aliPublicKey)

支付宝公钥是从支付宝管理后台获取 (不是我们通过工具生成的公钥),该公钥是支付宝提供给我们用于验证支付宝接口返回数据的有效性 (我们需要使用该公钥对支付宝返回的数据进行签名验证)。

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

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

支持 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_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"
)
View Source
const (
	TradePayProductCodeFastInstant = "FAST_INSTANT_TRADE_PAY"
)

Variables

This section is empty.

Functions

func AckNotification

func AckNotification(w http.ResponseWriter)

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, aliPublicKey, privateKey string, isProduction bool) (client *AliPay)

func (*AliPay) AckNotification

func (this *AliPay) AckNotification(w http.ResponseWriter)

func (*AliPay) DoRequest

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

func (*AliPay) FundAuthOperationCancel

func (this *AliPay) FundAuthOperationCancel(param AliPayFundAuthOperationCancel) (results *AliPayFundAuthOperationCancelResponse, err error)

FundAuthOperationCancel https://docs.open.alipay.com/api_28/alipay.fund.auth.operation.cancel/ 资金授权撤销接口

func (*AliPay) FundAuthOperationDetailQuery

func (this *AliPay) FundAuthOperationDetailQuery(param AliPayFundAuthOperationDetailQuery) (results *AliPayFundAuthOperationDetailQueryResponse, err error)

FundAuthOperationDetailQuery https://docs.open.alipay.com/api_28/alipay.fund.auth.operation.detail.query/ 资金授权操作查询接口

func (*AliPay) FundAuthOrderAppFreeze

func (this *AliPay) FundAuthOrderAppFreeze(param AliPayFundAuthOrderAppFreeze) (results string, err error)

FundAuthOrderAppFreeze https://docs.open.alipay.com/api_28/alipay.fund.auth.order.app.freeze 线上资金授权冻结接口

func (*AliPay) FundAuthOrderFreeze

func (this *AliPay) FundAuthOrderFreeze(param AliPayFundAuthOrderFreeze) (results *AliPayFundAuthOrderFreezeResponse, err error)

FundAuthOrderFreeze https://docs.open.alipay.com/api_28/alipay.fund.auth.order.freeze/ 资金授权冻结接口

func (*AliPay) FundAuthOrderUnfreeze

func (this *AliPay) FundAuthOrderUnfreeze(param AliPayFundAuthOrderUnfreeze) (results *AliPayFundAuthOrderUnfreezeResponse, err error)

FundAuthOrderUnfreeze https://docs.open.alipay.com/api_28/alipay.fund.auth.order.unfreeze/ 资金授权解冻接口

func (*AliPay) FundAuthOrderVoucherCreate

func (this *AliPay) FundAuthOrderVoucherCreate(param AliPayFundAuthOrderVoucherCreate) (results *AliPayFundAuthOrderVoucherCreateResponse, err error)

FundAuthOrderVoucherCreate https://docs.open.alipay.com/api_28/alipay.fund.auth.order.voucher.create/ 资金授权发码接口

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(partnerId, 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) 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) TradeWapPay

func (this *AliPay) TradeWapPay(param AliPayTradeWapPay) (url *url.URL, err error)

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

func (*AliPay) URLValues

func (this *AliPay) URLValues(param AliPayParam) (value url.Values, 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 AliPayFundAuthOperationCancel

type AliPayFundAuthOperationCancel struct {
	NotifyURL    string `json:"-"`
	AppAuthToken string `json:"-"`                        // 可选
	AuthNo       string `json:"auth_no,omitempty"`        // 特殊可选, 支付宝授权资金订单号,与商户的授权资金订单号不能同时为空,二者都存在时,以支付宝资金授权订单号为准,该参数与支付宝授权资金操作流水号配对使用。
	OutOrderNo   string `json:"out_order_no,omitempty"`   // 特殊可选,  商户的授权资金订单号,与支付宝的授权资金订单号不能同时为空,二者都存在时,以支付宝的授权资金订单号为准,该参数与商户的授权资金操作流水号配对使用。
	OperationId  string `json:"operation_id,omitempty"`   // 特殊可选, 支付宝的授权资金操作流水号,与商户的授权资金操作流水号不能同时为空,二者都存在时,以支付宝的授权资金操作流水号为准,该参数与支付宝授权资金订单号配对使用。
	OutRequestNo string `json:"out_request_no,omitempty"` // 特殊可选, 商户的授权资金操作流水号,与支付宝的授权资金操作流水号不能同时为空,二者都存在时,以支付宝的授权资金操作流水号为准,该参数与商户的授权资金订单号配对使用。
	Remark       string `json:"remark"`                   // 必选, 商户对本次撤销操作的附言描述,长度不超过100个字母或50个汉字
}

////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/api_28/alipay.fund.auth.operation.cancel/ 资金授权撤销接口

func (AliPayFundAuthOperationCancel) APIName

func (this AliPayFundAuthOperationCancel) APIName() string

func (AliPayFundAuthOperationCancel) ExtJSONParamName

func (this AliPayFundAuthOperationCancel) ExtJSONParamName() string

func (AliPayFundAuthOperationCancel) ExtJSONParamValue

func (this AliPayFundAuthOperationCancel) ExtJSONParamValue() string

func (AliPayFundAuthOperationCancel) Params

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

type AliPayFundAuthOperationCancelResponse

type AliPayFundAuthOperationCancelResponse struct {
	Body struct {
		Code         string `json:"code"`
		Msg          string `json:"msg"`
		SubCode      string `json:"sub_code"`
		SubMsg       string `json:"sub_msg"`
		AuthNo       string `json:"auth_no"`
		OutOrderNo   string `json:"out_order_no"`
		OperationId  string `json:"operation_id"`
		OutRequestNo string `json:"out_request_no"`
		Action       string `json:"action"`
	} `json:"alipay_fund_auth_operation_cancel_response"`
	Sign string `json:"sign"`
}

type AliPayFundAuthOperationDetailQuery

type AliPayFundAuthOperationDetailQuery struct {
	AppAuthToken string `json:"-"`              // 可选
	AuthNo       string `json:"auth_no"`        // 特殊可选, 支付宝授权资金订单号,与商户的授权资金订单号不能同时为空,二者都存在时,以支付宝资金授权订单号为准,该参数与支付宝授权资金操作流水号配对使用。
	OutOrderNo   string `json:"out_order_no"`   // 特殊可选, 商户的授权资金订单号,与支付宝的授权资金订单号不能同时为空,二者都存在时,以支付宝的授权资金订单号为准,该参数与商户的授权资金操作流水号配对使用。
	OperationId  string `json:"operation_id"`   // 特殊可选, 支付宝的授权资金操作流水号,与商户的授权资金操作流水号不能同时为空,二者都存在时,以支付宝的授权资金操作流水号为准,该参数与支付宝授权资金订单号配对使用。
	OutRequestNo string `json:"out_request_no"` // 特殊可选, 商户的授权资金操作流水号,与支付宝的授权资金操作流水号不能同时为空,二者都存在时,以支付宝的授权资金操作流水号为准,该参数与商户的授权资金订单号配对使用。
}

////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/api_28/alipay.fund.auth.operation.detail.query/ 资金授权操作查询接口

func (AliPayFundAuthOperationDetailQuery) APIName

func (AliPayFundAuthOperationDetailQuery) ExtJSONParamName

func (this AliPayFundAuthOperationDetailQuery) ExtJSONParamName() string

func (AliPayFundAuthOperationDetailQuery) ExtJSONParamValue

func (this AliPayFundAuthOperationDetailQuery) ExtJSONParamValue() string

func (AliPayFundAuthOperationDetailQuery) Params

type AliPayFundAuthOperationDetailQueryResponse

type AliPayFundAuthOperationDetailQueryResponse struct {
	Body struct {
		AuthNo                  string `json:"auth_no"`
		OutOrderNo              string `json:"out_order_no"`
		TotalFreezeAmount       string `json:"total_freeze_amount"`
		RestAmount              string `json:"rest_amount"`
		TotalPayAmount          string `json:"total_pay_amount"`
		OrderTitle              string `json:"order_title"`
		PayerLogonId            string `json:"payer_logon_id"`
		PayerUserId             string `json:"payer_user_id"`
		ExtraParam              string `json:"extra_param"`
		OperationId             string `json:"operation_id"`
		OutRequestNo            string `json:"out_request_no"`
		Amount                  string `json:"amount"`
		OperationType           string `json:"operation_type"`
		Status                  string `json:"status"`
		Remark                  string `json:"remark"`
		GMTCreate               string `json:"gmt_create"`
		GMTTrans                string `json:"gmt_trans"`
		PreAuthType             string `json:"pre_auth_type"`
		TransCurrency           string `json:"trans_currency"`
		TotalFreezeCreditAmount string `json:"total_freeze_credit_amount"`
		TotalFreezeFundAmount   string `json:"total_freeze_fund_amount"`
		TotalPayCreditAmount    string `json:"total_pay_credit_amount"`
		TotalPayFundAmount      string `json:"total_pay_fund_amount"`
		RestCreditAmount        string `json:"rest_credit_amount"`
		RestFundAmount          string `json:"rest_fund_amount"`
		CreditAmount            string `json:"credit_amount"`
		FundAmount              string `json:"fund_amount"`
	} `json:"alipay_fund_auth_operation_detail_query_response"`
	Sign string `json:"sign"`
}

type AliPayFundAuthOrderAppFreeze

type AliPayFundAuthOrderAppFreeze struct {
	NotifyURL         string `json:"-"`
	AppAuthToken      string `json:"-"`                             // 可选
	OutOrderNo        string `json:"out_order_no"`                  // 必选, 商户授权资金订单号 ,不能包含除中文、英文、数字以外的字符,创建后不能修改,需要保证在商户端不重复。
	OutRequestNo      string `json:"out_request_no"`                // 必选, 商户本次资金操作的请求流水号,用于标示请求流水的唯一性,不能包含除中文、英文、数字以外的字符,需要保证在商户端不重复。
	OrderTitle        string `json:"order_title"`                   // 必选, 业务订单的简单描述,如商品名称等 长度不超过100个字母或50个汉字
	Amount            string `json:"amount"`                        // 必选, 需要冻结的金额,单位为:元(人民币),精确到小数点后两位 取值范围:[0.01,100000000.00]
	ProductCode       string `json:"product_code"`                  // 必选, 销售产品码,新接入线上预授权的业务,本字段取值固定为PRE_AUTH_ONLINE 。
	PayeeLogonId      string `json:"payee_logon_id,omitempty"`      // 收款方支付宝账号(Email或手机号),如果收款方支付宝登录号(payee_logon_id)和用户号(payee_user_id)同时传递,则以用户号(payee_user_id)为准,如果商户有勾选花呗渠道,收款方支付宝登录号(payee_logon_id)和用户号(payee_user_id)不能同时为空。
	PayeeUserId       string `json:"payee_user_id,omitempty"`       // 收款方的支付宝唯一用户号,以2088开头的16位纯数字组成,如果非空则会在支付时校验交易的的收款方与此是否一致,如果商户有勾选花呗渠道,收款方支付宝登录号(payee_logon_id)和用户号(payee_user_id)不能同时为空。
	PayTimeout        string `json:"pay_timeout,omitempty"`         // 该笔订单允许的最晚付款时间,逾期将关闭该笔订单 取值范围:1m~15d。m-分钟,h-小时,d-天。 该参数数值不接受小数点, 如 1.5h,可转换为90m 如果为空,默认15m
	ExtraParam        string `json:"extra_param,omitempty"`         // 业务扩展参数,用于商户的特定业务信息的传递,json格式。 1.授权业务对应的类目,key为category,value由支付宝分配,比如充电桩业务传 "CHARGE_PILE_CAR"; 2. 外部商户的门店编号,key为outStoreCode,可选; 3. 外部商户的门店简称,key为outStoreAlias,可选。
	EnablePayChannels string `json:"enable_pay_channels,omitempty"` // 商户可用该参数指定用户可使用的支付渠道,本期支持商户可支持三种支付渠道,余额宝(MONEY_FUND)、花呗(PCREDIT_PAY)以及芝麻信用(CREDITZHIMA)。商户可设置一种支付渠道,也可设置多种支付渠道。
}

////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/api_28/alipay.fund.auth.order.app.freeze 线上资金授权冻结接口请求参数

func (AliPayFundAuthOrderAppFreeze) APIName

func (this AliPayFundAuthOrderAppFreeze) APIName() string

func (AliPayFundAuthOrderAppFreeze) ExtJSONParamName

func (this AliPayFundAuthOrderAppFreeze) ExtJSONParamName() string

func (AliPayFundAuthOrderAppFreeze) ExtJSONParamValue

func (this AliPayFundAuthOrderAppFreeze) ExtJSONParamValue() string

func (AliPayFundAuthOrderAppFreeze) Params

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

type AliPayFundAuthOrderAppFreezeResponse

type AliPayFundAuthOrderAppFreezeResponse struct {
	Body struct {
		Code         string `json:"code"`
		Msg          string `json:"msg"`
		SubCode      string `json:"sub_code"`
		SubMsg       string `json:"sub_msg"`
		AuthNo       string `json:"auth_no"`
		OutOrderNo   string `json:"out_order_no"`
		OperationId  string `json:"operation_id"`
		OutRequestNo string `json:"out_request_no"`
		Amount       string `json:"amount"`
		Status       string `json:"status"`
		PayerUserId  string `json:"payer_user_id"`
		GMTTrans     string `json:"gmt_trans"`
		PreAuthType  string `json:"pre_auth_type"`
		CreditAmount string `json:"credit_amount"`
		FundAmount   string `json:"fund_amount"`
	} `json:"alipay_fund_auth_order_app_freeze_response"`
	Sign string `json:"sign"`
}

type AliPayFundAuthOrderFreeze

type AliPayFundAuthOrderFreeze struct {
	NotifyURL    string `json:"-"`
	AppAuthToken string `json:"-"`                        // 可选
	AuthCode     string `json:"auth_code"`                // 必选, 支付授权码,25~30开头的长度为16~24位的数字,实际字符串长度以开发者获取的付款码长度为准
	AuthCodeType string `json:"auth_code_type"`           // 必选, 授权码类型 目前仅支持"bar_code"
	OutOrderNo   string `json:"out_order_no"`             // 必选, 商户授权资金订单号 ,不能包含除中文、英文、数字以外的字符,创建后不能修改,需要保证在商户端不重复。
	OutRequestNo string `json:"out_request_no"`           // 必选, 商户本次资金操作的请求流水号,用于标示请求流水的唯一性,不能包含除中文、英文、数字以外的字符,需要保证在商户端不重复。
	OrderTitle   string `json:"order_title"`              // 必选, 业务订单的简单描述,如商品名称等 长度不超过100个字母或50个汉字
	Amount       string `json:"amount"`                   // 必选, 需要冻结的金额,单位为:元(人民币),精确到小数点后两位 取值范围:[0.01,100000000.00]
	PayeeLogonId string `json:"payee_logon_id,omitempty"` // 可选, 收款方支付宝账号(Email或手机号),如果收款方支付宝登录号(payee_logon_id)和用户号(payee_user_id)同时传递,则以用户号(payee_user_id)为准,如果商户有勾选花呗渠道,收款方支付宝登录号(payee_logon_id)和用户号(payee_user_id)不能同时为空。
	PayeeUserId  string `json:"payee_user_id,omitempty"`  // 可选, 收款方的支付宝唯一用户号,以2088开头的16位纯数字组成,如果非空则会在支付时校验交易的的收款方与此是否一致,如果商户有勾选花呗渠道,收款方支付宝登录号(payee_logon_id)和用户号(payee_user_id)不能同时为空。
	PayTimeout   string `json:"pay_timeout,omitempty"`    // 可选, 该笔订单允许的最晚付款时间,逾期将关闭该笔订单 取值范围:1m~15d。m-分钟,h-小时,d-天。 该参数数值不接受小数点, 如 1.5h,可转换为90m 如果为空,默认15m
	ExtraParam   string `json:"extra_param,omitempty"`    // 可选, 业务扩展参数,用于商户的特定业务信息的传递,json格式。 1.授权业务对应的类目,key为category,value由支付宝分配,比如充电桩业务传 "CHARGE_PILE_CAR"; 2. 外部商户的门店编号,key为outStoreCode,可选; 3. 外部商户的门店简称,key为outStoreAlias,可选。
	ProductCode  string `json:"product_code,omitempty"`   // 可选, 销售产品码,后续新接入预授权当面付的业务,本字段取值固定为PRE_AUTH。
}

////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/api_28/alipay.fund.auth.order.freeze/ 资金授权冻结接口

func (AliPayFundAuthOrderFreeze) APIName

func (this AliPayFundAuthOrderFreeze) APIName() string

func (AliPayFundAuthOrderFreeze) ExtJSONParamName

func (this AliPayFundAuthOrderFreeze) ExtJSONParamName() string

func (AliPayFundAuthOrderFreeze) ExtJSONParamValue

func (this AliPayFundAuthOrderFreeze) ExtJSONParamValue() string

func (AliPayFundAuthOrderFreeze) Params

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

type AliPayFundAuthOrderFreezeResponse

type AliPayFundAuthOrderFreezeResponse struct {
	Body struct {
		Code         string `json:"code"`
		Msg          string `json:"msg"`
		SubCode      string `json:"sub_code"`
		SubMsg       string `json:"sub_msg"`
		AuthNo       string `json:"auth_no"`
		OutOrderNo   string `json:"out_order_no"`
		OperationId  string `json:"operation_id"`
		OutRequestNo string `json:"out_request_no"`
		Amount       string `json:"amount"`
		Status       string `json:"status"`
		PayerUserId  string `json:"payer_user_id"`
		GMTTrans     string `json:"gmt_trans"`
	} `json:"alipay_fund_auth_order_freeze_response"`
	Sign string `json:"sign"`
}

type AliPayFundAuthOrderUnfreeze

type AliPayFundAuthOrderUnfreeze struct {
	NotifyURL    string `json:"-"`
	AuthNo       string `json:"auth_no"`               // 必选,支付宝资金授权订单号,支付宝冻结时返回的交易号,数字格式 2016101210002001810258115912
	AppAuthToken string `json:"-"`                     // 可选
	OutRequestNo string `json:"out_request_no"`        // 必选, 商户本次资金操作的请求流水号,用于标示请求流水的唯一性,不能包含除中文、英文、数字以外的字符,需要保证在商户端不重复。
	Amount       string `json:"amount"`                // 必选, 本次操作解冻的金额,单位为:元(人民币),精确到小数点后两位,取值范围:[0.01,100000000.00]
	Remark       string `json:"remark"`                // 必选, 商户对本次解冻操作的附言描述,长度不超过100个字母或50个汉字
	ExtraParam   string `json:"extra_param,omitempty"` // 可选, 解冻扩展信息,json格式;unfreezeBizInfo 目前为芝麻消费字段,支持Key值如下: "bizComplete":"true" -- 选填:标识本次解冻用户是否履约,如果true信用单会完结为COMPLETE
}

////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/api_28/alipay.fund.auth.order.unfreeze/ 资金授权解冻接口

func (AliPayFundAuthOrderUnfreeze) APIName

func (this AliPayFundAuthOrderUnfreeze) APIName() string

func (AliPayFundAuthOrderUnfreeze) ExtJSONParamName

func (this AliPayFundAuthOrderUnfreeze) ExtJSONParamName() string

func (AliPayFundAuthOrderUnfreeze) ExtJSONParamValue

func (this AliPayFundAuthOrderUnfreeze) ExtJSONParamValue() string

func (AliPayFundAuthOrderUnfreeze) Params

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

type AliPayFundAuthOrderUnfreezeResponse

type AliPayFundAuthOrderUnfreezeResponse struct {
	Body struct {
		Code         string `json:"code"`
		Msg          string `json:"msg"`
		SubCode      string `json:"sub_code"`
		SubMsg       string `json:"sub_msg"`
		AuthNo       string `json:"auth_no"`
		OutOrderNo   string `json:"out_order_no"`
		OperationId  string `json:"operation_id"`
		OutRequestNo string `json:"out_request_no"`
		Amount       string `json:"amount"`
		Status       string `json:"status"`
		GMTTrans     string `json:"gmt_trans"`
		CreditAmount string `json:"credit_amount"`
		FundAmount   string `json:"fund_amount"`
	} `json:"alipay_fund_auth_order_unfreeze_response"`
	Sign string `json:"sign"`
}

type AliPayFundAuthOrderVoucherCreate

type AliPayFundAuthOrderVoucherCreate struct {
	NotifyURL         string `json:"-"`
	AppAuthToken      string `json:"-"`                             // 可选
	OutOrderNo        string `json:"out_order_no"`                  // 必选, 商户授权资金订单号,创建后不能修改,需要保证在商户端不重复。
	OutRequestNo      string `json:"out_request_no"`                // 必选, 商户本次资金操作的请求流水号,用于标示请求流水的唯一性,需要保证在商户端不重复。
	ProductCode       string `json:"product_code,omitempty"`        // 必选, 销售产品码,后续新接入预授权当面付的业务,本字段取值固定为PRE_AUTH。
	OrderTitle        string `json:"order_title"`                   // 必选, 业务订单的简单描述,如商品名称等 长度不超过100个字母或50个汉字
	Amount            string `json:"amount"`                        // 必选, 需要冻结的金额,单位为:元(人民币),精确到小数点后两位 取值范围:[0.01,100000000.00]
	PayeeUserId       string `json:"payee_user_id,omitempty"`       // 可选, 收款方的支付宝唯一用户号,以2088开头的16位纯数字组成,如果非空则会在支付时校验交易的的收款方与此是否一致,如果商户有勾选花呗渠道,收款方支付宝登录号(payee_logon_id)和用户号(payee_user_id)不能同时为空。
	PayeeLogonId      string `json:"payee_logon_id,omitempty"`      // 可选, 收款方支付宝账号(Email或手机号),如果收款方支付宝登录号(payee_logon_id)和用户号(payee_user_id)同时传递,则以用户号(payee_user_id)为准,如果商户有勾选花呗渠道,收款方支付宝登录号(payee_logon_id)和用户号(payee_user_id)不能同时为空。
	PayTimeout        string `json:"pay_timeout,omitempty"`         // 可选, 该笔订单允许的最晚付款时间,逾期将关闭该笔订单 取值范围:1m~15d。m-分钟,h-小时,d-天。 该参数数值不接受小数点, 如 1.5h,可转换为90m 如果为空,默认15m
	ExtraParam        string `json:"extra_param,omitempty"`         // 可选, 业务扩展参数,用于商户的特定业务信息的传递,json格式。 1.授权业务对应的类目,key为category,value由支付宝分配,比如充电桩业务传 "CHARGE_PILE_CAR"; 2. 外部商户的门店编号,key为outStoreCode,可选; 3. 外部商户的门店简称,key为outStoreAlias,可选。
	TransCurrency     string `json:"trans_currency,omitempty"`      // 可选, 标价币种, amount 对应的币种单位。支持澳元:AUD, 新西兰元:NZD, 台币:TWD, 美元:USD, 欧元:EUR, 英镑:GBP
	SettleCurrency    string `json:"settle_currency,omitempty"`     // 可选, 商户指定的结算币种。支持澳元:AUD, 新西兰元:NZD, 台币:TWD, 美元:USD, 欧元:EUR, 英镑:GBP
	EnablePayChannels string `json:"enable_pay_channels,omitempty"` // 可选, 商户可用该参数指定用户可使用的支付渠道,本期支持商户可支持三种支付渠道,余额宝(MONEY_FUND)、花呗(PCREDIT_PAY)以及芝麻信用(CREDITZHIMA)。商户可设置一种支付渠道,也可设置多种支付渠道。
}

////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/api_28/alipay.fund.auth.order.voucher.create/ 资金授权发码接口

func (AliPayFundAuthOrderVoucherCreate) APIName

func (AliPayFundAuthOrderVoucherCreate) ExtJSONParamName

func (this AliPayFundAuthOrderVoucherCreate) ExtJSONParamName() string

func (AliPayFundAuthOrderVoucherCreate) ExtJSONParamValue

func (this AliPayFundAuthOrderVoucherCreate) ExtJSONParamValue() string

func (AliPayFundAuthOrderVoucherCreate) Params

type AliPayFundAuthOrderVoucherCreateResponse

type AliPayFundAuthOrderVoucherCreateResponse struct {
	Body struct {
		Code         string `json:"code"`
		Msg          string `json:"msg"`
		SubCode      string `json:"sub_code"`
		SubMsg       string `json:"sub_msg"`
		OutOrderNo   string `json:"out_order_no"`
		OutRequestNo string `json:"out_request_no"`
		CodeType     string `json:"code_type"`
		CodeValue    string `json:"code_value"`
		CodeURL      string `json:"code_url"`
	} `json:"alipay_fund_auth_order_voucher_create_response"`
	Sign string `json:"sign"`
}

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 {
	TradePay
	TimeExpire string `json:"time_expire,omitempty"` // 绝对超时时间,格式为yyyy-MM-dd HH:mm。
}

//////////////////////////////////////////////////////////////////////////////// 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 {
	TradePay
	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"`
}

//////////////////////////////////////////////////////////////////////////////// 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 AliPayTradeOrderInfoSync

type AliPayTradeOrderInfoSync struct {
	AppAuthToken string `json:"-"`              // 可选
	OutRequestNo string `json:"out_request_no"` // 必选 标识一笔交易多次请求,同一笔交易多次信息同步时需要保证唯一
	BizType      string `json:"biz_type"`       // 必选 交易信息同步对应的业务类型,具体值与支付宝约定;信用授权场景下传CREDIT_AUTH
	TradeNo      string `json:"trade_no"`       // 可选 支付宝交易号,和商户订单号不能同时为空
	OrderBizInfo string `json:"order_biz_info"` // 可选 商户传入同步信息,具体值要和支付宝约定;用于芝麻信用租车、单次授权等信息同步场景,格式为json格式
}

//////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/api_1/alipay.trade.orderinfo.sync/

func (AliPayTradeOrderInfoSync) APIName

func (this AliPayTradeOrderInfoSync) APIName() string

func (AliPayTradeOrderInfoSync) ExtJSONParamName

func (this AliPayTradeOrderInfoSync) ExtJSONParamName() string

func (AliPayTradeOrderInfoSync) ExtJSONParamValue

func (this AliPayTradeOrderInfoSync) ExtJSONParamValue() string

func (AliPayTradeOrderInfoSync) Params

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

type AliPayTradeOrderInfoSyncResponse

type AliPayTradeOrderInfoSyncResponse struct {
	Body 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"`
		BuyerUserId string `json:"buyer_user_id"`
	} `json:"alipay_trade_orderinfo_sync_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 AliPayTradeOrderSettleResponse

type AliPayTradeOrderSettleResponse struct {
	Body struct {
		Code    string `json:"code"`
		Msg     string `json:"msg"`
		SubCode string `json:"sub_code"`
		SubMsg  string `json:"sub_msg"`
		TradeNo string `json:"trade_no"`
	} `json:"alipay_trade_order_settle_response"`
	Sign string `json:"sign"`
}

type AliPayTradePagePay

type AliPayTradePagePay struct {
	TradePay
	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时该参数生效
}

////////////////////////////////////////////////////////////////////////////// https://docs.open.alipay.com/api_1/alipay.trade.app.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 {
	TradePay
	AppAuthToken string `json:"-"` // 可选

	Scene    string `json:"scene"`               // 必须 支付场景 条码支付,取值:bar_code 声波支付,取值:wave_code, bar_code, wave_code
	AuthCode string `json:"auth_code,omitempty"` // 必须 支付授权码
	AuthNo   string `json:"auth_no,omitempty"`   // 可选 预授权冻结交易号

	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"`
}

//////////////////////////////////////////////////////////////////////////////// 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 {
	TradePay
	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"`            // 可选 商户机具终端编号
}

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

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

type TradePay struct {
	NotifyURL string `json:"-"`
	ReturnURL string `json:"-"`

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

	Body               string `json:"body,omitempty"`                 // 订单描述
	BusinessParams     string `json:"business_params,omitempty"`      // 商户传入业务信息,具体值要和支付宝约定,应用于安全,营销等参数直传场景,格式为json格式
	DisablePayChannels string `json:"disable_pay_channels,omitempty"` // 禁用渠道,用户不可用指定渠道支付 当有多个渠道时用“,”分隔 注,与enable_pay_channels互斥
	EnablePayChannels  string `json:"enable_pay_channels,omitempty"`  // 可用渠道,用户只能在指定渠道范围内支付  当有多个渠道时用“,”分隔 注,与disable_pay_channels互斥
	//ExtUserInfo        string `json:"ext_user_info,omitempty"`        // 外部指定买家
	ExtendParams     string `json:"extend_params,omitempty"`     // 业务扩展参数,详见下面的“业务扩展参数说明”
	GoodsType        string `json:"goods_type,omitempty"`        // 商品主类型:0—虚拟类商品,1—实物类商品 注:虚拟类商品不支持使用花呗渠道
	InvoiceInfo      string `json:"invoice_info,omitempty"`      // 开票信息
	PassbackParams   string `json:"passback_params,omitempty"`   // 公用回传参数,如果请求时传递了该参数,则返回给商户时会回传该参数。支付宝会在异步通知时将该参数原样返回。本参数必须进行UrlEncode之后才可以发送给支付宝
	PromoParams      string `json:"promo_params,omitempty"`      // 优惠参数 注:仅与支付宝协商后可用
	RoyaltyInfo      string `json:"royalty_info,omitempty"`      // 描述分账信息,json格式,详见分账参数说明
	SellerId         string `json:"seller_id,omitempty"`         // 收款支付宝用户ID。 如果该值为空,则默认为商户签约账号对应的支付宝用户ID
	SettleInfo       string `json:"settle_info,omitempty"`       // 描述结算信息,json格式,详见结算参数说明
	SpecifiedChannel string `json:"specified_channel,omitempty"` // 指定渠道,目前仅支持传入pcredit  若由于用户原因渠道不可用,用户可选择是否用其他渠道支付。  注:该参数不可与花呗分期参数同时传入
	StoreId          string `json:"store_id,omitempty"`          // 商户门店编号。该参数用于请求参数中以区分各门店,非必传项。
	SubMerchant      string `json:"sub_merchant,omitempty"`      // 间连受理商户信息体,当前只对特殊银行机构特定场景下使用此字段
	TimeoutExpress   string `json:"timeout_express,omitempty"`   // 该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m。
}

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

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