alipay

package module
v0.0.6 Latest Latest
Warning

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

Go to latest
Published: Aug 30, 2023 License: Apache-2.0 Imports: 18 Imported by: 0

README

支付宝支付基础版本,实现开放接口中的当面付相关接口

支付宝开发文档

  • 统一收单交易支付接口
  • 统一收单线下交易查询接口
  • 统一收单交易退款接口
  • 统一收单交易退款查询接口
  • 统一收单交易撤销接口](https://www.jianshu.com/p/ed0206c2f613)

Documentation

Index

Constants

View Source
const (
	TRADE_REFUND_RESPONSE_FAIL    string = "fail"
	TRADE_REFUND_RESPONSE_SUCCESS string = "success"
)

需要响应给支付宝服务器的内容 响应

View Source
const (
	RESPONSE_SUCCESS    string = "10000"
	RESPONSE_NEED_QUERY string = "10003" // 该笔交易需要输入密码或验证时返回10003
)

错误码

View Source
const (
	// 请求环境
	CLIENT_ENVIRONMENT_SB   string = "sandbox"
	CLIENT_ENVIRONMENT_PROD string = "production"

	// 网关地址
	GATEWAY_URL_SB   string = "https://openapi-sandbox.dl.alipaydev.com/gateway.do"
	GATEWAY_URL_PROD string = "https://openapi.alipay.com/gateway.do"
)
View Source
const (
	PAY_SCENE_BAR_CODE      string = "bar_code"      //当面付条码支付场景(默认)
	PAY_SCENE_SECURITY_CODE string = "security_code" //当面付刷脸支付场景,对应的auth_code为fp开头的刷脸标识串
)

当面付支付场景

View Source
const (
	QUERY_OPTIONS_TRADE_SETTLE_INFO      string = "trade_settle_info"
	QUERY_OPTIONS_FUND_BILL_LIST         string = "fund_bill_list"
	QUERY_OPTIONS_VOUCHER_DETAIL_LIST    string = "voucher_detail_list"
	QUERY_OPTIONS_DISCOUNT_GOODS_DETAIL  string = "discount_goods_detail"
	QUERY_OPTIONS_MDISCOUNT_AMOUNT       string = "mdiscount_amount"
	QUERY_OPTIONS_MEDICAL_INSURANCE_INFO string = "medical_insurance_info"
)

当面付查询参数

View Source
const (
	AUTH_TOKEN_APP_SUTHORIZATION_CODE string = "authorization_code" //使用应用授权码换取应用授权令牌app_auth_token。
	AUTH_TOKEN_APP_RFRESH_TOKEN       string = "refresh_token"      //使用app_refresh_token刷新获取新授权令牌。
)

换取应用令牌的两种方式

View Source
const (
	TRADE_STATUS_WAIT_BUYER_PAY string = "WAIT_BUYER_PAY" //交易创建,等待买家付款
	TRADE_STATUS_TRADE_CLOSED   string = "TRADE_CLOSED"   //未付款交易超时关闭,或支付完成后全额退款
	TRADE_STATUS_TRADE_SUCCESS  string = "TRADE_SUCCESS"  //交易支付成功
	TRADE_STATUS_TRADE_FINISHED string = "TRADE_FINISHED" //交易结束,不可退款
)

查询交易订单的状态

View Source
const (
	TRADE_CANCEL_ACTION_CLOSE  string = "close"
	TRADE_CANCEL_ACTION_REFUND string = "refund"
)

撤销订单返回状态

View Source
const (
	TRADE_REFUND_QUERY_STATUS_SUCCESS = "REFUND_SUCCESS"
)

退款查询返回状态

Variables

This section is empty.

Functions

func HttpDoRequest

func HttpDoRequest(method, url string, data []byte) ([]byte, error)

func LoadPrivateKeyWithPath

func LoadPrivateKeyWithPath(environment string, path string) (privateKey *rsa.PrivateKey, err error)

LoadPrivateKeyWithPath 通过私钥的文件路径内容加载私钥

func LoadPublicKeyWithPath

func LoadPublicKeyWithPath(path string) (privateKey *rsa.PublicKey, err error)

LoadPublicKeyWithPath 通过公钥的文件路径内容加载公钥

func ParseCertificate

func ParseCertificate(b []byte) (*x509.Certificate, error)

ParseCertificate 解析证书

func ParsePrivateKey

func ParsePrivateKey(environment string, privateKeyBytes []byte) (*rsa.PrivateKey, error)

ParsePrivateKey 解析私钥

func ParsePublicKey

func ParsePublicKey(data []byte) (key *rsa.PublicKey, err error)

ParsePublicKey 解析公钥

func RSAVerifyWithKey

func RSAVerifyWithKey(content []byte, sign []byte, publicKey *rsa.PublicKey, hash crypto.Hash) error

RSAVerifyWithKey 验证签名

func Rsa2PrivateSign

func Rsa2PrivateSign(signContent string, privateKey *rsa.PrivateKey, hash crypto.Hash) string

Rsa2PrivateSign RSA2私钥签名

Types

type AliClient

type AliClient struct {
	// contains filtered or unexported fields
}

func NewAliClient

func NewAliClient(appId, format, charset, signType, environment string, aliPrivateKey *rsa.PrivateKey, aliPublicKey *rsa.PublicKey) *AliClient

func (*AliClient) AliPayOpenAuthTokenApp

func (client *AliClient) AliPayOpenAuthTokenApp(openAuthTokenAppRequest OpenAuthTokenAppRequest) (OpenAuthTokenAppResponse, error)

AliPayOpenAuthTokenApp 换取应用授权令牌

func (*AliClient) AliPayTradPay

func (client *AliClient) AliPayTradPay(appAuthToken string, notifyUrl string, tradePayRequest TradePayRequest) (TradePayResponse, error)

AliPayTradPay 统一收单交易支付接口(alipay.trade.pay): 收银员使用扫码枪读取用户手机支付宝支付码

func (*AliClient) AliPayTradeCancel

func (client *AliClient) AliPayTradeCancel(appAuthToken string, tradeCancelRequest TradeCancelRequest) (TradeCancelResponse, error)

AliPayTradeCancel 统一收单交易撤销接口(alipay.trade.cancel)

func (*AliClient) AliPayTradeFastPayRefundQuery

func (client *AliClient) AliPayTradeFastPayRefundQuery(appAuthToken string, tradeFastPayRefundQueryRequest TradeFastPayRefundQueryRequest) (TradeFastPayRefundQueryResponse, error)

AliPayTradeFastPayRefundQuery 统一收单交易退款查询(alipay.trade.fastpay.refund.query)

func (*AliClient) AliPayTradeQuery

func (client *AliClient) AliPayTradeQuery(appAuthToken string, tradeQueryRequest TradeQueryRequest) (TradeQueryResponse, error)

AliPayTradeQuery 统一收单交易查询(alipay.trade.query)

func (*AliClient) AliPayTradeRefund

func (client *AliClient) AliPayTradeRefund(appAuthToken string, notifyUrl string, tradeRefundRequest TradeRefundRequest) (TradeRefundResponse, error)

AliPayTradeRefund 统一收单交易退款接口(alipay.trade.refund) 只有在支付时填写回调地址,才会收到退款通知

func (*AliClient) AsyncRequestGetParamAndCheckSign added in v0.0.5

func (client *AliClient) AsyncRequestGetParamAndCheckSign(reqBuff []byte) (map[string]string, error)

AsyncRequestCheckSign 异步通知请求验签

func (*AliClient) DoRequest

func (client *AliClient) DoRequest(appId, appAuthToken, notifyUrl string, apiReq IRequester) (IResponse, error)

发起请求

func (*AliClient) SyncVerifySign

func (client *AliClient) SyncVerifySign(sign, buff string) error

SyncVerifySign 同步响应签名校验: scene验签场景 sign待验证的签名 buff待验证的内容 sertSn支付宝公钥证书序列号(公钥证书模式下,同步响应时使用)

type BusinessParams

type BusinessParams struct {
	McCreateTradeIp string `json:"mc_create_trade_ip,omitempty"` //可选	128 商户端创建订单的 IP,须上传正确的用户端外网 IP,支持 ipv4/ipv6 格式;mc_create_trade_ip和mcCreateTradeIp(旧)参数描述相同,首选mc_create_trade_ip入参,请勿重复入参; 如已入参mcCreateTradeIp(旧),无需新增入参mc_create_trade_ip。  127.0.0.1
}

商户传入业务信息,具体值要和支付宝约定,应用于安全,营销等参数直传场景

type CommonRequestParam

type CommonRequestParam struct {
	AppId        string `json:"app_id" url:"app_id"`                                     // 必选	最大长度32	支付宝分配给开发者的应用ID 2014072300007148
	Method       string `json:"method" url:"method"`                                     // 必选	128 		接口名称 alipay.trade.page.pay
	Format       string `json:"format,omitempty" url:"format"`                           // 可选	40 			仅支持JSON JSON
	Charset      string `json:"charset" url:"charset"`                                   // 必选	10 			请求使用的编码格式,如utf-8,gbk,gb2312等
	SignType     string `json:"sign_type" url:"sign_type"`                               // 必选	10 			商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2
	Sign         string `json:"sign,omitempty" url:"sign"`                               // 必选	344 		商户请求参数的签名串
	Timestamp    string `json:"timestamp" url:"timestamp"`                               // 必选	19 			发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" 2014-07-24 03:07:50
	Version      string `json:"version" url:"version"`                                   // 必选 3 			调用的接口版本,固定为:1.0
	NotifyUrl    string `json:"notify_url,omitempty" url:"notify_url,omitempty"`         // 可选	256	 		支付宝服务器主动通知商户服务器里指定的页面http/https路径。
	AppAuthToken string `json:"app_auth_token,omitempty" url:"app_auth_token,omitempty"` // 可选	40 			详见应用授权概述
	BizContent   string `json:"biz_content" url:"biz_content"`                           // 必选	无长度限制 	请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档

}

公共请求参数

func (*CommonRequestParam) GenRequestParamStr

func (crp *CommonRequestParam) GenRequestParamStr() (string, error)

生成请求参数字符串: 该方法的执行必须在SetRequestSign方法后

func (*CommonRequestParam) SetRequestBizContent

func (crp *CommonRequestParam) SetRequestBizContent(req IRequester) (string, error)

设置BigContent参数

func (*CommonRequestParam) SetRequestSign

func (crp *CommonRequestParam) SetRequestSign(privateKey *rsa.PrivateKey) (string, error)

设置Sign

type CommonResponseParam

type CommonResponseParam struct {
	Code    string `json:"code"`     //必选	网关返回码,详见文档 40004
	Msg     string `json:"msg"`      //必选	网关返回码描述,详见文档 Business Failed
	SubCode string `json:"sub_code"` //可选  业务返回码,参见具体的API接口文档 ACQ.TRADE_HAS_SUCCESS
	SubMsg  string `json:"sub_msg"`  //可选  业务返回码描述,参见具体的API接口文档 交易已被支付
	Sign    string `json:"sign"`     //必选	签名,详见文档 DZXh8eeTuAHoYE3w1J+POiPhfDxOYBfUNn1lkeT/V7P4zJdyojWEa6IZs6Hz0yDW5Cp/viufUb5I0/V5WENS3OYR8zRedqo6D+fUTdLHdc+EFyCkiQhBxIzgngPdPdfp1PIS7BdhhzrsZHbRqb7o4k3Dxc+AAnFauu4V6Zdwczo=
}

公共响应参数

type DepositBackInfo

type DepositBackInfo struct {
	HasDepositBack     string `json:"has_deposit_back,omitempty"`      //可选	10 是否存在银行卡冲退信息。 true
	DbackStatus        string `json:"dback_status,omitempty"`          //可选	8 银行卡冲退状态。S-成功,F-失败,P-处理中。银行卡冲退失败,资金自动转入用户支付宝余额。 S
	DbackAmount        string `json:"dback_amount,omitempty"`          //可选	9 银行卡冲退金额。单位:元。 1.01
	BankAckTime        string `json:"bank_ack_time,omitempty"`         //可选	32 银行响应时间,格式为yyyy-MM-dd HH:mm:ss 2020-06-02 14:03:48
	EstBankReceiptTime string `json:"est_bank_receipt_time,omitempty"` //可选	32 预估银行到账时间,格式为yyyy-MM-dd HH:mm:ss 2020-06-02 14:03:48
}

type ErrorParam

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

* 错误处理

func (ErrorParam) GetBadResponseDesc

func (e ErrorParam) GetBadResponseDesc() string

func (ErrorParam) IsBadResponse added in v0.0.4

func (e ErrorParam) IsBadResponse() error

IsBadResponse 响应code校验

type ExtendParams

type ExtendParams struct {
	SysServiceProviderId string `json:"sys_service_provider_id,omitempty"` //可选	64 系统商编号 该参数作为系统商返佣数据提取的依据,请填写系统商签约协议的PID 2088511833207846
	SpecifiedSellerName  string `json:"specified_seller_name,omitempty"`   //可选	32 特殊场景下,允许商户指定交易展示的卖家名称 XXX的跨境小铺
	CardType             string `json:"card_type,omitempty"`               //可选	32 卡类型 S0JP0000
}

业务扩展参数

type GoodsDetails

type GoodsDetails struct {
	GoodsId        string  `json:"goods_id,omitempty"`        //必选	64 商品的编号 apple-01
	GoodsName      string  `json:"goods_name,omitempty"`      //必选	256 商品名称 ipad
	Quantity       float64 `json:"quantity,omitempty"`        //必选	32 商品数量 1
	Price          float64 `json:"price,omitempty"`           //必选	9 商品单价,单位为元 2000
	GoodsCategory  string  `json:"goods_category,omitempty"`  //可选	24 商品类目 34543238
	CategoriesTree string  `json:"categories_tree,omitempty"` //可选	128 商品类目树,从商品类目根节点到叶子节点的类目id组成,类目id值使用|分割 124868003|126232002|126252004
	ShowUrl        string  `json:"show_url,omitempty"`        //可选	400 商品的展示地址 http://www.alipay.com/xxx.jpg
}

订单包含的商品列表信息,json格式。

type IRequester

type IRequester interface {
	HttpMethod() string                    //http方法
	ApiParamMethod() string                //请求的接口名称
	GenResponse([]byte) (IResponse, error) //获取响应数据
	DoValidate() error                     //检查请求体数据
}

type IRespVerify

type IRespVerify interface {
	IsBadResponse() bool //响应code校验

}

返回结果校验

type IResponse

type IResponse interface {
	ApiParamMethod() string
	IsBadResponse() error
}

type OpenApiRoyaltyDetailInfoPojo

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

退分账明细信息

type OpenAuthTokenAppRequest

type OpenAuthTokenAppRequest struct {
	GrantType    string `json:"grant_type"`              //必选	20 授权方式。支持: authorization_code:使用应用授权码换取应用授权令牌app_auth_token。 refresh_token:使用app_refresh_token刷新获取新授权令牌。 authorization_code或者refresh_token
	Code         string `json:"code,omitempty"`          //可选	40 应用授权码,传入应用授权后得到的 app_auth_code。 说明: grant_type 为 authorization_code 时,本参数必填; grant_type 为 refresh_token 时不填。 1cc19911172e4f8aaa509c8fb5d12F56
	RefreshToken string `json:"refresh_token,omitempty"` //可选	40 刷新令牌,上次换取访问令牌时得到。本参数在 grant_type 为 authorization_code 时不填;为 refresh_token 时必填,且该值来源于此接口的返回值 app_refresh_token(即至少需要通过 grant_type=authorization_code 调用此接口一次才能获取)。 201509BBdcba1e3347de4e75ba3fed2c9abebE36
}

换取应用授权令牌 请求 code的值在商家授权后支付宝回调参数中获取,回调示例:http://example.com/doc/toAuthPage.html?app_id=2021000000000318&source=alipay_app_auth&application_type=TINYAPP,WEBAPP&app_auth_code=P1798b23682e34d96859afa000000003 用户需要先从回调参数中获取到 app_auth_code 后再调取本接口换取 app_auth_token

func (*OpenAuthTokenAppRequest) ApiParamMethod

func (o *OpenAuthTokenAppRequest) ApiParamMethod() string

func (*OpenAuthTokenAppRequest) DoValidate

func (o *OpenAuthTokenAppRequest) DoValidate() error

func (*OpenAuthTokenAppRequest) GenResponse

func (o *OpenAuthTokenAppRequest) GenResponse(data []byte) (IResponse, error)

从响应数据中生成结构体

func (*OpenAuthTokenAppRequest) HttpMethod

func (o *OpenAuthTokenAppRequest) HttpMethod() string

type OpenAuthTokenAppResponse

type OpenAuthTokenAppResponse struct {
	ErrorParam
	UserId          string `json:"user_id"`           //必选	16 授权商户的user_id 2088102150527498
	AuthAppId       string `json:"auth_app_id"`       //必选	20 授权商户的appid 2013121100055554
	AppAuthToken    string `json:"app_auth_token"`    //必选	40 应用授权令牌 201509BBeff9351ad1874306903e96b91d248A36
	AppRefreshToken string `json:"app_refresh_token"` //必选	40 刷新令牌 201509BBdcba1e3347de4e75ba3fed2c9abebE36
	ReExpiresIn     string `json:"re_expires_in"`     //必选	16 刷新令牌的有效时间(从接口调用时间作为起始时间),单位到秒 123456

}

换取应用授权令牌 响应

func (OpenAuthTokenAppResponse) ApiParamMethod

func (t OpenAuthTokenAppResponse) ApiParamMethod() string

type PromoParam

type PromoParam struct {
	ActualOrderTime string   `json:"actual_order_time,omitempty"` //可选	32 存在延迟扣款这一类的场景,用这个时间表明用户发生交易的时间,比如说,在公交地铁场景,用户刷码出站的时间,和商户上送交易的时间是不一样的。  2018-09-25 22:47:33
	StoreId         string   `json:"store_id,omitempty"`          //可选	32 商户门店编号。指商户创建门店时输入的门店编号。  NJ_001
	OperatorId      string   `json:"operator_id,omitempty"`       //可选	28 商户操作员编号。 yx_001
	TerminalId      string   `json:"terminal_id,omitempty"`       //可选	32 商户机具终端编号。NJ_T_001
	QueryOptions    []string `json:"query_options,omitempty"`     //可选	1024 返回参数选项。 商户通过传递该参数来定制同步需要额外返回的信息字段,数组格式。如:["fund_bill_list","voucher_detail_list","discount_goods_detail"]  示例:["fund_bill_list","voucher_detail_list","discount_goods_detail"]

}

优惠明细参数,通过此属性补充营销参数。 注:仅与支付宝协商后可用。

type RBuffer

type RBuffer []byte

func (RBuffer) GetAsyncRequestSignStr

func (rb RBuffer) GetAsyncRequestSignStr() (map[string]string, string, string, error)

GetAsyncRequestSignStr 获取异步通知的待验证参数字符串 和 签名

func (RBuffer) GetSyncRespSign

func (rb RBuffer) GetSyncRespSign() (string, error)

GetSyncRespSign 获取响应中的sign

func (RBuffer) GetSyncRespSignData

func (rb RBuffer) GetSyncRespSignData() (string, error)

GetSyncRespSignData 同步响应待验证字串

func (RBuffer) IsBadResponse

func (rb RBuffer) IsBadResponse() bool

IsBadResponse 响应code校验

type RefundChargeInfo

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

退费信息

type RefundGoodsDetail

type RefundGoodsDetail struct {
	GoodsId      string  `json:"goods_id,omitempty"`      //必选	32 商品编号。 对应支付时传入的goods_id apple-01
	RefundAmount float64 `json:"refund_amount,omitempty"` //必选	9 该商品的退款总金额,单位为元 19.50
	OutItemId    string  `json:"out_item_id,omitempty"`   //可选	64 商家侧小程序商品ID,具体使用方式请参考:https://opendocs.alipay.com/pre-open/06uila?pathHash=87297d0a  outItem_01
	OutSkuId     string  `json:"out_sku_id,omitempty"`    //可选	64 商家侧小程序商品sku ID,具体使用方式请参考:https://opendocs.alipay.com/pre-open/06uila?pathHash=87297d0a outSku_01
}

退款包含的商品列表信息

type RefundRoyaltyResult

type RefundRoyaltyResult struct {
	RefundAmount  string `json:"refund_amount,omitempty"`   //必选	9 退分账金额。单位:元。 10
	RoyaltyType   string `json:"royalty_type,omitempty"`    //可选	32 分账类型. 字段为空默认为普通分账类型transfer 枚举值 普通分账类型: transfer 补差分账类型: replenish    transfer
	ResultCode    string `json:"result_code,omitempty"`     //必选	32 退分账结果码 SUCCESS
	TransOut      string `json:"trans_out,omitempty"`       //可选	28 转出人支付宝账号对应用户ID 2088102210397302
	TransOutEmail string `json:"trans_out_email,omitempty"` //可选	64 转出人支付宝账号 alipay-test03@alipay.com
	TransIn       string `json:"trans_in,omitempty"`        //可选	28 转入人支付宝账号对应用户ID 2088102210397302
	TransInEmail  string `json:"trans_in_email,omitempty"`  //可选	64 转入人支付宝账号 zen_gwen@hotmail.com
}

退分账明细信息,当前仅在直付通产品中返回。

type RefundSubFee

type RefundSubFee struct {
	RefundChargeFee string `json:"refund_charge_fee,omitempty"` //可选	11 实退费用。单位:元。 0.10
	SwitchFeeRate   string `json:"switch_fee_rate,omitempty"`   //可选	64 签约费率 0.01
}

组合支付退费明细

type TradeCancelRequest

type TradeCancelRequest struct {
	OutTradeNo string `json:"out_trade_no,omitempty"` //特殊可选	64 原支付请求的商户订单号,和支付宝交易号不能同时为空 20150320010101001
	TradeNo    string `json:"trade_no,omitempty"`     //特殊可选	64 支付宝交易号,和商户订单号不能同时为空 2014112611001004680073956707
}

统一收单交易撤销接口 请求 参数

func (*TradeCancelRequest) ApiParamMethod

func (t *TradeCancelRequest) ApiParamMethod() string

func (*TradeCancelRequest) DoValidate

func (t *TradeCancelRequest) DoValidate() error

func (*TradeCancelRequest) GenResponse

func (t *TradeCancelRequest) GenResponse(data []byte) (IResponse, error)

从响应数据中生成结构体

func (*TradeCancelRequest) HttpMethod

func (t *TradeCancelRequest) HttpMethod() string

type TradeCancelResponse

type TradeCancelResponse struct {
	ErrorParam
	TradeNo    string `json:"trade_no"`     //必选	64 支付宝交易号; 当发生交易关闭或交易退款时返回; 2013112011001004330000121536
	OutTradeNo string `json:"out_trade_no"` //必选	64 商户订单号 6823789339978248
	RetryFlag  string `json:"retry_flag"`   //必选	1 是否需要重试 N
	Action     string `json:"action"`       //必选	10 本次撤销触发的交易动作,接口调用成功且交易存在时返回。

}

统一收单交易撤销接口 响应 参数

func (TradeCancelResponse) ApiParamMethod

func (t TradeCancelResponse) ApiParamMethod() string

type TradeFastPayRefundQueryRequest

type TradeFastPayRefundQueryRequest struct {
	TradeNo      string   `json:"trade_no,omitempty"`       //特殊可选	64 支付宝交易号。 和商户订单号不能同时为空 2021081722001419121412730660
	OutTradeNo   string   `json:"out_trade_no,omitempty"`   //特殊可选	64 商户订单号。 订单支付时传入的商户订单号,和支付宝交易号不能同时为空。 trade_no,out_trade_no如果同时存在优先取trade_no 2014112611001004680073956707
	OutRequestNo string   `json:"out_request_no,omitempty"` //必选	64 退款请求号。  请求退款接口时,传入的退款请求号,如果在退款请求时未传入,则该值为创建交易时的商户订单号。  HZ01RF001
	QueryOptions []string `json:"query_options,omitempty"`  //可选	1024 查询选项,商户通过上送该参数来定制同步需要额外返回的信息字段,数组格式。

}

统一收单交易支付接口 请求 参数

func (*TradeFastPayRefundQueryRequest) ApiParamMethod

func (t *TradeFastPayRefundQueryRequest) ApiParamMethod() string

func (*TradeFastPayRefundQueryRequest) DoValidate

func (t *TradeFastPayRefundQueryRequest) DoValidate() error

func (*TradeFastPayRefundQueryRequest) GenResponse

func (t *TradeFastPayRefundQueryRequest) GenResponse(data []byte) (IResponse, error)

从响应数据中生成结构体

func (*TradeFastPayRefundQueryRequest) HttpMethod

func (t *TradeFastPayRefundQueryRequest) HttpMethod() string

type TradeFastPayRefundQueryResponse

type TradeFastPayRefundQueryResponse struct {
	ErrorParam
	TradeNo              string                `json:"trade_no,omitempty"`                //特殊可选	64 支付宝交易号 2014112611001004680073956707
	OutTradeNo           string                `json:"out_trade_no,omitempty"`            //特殊可选	64 创建交易传入的商户订单号 20150320010101001
	OutRequestNo         string                `json:"out_request_no,omitempty"`          //特殊可选	64 本笔退款对应的退款请求号 20150320010101001
	TotalAmount          string                `json:"total_amount,omitempty"`            //特殊可选	11 该笔退款所对应的交易的订单金额。单位:元。 100.20
	RefundAmount         string                `json:"refund_amount,omitempty"`           //特殊可选	11 本次退款请求,对应的退款金额。单位:元。 12.33
	RefundStatus         string                `json:"refund_status,omitempty"`           //特殊可选	32 退款状态。 枚举值: REFUND_SUCCESS 退款处理成功; 未返回该字段表示退款请求未收到或者退款失败; 注:如果退款查询发起时间早于退款时间,或者间隔退款发起时间太短,可能出现退款查询时还没处理成功,后面又处理成功的情况,建议商户在退款发起后间隔10秒以上再发起退款查询请求。
	RefundRoyaltys       []RefundRoyaltyResult `json:"refund_royaltys,omitempty"`         //特殊可选 退分账明细信息,当前仅在直付通产品中返回。
	GmtRefundPay         string                `json:"gmt_refund_pay,omitempty"`          //特殊可选	32 退款时间。默认不返回该信息,需要在入参的query_options中指定"gmt_refund_pay"值时才返回该字段信息。 2014-11-27 15:45:57
	RefundDetailItemList []TradeFundBill       `json:"refund_detail_item_list,omitempty"` //特殊可选 本次退款使用的资金渠道; 默认不返回该信息,需要在入参的query_options中指定"refund_detail_item_list"值时才返回该字段信息。
	SendBackFee          string                `json:"send_back_fee,omitempty"`           //特殊可选	11 本次商户实际退回金额;单位:元。 默认不返回该信息,需要在入参的query_options中指定"refund_detail_item_list"值时才返回该字段信息。 88
	DepositBackInfo      DepositBackInfo       `json:"deposit_back_info,omitempty"`       //特殊可选 银行卡冲退信息; 默认不返回该信息,需要在入参的query_options中指定"deposit_back_info"值时才返回该字段信息。
	RefundHybAmount      string                `json:"refund_hyb_amount,omitempty"`       //可选	11 本次退款金额中退惠营宝的金额。单位:元。 10.24
	RefundChargeInfoList []RefundChargeInfo    `json:"refund_charge_info_list,omitempty"` //可选 退费信息
}

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

func (TradeFastPayRefundQueryResponse) ApiParamMethod

func (t TradeFastPayRefundQueryResponse) ApiParamMethod() string

type TradeFundBill

type TradeFundBill struct {
	FundChannel string `json:"fund_channel"`        //必选	32 交易使用的资金渠道,详见 支付渠道列表 ALIPAYACCOUNT
	Amount      string `json:"amount"`              //必选	32 该支付工具类型所使用的金额 10
	RealAmount  string `json:"real_amount"`         //可选	11 渠道实际付款金额 11.21
	FundType    string `json:"fund_type,omitempty"` //可选	32 (退款交易接口响应中使用该字段)渠道所使用的资金类型,目前只在资金渠道(fund_channel)是银行卡渠道(BANKCARD)的情况下才返回该信息(DEBIT_CARD:借记卡,CREDIT_CARD:信用卡,MIXED_CARD:借贷合一卡) DEBIT_CARD
}

交易支付使用的资金渠道。 只有在签约中指定需要返回资金明细,或者入参的query_options中指定时才返回该字段信息。

type TradePayRequest

type TradePayRequest struct {
	OutTradeNo     string         `json:"out_trade_no"`              //必选	64 商户订单号。由商家自定义,64个字符以内,仅支持字母、数字、下划线且需保证在商户端不重复。   20150320010101001
	TotalAmount    float64        `json:"total_amount"`              //必选	11 订单总金额。单位为元,精确到小数点后两位,取值范围:[0.01,100000000]。 88.88
	Subject        string         `json:"subject"`                   //必选	256 订单标题。注意:不可使用特殊字符,如 /,=,& 等。 Iphone6 16G
	AuthCode       string         `json:"auth_code"`                 //必选	64 支付授权码。 当面付场景传买家的付款码(25~30开头的长度为16~24位的数字,实际字符串长度以开发者获取的付款码长度为准)或者刷脸标识串(fp开头的35位字符串)。 28763443825664394
	Scene          string         `json:"scene"`                     //必选	32 支付场景。枚举值: bar_code:当面付条码支付场景; security_code:当面付刷脸支付场景,对应的auth_code为fp开头的刷脸标识串; 默认值为bar_code。 枚举值 当面付条码支付场景: bar_code 当面付刷脸支付场景,对应的auth_code为fp开头的刷脸标识串: security_code bar_code
	ProductCode    string         `json:"product_code,omitempty"`    //可选	64  产品码。 商家和支付宝签约的产品码。 当面付场景下,如果签约的是当面付快捷版,则传 OFFLINE_PAYMENT; 其它支付宝当面付产品传 FACE_TO_FACE_PAYMENT; 不传则默认使用FACE_TO_FACE_PAYMENT。  FACE_TO_FACE_PAYMENT
	SellerId       string         `json:"seller_id,omitempty"`       //可选	28 卖家支付宝用户ID。 当需要指定收款账号时,通过该参数传入,如果该值为空,则默认为商户签约账号对应的支付宝用户ID。 收款账号优先级规则:门店绑定的收款账户>请求传入的seller_id>商户签约账号对应的支付宝用户ID; 注:直付通和机构间联场景下seller_id无需传入或者保持跟pid一致;如果传入的seller_id与pid不一致,需要联系支付宝小二配置收款关系;  2088102146225135
	GoodsDetail    []GoodsDetails `json:"goods_detail,omitempty"`    //可选    订单包含的商品列表信息,json格式。
	ExtendParams   ExtendParams   `json:"extend_params,omitempty"`   //业务扩展参数
	BusinessParams BusinessParams `json:"business_params,omitempty"` //可选 商户传入业务信息,具体值要和支付宝约定,应用于安全,营销等参数直传场景,格式为json格式
	PromoParams    PromoParam     `json:"promo_params,omitempty"`    //可选 优惠明细参数,通过此属性补充营销参数。 注:仅与支付宝协商后可用。
}

统一收单交易支付接口 请求 参数

func (*TradePayRequest) ApiParamMethod

func (t *TradePayRequest) ApiParamMethod() string

func (*TradePayRequest) DoValidate

func (t *TradePayRequest) DoValidate() error

func (*TradePayRequest) GenResponse

func (t *TradePayRequest) GenResponse(data []byte) (IResponse, error)

从响应数据中生成结构体

func (*TradePayRequest) HttpMethod

func (t *TradePayRequest) HttpMethod() string

type TradePayResponse

type TradePayResponse struct {
	ErrorParam
	TradeNo             string          `json:"trade_no"`                        //必选	64 支付宝交易号 2013112011001004330000121536
	OutTradeNo          string          `json:"out_trade_no"`                    //必选	64 商户订单号 6823789339978248
	BuyerLogonId        string          `json:"buyer_logon_id"`                  //必选	100 买家支付宝账号 159****5620
	TotalAmount         string          `json:"total_amount"`                    //必选	11 交易金额 120.88
	ReceiptAmount       string          `json:"receipt_amount"`                  //必选	11 实收金额 88.88
	BuyerPayAmount      string          `json:"buyer_pay_amount,omitempty"`      //可选	11 买家付款的金额 8.88
	PointAmount         string          `json:"point_amount,omitempty"`          //可选	11 使用集分宝付款的金额 8.12
	InvoiceAmount       string          `json:"invoice_amount,omitempty"`        //可选	11 交易中可给用户开具发票的金额 12.50
	GmtPayment          string          `json:"gmt_payment"`                     //必选	32 交易支付时间 2014-11-27 15:45:57
	FundBillList        []TradeFundBill `json:"fund_bill_list"`                  //必选 交易支付使用的资金渠道。 只有在签约中指定需要返回资金明细,或者入参的query_options中指定时才返回该字段信息。
	StoreName           string          `json:"store_name,omitempty"`            //可选	512 发生支付交易的商户门店名称 证大五道口店
	DiscountGoodsDetail string          `json:"discount_goods_detail,omitempty"` //可选	5120 本次交易支付所使用的单品券优惠的商品优惠信息。 只有在query_options中指定时才返回该字段信息。 [{"goods_id":"STANDARD1026181538","goods_name":"雪碧","discount_amount":"100.00","voucher_id":"2015102600073002039000002D5O"}]
	BuyerUserId         string          `json:"buyer_user_id"`                   //必选	28 买家在支付宝的用户id 088101117955611
	VoucherDetailList   []VoucherDetail `json:"voucher_detail_list,omitempty"`   //可选 本交易支付时使用的所有优惠券信息。 只有在query_options中指定时才返回该字段信息。
	MdiscountAmount     string          `json:"mdiscount_amount,omitempty"`      //特殊可选	11 商家优惠金额 88.88
	DiscountAmount      string          `json:"discount_amount,omitempty"`       //特殊可选	11 平台优惠金额 88.88
}

统一收单交易支付接口 响应 参数

func (TradePayResponse) ApiParamMethod

func (t TradePayResponse) ApiParamMethod() string

type TradeQueryRequest

type TradeQueryRequest struct {
	OutTradeNo   string   `json:"out_trade_no,omitempty"`  //特殊可选	64 订单支付时传入的商户订单号,和支付宝交易号不能同时为空。 trade_no,out_trade_no如果同时存在优先取trade_no 20150320010101001
	TradeNo      string   `json:"trade_no,omitempty"`      //特殊可选	64 支付宝交易号,和商户订单号不能同时为空  2014112611001004680 073956707
	QueryOptions []string `json:"query_options,omitempty"` //可选	1024  查询选项,商户通过上送该参数来定制同步需要额外返回的信息字段,数组格式。

}

统一收单线下交易查询接口请求

func (*TradeQueryRequest) ApiParamMethod

func (t *TradeQueryRequest) ApiParamMethod() string

func (*TradeQueryRequest) DoValidate

func (t *TradeQueryRequest) DoValidate() error

func (*TradeQueryRequest) GenResponse

func (t *TradeQueryRequest) GenResponse(data []byte) (IResponse, error)

从响应数据中生成结构体

func (*TradeQueryRequest) HttpMethod

func (t *TradeQueryRequest) HttpMethod() string

type TradeQueryResponse

type TradeQueryResponse struct {
	ErrorParam
	TradeNo         string          `json:"trade_no"`                   //必选	64 支付宝交易号 2013112011001004330000121536
	OutTradeNo      string          `json:"out_trade_no"`               //必选	64  商家订单号 6823789339978248
	BuyerLogonId    string          `json:"buyer_logon_id"`             //必选	100 买家支付宝账号 159****5620
	TradeStatus     string          `json:"trade_status"`               //必选	32 交易状态:WAIT_BUYER_PAY(交易创建,等待买家付款)、TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、TRADE_SUCCESS(交易支付成功)、TRADE_FINISHED(交易结束,不可退款) TRADE_CLOSED
	TotalAmount     string          `json:"total_amount"`               //必选	11 交易的订单金额,单位为元,两位小数。该参数的值为支付时传入的total_amount 88.88
	BuyerPayAmount  string          `json:"buyer_pay_amount,omitempty"` //可选	11 买家实付金额,单位为元,两位小数。该金额代表该笔交易买家实际支付的金额,不包含商户折扣等金额 8.88
	PointAmount     string          `json:"point_amount,omitempty"`     //可选	11 积分支付的金额,单位为元,两位小数。该金额代表该笔交易中用户使用积分支付的金额,比如集分宝或者支付宝实时优惠等 10
	InvoiceAmount   string          `json:"invoice_amount,omitempty"`   //可选	11 交易中用户支付的可开具发票的金额,单位为元,两位小数。该金额代表该笔交易中可以给用户开具发票的金额 12.11
	SendPayDate     string          `json:"send_pay_date,omitempty"`    //特殊可选	32 本次交易打款给卖家的时间 2014-11-27 15:45:57
	ReceiptAmount   string          `json:"receipt_amount,omitempty"`   //特殊可选	11 实收金额,单位为元,两位小数。该金额为本笔交易,商户账户能够实际收到的金额 15.25
	StoreId         string          `json:"store_id,omitempty"`         //特殊可选	32 商户门店编号 NJ_S_001
	TerminalId      string          `json:"terminal_id,omitempty"`      //特殊可选	32 商户机具终端编号 NJ_T_001
	FundBillList    []TradeFundBill `json:"fund_bill_list"`             //必选 交易支付使用的资金渠道。 只有在签约中指定需要返回资金明细,或者入参的query_options中指定时才返回该字段信息。
	StoreName       string          `json:"store_name,omitempty"`       //特殊可选	512 请求交易支付中的商户店铺的名称 证大五道口店
	BuyerUserId     string          `json:"buyer_user_id"`              //必选	16 买家在支付宝的用户id 2088101117955611
	BuyerUserType   string          `json:"buyer_user_type,omitempty"`  //特殊可选	18 买家用户类型。CORPORATE:企业用户;PRIVATE:个人用户。
	MdiscountAmount string          `json:"mdiscount_amount,omitempty"` //特殊可选	11 商家优惠金额 88.88
	DiscountAmount  string          `json:"discount_amount,omitempty"`  //特殊可选	11 平台优惠金额 88.88
	ExtInfos        string          `json:"ext_infos,omitempty"`        //特殊可选	1024 交易额外信息,特殊场景下与支付宝约定返回。 json格式。  {"action":"cancel"}
}

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

func (TradeQueryResponse) ApiParamMethod

func (t TradeQueryResponse) ApiParamMethod() string

type TradeRefundDepositBackCompletedRequest

type TradeRefundDepositBackCompletedRequest struct {
	NotifyId     string `json:"notify_id"`              //必选	50 通知ID 5608cccc09ddb39d41c2e3c06e3d9fejh2
	UtcTimestamp string `json:"utc_timestamp"`          //必选	13 消息发送时的服务端时间 1514210452731
	MsgMethod    string `json:"msg_method"`             //必选	100 消息接口名称 alipay.trade.refund.depositback.completed
	AppId        string `json:"app_id"`                 //必选	20 消息接受方的应用id 2014060600164699
	MsgType      string `json:"msg_type,omitempty"`     //可选	5 消息类型。目前支持类型:sys:系统消息;usr,用户消息;app,应用消息 sys
	MsgAppId     string `json:"msg_app_id,omitempty"`   //可选	20 消息归属方的应用id。应用消息时非空 2016032301002387
	Version      string `json:"version"`                //必选	5 版本号(1.1版本为标准消息) 1.0或者1.1
	BizContent   string `json:"biz_content"`            //必选    消息报文 参见具体的消息接口文档
	Sign         string `json:"sign"`                   //必选    签名 WcO+t3D8Kg71dTlKwN7r9PzUOXeaBJwp8/FOuSxcuSkXsoVYxBpsAidprySCjHCjmaglNcjoKJQLJ28/Asl93joTW39FX6i07lXhnbPknezAlwmvPdnQuI01HZsZF9V1i6ggZjBiAd5lG8bZtTxZOJ87ub2i9GuJ3Nr/NUc9VeY=
	SignType     string `json:"sign_type"`              //必选	10 签名类型 RSA2
	EncryptType  string `json:"encrypt_type,omitempty"` //可选	10 加密算法 AES
	Charset      string `json:"charset"`                //必选	10 编码集,该字符集为验签和解密所需要的字符集 UTF-8
	NotifyType   string `json:"notify_type,omitempty"`  //可选	20 [1.0版本老协议参数]通知类型,1.1接口没有该参数 trade_status
	NotifyTime   string `json:"notify_time,omitempty"`  //可选	19 [1.0版本老协议参数]通知时间,北京时区,时间格式为:yyyy-MM-dd HH:mm:ss,如果服务器部署在国外请注意做时区转换。若version=1.1则可以使用utc_timestamp识别时间  1970-01-01 00:00:00
	AuthAppId    string `json:"auth_app_id,omitempty"`  //可选	20 [1.0版本老协议参数]授权方的应用id 2016032301002387
}

支付宝服务器发送的通知 请求

type TradeRefundRequest

type TradeRefundRequest struct {
	OutTradeNo              string                         `json:"out_trade_no,omitempty"`              //特殊可选	64 商户订单号。 订单支付时传入的商户订单号,商家自定义且保证商家系统中唯一。与支付宝交易号 trade_no 不能同时为空 20150320010101001
	TradeNo                 string                         `json:"trade_no,omitempty"`                  //特殊可选	64 支付宝交易号。 和商户订单号 out_trade_no 不能同时为空。 2014112611001004680073956707
	RefundAmount            float64                        `json:"refund_amount"`                       //必选	11 退款金额。 需要退款的金额,该金额不能大于订单金额,单位为元,支持两位小数。注:如果正向交易使用了营销,该退款金额包含营销金额,支付宝会按业务规则分配营销和买家自有资金分别退多少,默认优先退买家的自有资金。如交易总金额100元,用户支付时使用了80元自有资金和20元无资金流的营销券,商家实际收款80元。如果首次请求退款60元,则60元全部从商家收款资金扣除退回给用户自有资产;如果再请求退款40元,则从商家收款资金扣除20元退回用户资产以及把20元的营销券退回给用户(券是否可再使用取决于券的规则配置)。  200.12
	RefundReason            string                         `json:"refund_reason,omitempty"`             //可选	256 退款原因说明。 商家自定义,将在会在商户和用户的pc退款账单详情中展示 正常退款
	OutRequestNo            string                         `json:"out_request_no,omitempty"`            //可选	64 退款请求号。 标识一次退款请求,需要保证在交易号下唯一,如需部分退款,则此参数必传。 注:针对同一次退款请求,如果调用接口失败或异常了,重试时需要保证退款请求号不能变更,防止该笔交易重复退款。支付宝会保证同样的退款请求号多次请求只会退一次。 HZ01RF001
	RefundGoodsDetail       []RefundGoodsDetail            `json:"refund_goods_detail,omitempty"`       //可选 退款包含的商品列表信息
	RefundRoyaltyParameters []OpenApiRoyaltyDetailInfoPojo `json:"refund_royalty_parameters,omitempty"` //可选 退分账明细信息。
	//注: 1.当面付且非直付通模式无需传入退分账明细,系统自动按退款金额与订单金额的比率,从收款方和分账收入方退款,不支持指定退款金额与退款方。
	//2.直付通模式,电脑网站支付,手机 APP 支付,手机网站支付产品,须在退款请求中明确是否退分账,从哪个分账收入方退,退多少分账金额;如不明确,默认从收款方退款,收款方余额不足退款失败。不支持系统按比率退款。
	QueryOptions []string `json:"query_options,omitempty"` //可选	1024 查询选项。 商户通过上送该参数来定制同步需要额外返回的信息字段,数组格式。支持:refund_detail_item_list:退款使用的资金渠道;deposit_back_info:触发银行卡冲退信息通知;

}

统一收单交易退款接口 请求 参数

func (*TradeRefundRequest) ApiParamMethod

func (t *TradeRefundRequest) ApiParamMethod() string

func (*TradeRefundRequest) DoValidate

func (t *TradeRefundRequest) DoValidate() error

func (*TradeRefundRequest) GenResponse

func (t *TradeRefundRequest) GenResponse(data []byte) (IResponse, error)

从响应数据中生成结构体

func (*TradeRefundRequest) HttpMethod

func (t *TradeRefundRequest) HttpMethod() string

type TradeRefundResponse

type TradeRefundResponse struct {
	ErrorParam
	TradeNo              string             `json:"trade_no"`                          //必选	64 2013112011001004330000121536 支付宝交易号
	OutTradeNo           string             `json:"out_trade_no"`                      //必选	64 商户订单号 6823789339978248
	BuyerLogonId         string             `json:"buyer_logon_id"`                    //必选	100 用户的登录id 159****5620
	FundChange           string             `json:"fund_change"`                       //必选	1 本次退款是否发生了资金变化 Y
	RefundFee            string             `json:"refund_fee"`                        //必选	11 退款总金额。单位:元。 指该笔交易累计已经退款成功的金额。 88.88
	RefundDetailItemList []TradeFundBill    `json:"refund_detail_item_list,omitempty"` //特殊可选 退款使用的资金渠道。 只有在签约中指定需要返回资金明细,或者入参的query_options中指定时才返回该字段信息。
	StoreName            string             `json:"store_name,omitempty"`              //特殊可选	512 交易在支付时候的门店名称  望湘园联洋店
	BuyerUserId          string             `json:"buyer_user_id,omitempty"`           //特殊可选	28 买家在支付宝的用户id 2088101117955611
	SendBackFee          string             `json:"send_back_fee,omitempty"`           //特殊可选	11 本次商户实际退回金额。单位:元。 说明:如需获取该值,需在入参query_options中传入 refund_detail_item_list。 1.8
	RefundHybAmount      string             `json:"refund_hyb_amount,omitempty"`       //可选	11 本次请求退惠营宝金额。单位:元。 10.24
	RefundChargeInfoList []RefundChargeInfo `json:"refund_charge_info_list,omitempty"` //可选 退费信息
	GmtRefundPay         string             `json:"gmt_refund_pay,omitempty"`          //文档中没有说明,实际返回值中存在 时间字符串 2023-08-18 14:08:20
}

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

func (TradeRefundResponse) ApiParamMethod

func (t TradeRefundResponse) ApiParamMethod() string

type VoucherDetail

type VoucherDetail struct {
	Id   string `json:"id"`   //必选	32 券id 2015102600073002039000002D5O
	Name string `json:"name"` //必选	64 券名称 XX超市5折优惠
	Type string `json:"type"` //必选	32 券类型
	//注:不排除将来新增其他类型的可能,商家接入时注意兼容性避免硬编码
	//枚举值
	//全场代金券: ALIPAY_FIX_VOUCHER
	//折扣券: ALIPAY_DISCOUNT_VOUCHER
	//单品优惠券: ALIPAY_ITEM_VOUCHER
	//现金抵价券: ALIPAY_CASH_VOUCHER
	//商家全场券: ALIPAY_BIZ_VOUCHER
	Amount                     string `json:"amount"`                       //必选	8 优惠券面额,它应该会等于商家出资加上其他出资方出资 10.00
	MerchantContribute         string `json:"merchant_contribute"`          //可选	8 商家出资(特指发起交易的商家出资金额) 9.00
	OtherContribute            string `json:"other_contribute"`             //可选	8 其他出资方出资金额,可能是支付宝,可能是品牌商,或者其他方,也可能是他们的一起出资 1.00
	Memo                       string `json:"memo"`                         //可选	256 优惠券备注信息 学生专用优惠
	TemplateId                 string `json:"template_id"`                  //可选	64 券模板id 20171030000730015359000EMZP0
	PurchaseBuyerContribute    string `json:"purchase_buyer_contribute"`    //可选	8 如果使用的这张券是用户购买的,则该字段代表用户在购买这张券时用户实际付款的金额 2.01
	PurchaseMerchantContribute string `json:"purchase_merchant_contribute"` //可选	8 如果使用的这张券是用户购买的,则该字段代表用户在购买这张券时商户优惠的金额 1.03
	PurchaseAntContribute      string `json:"purchase_ant_contribute"`      //可选	8 如果使用的这张券是用户购买的,则该字段代表用户在购买这张券时平台优惠的金额 0.82
}

本交易支付时使用的所有优惠券信息。 只有在query_options中指定时才返回该字段信息。

Jump to

Keyboard shortcuts

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