alipay

package module
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Mar 31, 2023 License: BSD-3-Clause Imports: 23 Imported by: 0

README

XPay

支付宝Golang版本的SDK

Github Golang

Golang版本要求

由于Golang对于泛型方法暂未支持,遂SDK中的实现并没有使用泛型。当前SDK对Golang版本没有特殊要求, 但防止一些意外问题发生,推荐最低使用Golang1.16版本。

安装

go get -u github.com/try-labs/xpay

SDK和支付宝接口对应规则

例如支付宝的手机网站支付接口名称为alipay.trade.wap.pay ,则SDK中的实现方法名为 TradeWapPay(),对应的请求结构体为TradeWapPayReq,支付宝响应结构体为TradeWapPayRes

使用

支持支付宝的公钥模式和证书模式,两种模式不能同时存在,只能选择其中一种。所有请求返回结果时已经验证过签名,无需再次实现验签。

  • 使用公钥初始化 alipay.Client 客户端,推荐使用NewClient()创建客户端,支持选项模式设置参数。因为支付宝提供了可用的测试环境:沙箱环境,SDK通过isProd属性来确定,是请求支付宝的正式环境还是沙箱环境,isProd默认false即默认是请求沙箱环境,可以用SetClientOptIsProd()更改。

var err error
var client *alipay.Client
signStrategy := NewNormalRSA2SignStrategy(AppId,PrivateKey, PublicKey, AlipayPublicKey)
client, err = NewClient(signStrategy,SetClientOptIsProd(true))
if err != nil {
  fmt.Println("初始化失败, 错误信息为", err, client)
}
  • 使用证书初始化 alipay.Client 客户端

var err error
var client *alipay.Client
signStrategy := NewCertSignStrategy(OtherAppId, OtherPrivateKey, "appPublicCert.crt", "alipayRootCert.crt", "alipayPublicCert.crt")
client, err = NewClient(signStrategy)
  if err != nil {
      fmt.Println("初始化失败, 错误信息为", err, client)
  }

  • 调用具体的接口 例如调用alipay.trade.page.pay(统一收单下单并支付页面接口),按照规则SDK对应的方法为 TradePagePay(),
goods := NewGoodsDetail("1111", "iphone3", 1, 100).SetShowURL("https://ms.bdimg.com/pacific/0/pic/-1225338224_-1800436947.jpg")
goodsDetail := make([]*GoodsDetail, 0, 1)
goodsDetail = append(goodsDetail, goods)
req := NewTradePagePayReq("210122262212", "100.20", "测试title", WithGoodsDetail(goodsDetail))
req.NotifyUrl = "http://xxxx/order/asyncCallBack"
req.ReturnUrl = "http://xxxx/order/syncCallBack"
result, err := client.TradePagePay(*req)
if err != nil {
   fmt.Println(err)
}
fmt.Println(result)

接口列表

  • 接口前有此标志代表接口已被实现

具体接口情况如下:

  • 手机网站支付接口

    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.data.dataservice.bill.downloadurl.query - DataServiceBillDownloadUrlQuery()

  • 支付宝商家账户当前余额查询

    alipay.data.bill.balance.query - DataBillBalanceQuery()

  • 支付宝商家账户保证金查询

    alipay.data.bill.bail.query - DataBillBailQuery()

  • 申请电子回单(incubating) alipay.data.bill.ereceipt.apply - DataBillEreceiptApply()

  • 查询电子回单状态(incubating)

alipay.data.bill.ereceipt.query - DataBillEreceiptQuery()

支付宝身份验证

  • 身份认证初始化服务

    alipay.user.certify.open.initialize - UserCertifyOpenInitialize()

  • 身份认证开始认证

    alipay.user.certify.open.certify - UserCertifyOpenCertify()

  • 身份认证记录查询

    alipay.user.certify.open.query - UserCertifyOpenQuery()

会员产品

  • 换取授权访问令牌

    alipay.system.oauth.token - SystemOauthToken()

  • 支付宝会员授权信息查询

    alipay.user.info.share - UserInfoShare()

  • 用户登录授权 alipay.user.info.auth - UserInfoAuth() https://opendocs.alipay.com/open/02aile

周期扣款

  • 支付宝个人协议页面签约

    alipay.user.agreement.page.sign - UserAgreementPageSign()

  • 支付宝个人代扣协议查询

    alipay.user.agreement.query - UserAgreementQuery()

  • 支付宝个人代扣协议解约

    alipay.user.agreement.unsign - UserAgreementUnsign()

转账到支付宝账户

  • 单笔转账接口

    alipay.fund.trans.uni.transfer - FundTransUniTransfer()

alipay.fund.trans.uni.transfer为新转账接口

  • 转账业务单据查询接口

    alipay.fund.trans.common.query - FundTransCommonQuery()

  • 支付宝资金账户资产查询接口

    alipay.fund.account.query - FundAccountQuery()

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

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

alipay.fund.trans.toaccount.transfer为老转账接口,新查询接口 alipay.fund.trans.common.query 可以查询老转账接口生成的转账单据, 老查询接口 alipay.fund.trans.order.query 无法查询到新转账接口生成的转账单据。

  • 查询转账订单接口

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

此接口为老查询接口

地铁线上购票

沙箱环境

支付宝开放平台为每一个应用提供了沙箱环境,供开发人员开发测试使用。 沙箱地址 沙箱环境是独立的,每一个应用都会有一个商家账号和买家账号。

应用信息配置

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

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

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

请参考 如何生成 RSA 密钥

同步通知

请求接口时需要设置return_url 参数,支付成功之后支付宝将跳转到该地址并通过Get方式携带通知参数,相关文档如下: https://opendocs.alipay.com/support/01raw3?ant_source=opendoc_recommend

对应的方法为

client.SyncNotify()

异步通知

对于支付产生的交易,支付宝会根据原始支付 API 中传入的异步通知地址 notify_url,通过 POST 请求的形式将支付结果作为参数通知到商家系统。 https://opendocs.alipay.com/support/01raw4

对应的方法为

client.AsyncNotify()

两种通知的区别

同步通知与异步通知的区别 return_url用于接收同步通知,notify_url用于接收异步通知。 主要区别如下:

  • 接收方法不同 同步通知是在同步返回的页面使用get方式来获取的,异步通知是使用post方式发送到异步地址上的,只能使用post方式来接收。

  • 返回的参数不同 同步通知返回的参数比异步通知返回的参数是要少一些的,最明显的就是异步返回参数会返回trade_status(交易状态)参数 但是同步返回的参数是没有的,所以建议使用异步返回的参数来确认交易是否成功 如果trade_status=TRADE_SUCCESS 表示就是交易成功了 注:老版接口(如即时到账)会返回trade_status,具体返回参数建议参考文档。

  • 发送的时间不同 一般情况下,异步通知比同步通知稍慢(几乎无感知)。同步和异步通知的发送和网络环境、服务器处理速度等因素关系较大,具体是先接收到同步通知还是异步通知,建议以实际接收到的为准。

  • 参数返回的逻辑不一样

  1. 同步通知是在支付成功后的页面跳转,一般是用于展示给用户的。 付款成功页面会同步跳转到商户请求参数中传入的return_url地址页面。
  2. 异步通知参数是直接由支付宝服务器发送到商户的异步地址上的,不存在页面跳转是直接的服务器交互。

注:同步验签和异步验签方式相同。

关于应用私钥 (privateKey)

应用私钥是我们通过工具生成的私钥,调用支付宝接口的时候,我们需要使用该私钥对参数进行签名。 对应的地址https://open.alipay.com/develop/manage/app-key

支持 RSA 签名及验证

采用的是 RSA2 签名

支付宝产品介绍

支付产品文档: https://b.alipay.com/signing/productSetV2.htm

Documentation

Index

Constants

View Source
const (
	AppId           = ""
	PrivateKey      = ""
	PublicKey       = ""
	AlipayPublicKey = ""
)
View Source
const (
	OtherAppId      = ""
	OtherPrivateKey = ""
)
View Source
const (
	SandboxGatewayURL    = "https://openapi.alipaydev.com/gateway.do"
	ProductionGatewayURL = "https://openapi.alipay.com/gateway.do"
	ProductionMAPIURL    = "https://mapi.alipay.com/gateway.do"

	FormatJson     = "JSON"
	CharsetUTF8    = "utf-8"
	SignTypeRSA2   = "RSA2"
	ApiVersion     = "1.0"
	CertificateEnd = "-----END CERTIFICATE-----"
)
View Source
const (
	// FastInstantTradePay PC网站
	FastInstantTradePay string = "FAST_INSTANT_TRADE_PAY"
	// QuickWapWay 手机网站
	QuickWapWay string = "QUICK_WAP_WAY"
	// QuickMsecurityPay app支付
	QuickMsecurityPay string = "QUICK_MSECURITY_PAY"
	// FaceToFacePayment 当面付产品
	FaceToFacePayment string = "FACE_TO_FACE_PAYMENT"
	TransAccountNoPwd string = "TRANS_ACCOUNT_NO_PWD"
)

销售产品码 product_code

View Source
const (
	ExcludeKeySign     string = "sign"
	ExcludeKeySignType string = "sign_type"
)

exclude key

View Source
const (
	GrantAuthorizationCode string = "authorization_code"
	GrantRefreshToken      string = "refresh_token"
)
View Source
const (
	CreditAuth   string = "CREDIT_AUTH"   // 信用授权场景
	CreditDeduct string = "CREDIT_DEDUCT" // 信用代扣场景
)
View Source
const (
	BizCodeFace          string = "FACE"
	BizCodeCertPhoto     string = "CERT_PHOTO"
	BizCodeCertPhotoFace string = "CERT_PHOTO_FACE"
	BizCodeSmartFace     string = "SMART_FACE"
)
View Source
const (
	PublicKeyPrefix = "-----BEGIN PUBLIC KEY-----"
	PublicKeySuffix = "-----END PUBLIC KEY-----"

	PKCS1Prefix = "-----BEGIN RSA PRIVATE KEY-----"
	PKCS1Suffix = "-----END RSA PRIVATE KEY-----"

	PKCS8Prefix = "-----BEGIN PRIVATE KEY-----"
	PKCS8Suffix = "-----END PRIVATE KEY-----"

	PublicKeyType     = "PUBLIC KEY"
	PrivateKeyType    = "PRIVATE KEY"
	RSAPrivateKeyType = "RSA PRIVATE KEY"
)
View Source
const LineBreak = "\n"

Variables

View Source
var (
	ErrLoadPrivateKey  = errors.New("xpay: private key failed to load")
	ErrLoadPublicKey   = errors.New("xpay: public key failed to load")
	ErrLoadCertificate = errors.New("xpay: certificate  failed to load")
)
View Source
var ErrNotContainsSignData = errors.New("xpay:not contains sign data error")
View Source
var ErrRequest = errors.New("xpay: request  error")
View Source
var ErrRequestTimeout = errors.New("xpay: request timeout error")
View Source
var ErrTrans = errors.New("xpay:transform error")

Functions

func FormatPKCS1PrivateKey

func FormatPKCS1PrivateKey(raw string) []byte

func FormatPKCS8PrivateKey

func FormatPKCS8PrivateKey(raw string) []byte

func FormatPublicKey

func FormatPublicKey(raw string) []byte

func GetCertSN

func GetCertSN(cert *x509.Certificate) string

func ParseCertificate

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

func ParsePKCS1PrivateKey

func ParsePKCS1PrivateKey(data []byte) (key *rsa.PrivateKey, err error)

func ParsePKCS8PrivateKey

func ParsePKCS8PrivateKey(data []byte) (key *rsa.PrivateKey, err error)

func ParsePublicKey

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

func RSASignWithKey

func RSASignWithKey(plaintext []byte, key *rsa.PrivateKey, hash crypto.Hash) ([]byte, error)

func RSAVerifyWithKey

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

func WithAlipayRootCertSn

func WithAlipayRootCertSn(alipayRootCertSn string) func(*CommonReqParam)

func WithAppCertSn

func WithAppCertSn(appCertSn string) func(*CommonReqParam)

func WithNotifyUrl

func WithNotifyUrl(notifyUrl string) func(*CommonReqParam)

func WithReturnUrl

func WithReturnUrl(returnUrl string) func(*CommonReqParam)

Types

type BailDetailResult

type BailDetailResult struct {
	TransDt    string `json:"trans_dt,omitempty"`     // 必选	20 业务发生时间 2019-01-01 00:00:00
	TransLogId string `json:"trans_log_id,omitempty"` // 必选	255 保证金业务流水号 20190101***
	BailType   string `json:"bail_type,omitempty"`    // 必选	255 保证金类型描述,仅供参考 天猫保证金
	Amount     string `json:"amount,omitempty"`       // 必选	32 保证金收支金额 10.00
	Balance    string `json:"balance,omitempty"`      // 必选	32 保证金余额 1000.00
	Memo       string `json:"memo,omitempty"`         // 可选	255 保证金说明 保证金冻结
	BizDesc    string `json:"biz_desc,omitempty"`     // 可选	255 业务描述,资金收支对应的详细业务场景信息 余额账户迁入
	BizOrigNo  string `json:"biz_orig_no,omitempty"`  // 可选	255 业务基础订单号,资金收支对应的原始业务订单唯一识别编号 1***
}

type BkAgentReqInfo

type BkAgentReqInfo struct {
	AcqCode    string // 可选	14 收单机构在清算组织登记或分配的机构代码
	MerchCode  string // 	可选	32 收单机构在清算组织登记的商户编码 123412341234
	DeviceType string // 可选	2 终端设备类型,受理方可参考终端 注册时的设备类型填写,取值如下:
	//01:自动柜员机(含 ATM 和 CDM) 和多媒体自助终端
	//02:传统 POS
	//03:mPOS
	//04:智能 POS
	//05:II 型固定电话
	//06:云闪付终端;
	//07:保留使用;
	//08:手机 POS;
	//09:刷脸付终端;
	//10:条码支付受理终端;
	//11:条码支付辅助受理终端;
	//12:行业终端(公交、地铁用于指
	//定行业的终端);
	//13:MIS 终端;
	SerialNum string // 可选	50 终端类型填写为 02、 03、04、05、06、08、09 或 10 时,必 须填写终端序列号。 123123123123
	Location  string // 可选	32 终端设备实时经纬度信息,格式为纬度/经度,+表示北纬、东经,-表示南纬、西经。 +37.28/-121.268
}

type CertSignStrategy

type CertSignStrategy struct {
	Signature
	// contains filtered or unexported fields
}

func (*CertSignStrategy) LoadAppPublicCertFile

func (r *CertSignStrategy) LoadAppPublicCertFile(filename string) error

LoadAppPublicCertFile 加载应用公钥证书

func (*CertSignStrategy) LoadPublicCertFile

func (r *CertSignStrategy) LoadPublicCertFile(filename string) error

LoadPublicCertFile 加载支付宝公钥证书

func (*CertSignStrategy) LoadRootCertFile

func (r *CertSignStrategy) LoadRootCertFile(filename string) error

LoadRootCertFile 加载支付宝根证书

func (*CertSignStrategy) SetSignContent

func (r *CertSignStrategy) SetSignContent(param *CommonReqParam)

func (*CertSignStrategy) VerifySign

func (r *CertSignStrategy) VerifySign(scene VerificationScene, sign string, buff []byte, otherParam ...string) error

VerifySign 异步通知验签 公钥、证书两种模式下,异步通知验签方式相同

type Client

type Client struct {
	SignVerifier
	RequestObjectBuilder
	// contains filtered or unexported fields
}

func NewClient

func NewClient(signVerifier SignVerifier, optsFunc ...ClientOptFunc) (*Client, error)

func (*Client) AsyncNotify

func (r *Client) AsyncNotify(request *http.Request) (*NotifyReq, error)

AsyncNotify 异步通知

func (*Client) CommerceCityFacilitatorStationQuery

CommerceCityFacilitatorStationQuery alipay.commerce.cityfacilitator.station.query(地铁购票站点数据查询) https://opendocs.alipay.com/open/02ars9

func (*Client) CommerceCityFacilitatorVoucherBatchQuery

CommerceCityFacilitatorVoucherBatchQuery alipay.commerce.cityfacilitator.voucher.batchquery(地铁购票订单批量查询) https://opendocs.alipay.com/open/02aqvy

func (*Client) CommerceCityFacilitatorVoucherGenerate

CommerceCityFacilitatorVoucherGenerate alipay.commerce.cityfacilitator.voucher.generate(地铁购票核销码发码) https://opendocs.alipay.com/open/02ars7

func (*Client) CommerceCityFacilitatorVoucherRefund

CommerceCityFacilitatorVoucherRefund alipay.commerce.cityfacilitator.voucher.refund(地铁购票发码退款) https://opendocs.alipay.com/open/02ars8

func (*Client) DataBillBailQuery

func (r *Client) DataBillBailQuery(ctx context.Context, req DataBillBailQueryReq) (*DataBillBailQueryRes, error)

DataBillBailQuery alipay.data.bill.bail.query(支付宝商家账户保证金查询) https://opendocs.alipay.com/open/02awe2

func (*Client) DataBillBalanceQuery

func (r *Client) DataBillBalanceQuery(ctx context.Context, req DataBillBalanceQueryReq) (*DataBillBalanceQueryRes, error)

DataBillBalanceQuery alipay.data.bill.balance.query(支付宝商家账户当前余额查询) https://opendocs.alipay.com/open/02awe3

func (*Client) DataServiceBillDownloadUrlQuery

func (r *Client) DataServiceBillDownloadUrlQuery(ctx context.Context, req DataServiceBillDownloadUrlQueryReq) (*DataServiceBillDownloadUrlQueryRes, error)

DataServiceBillDownloadUrlQuery alipay.data.dataservice.bill.downloadurl.query(查询对账单下载地址) https://opendocs.alipay.com/open/028woc

func (*Client) DoRequest

func (r *Client) DoRequest(ctx context.Context, req IAliPayRequest, responseParam ResponseSigner, opts ...commonParamOpt) error

DoRequest 发送请求

func (*Client) FundAccountQuery

func (r *Client) FundAccountQuery(ctx context.Context, req FundAccountQueryReq) (*FundAccountQueryRes, error)

FundAccountQuery alipay.fund.account.query(支付宝资金账户资产查询接口) https://opendocs.alipay.com/open/02byuq?scene=c76aa8f1c54e4b8b8ffecfafc4d3c31c

func (*Client) FundTransCommonQuery

func (r *Client) FundTransCommonQuery(ctx context.Context, req FundTransCommonQueryReq) (*FundTransCommonQueryRes, error)

FundTransCommonQuery alipay.fund.trans.common.query(转账业务单据查询接口) https://opendocs.alipay.com/open/02byup?scene=f9fece54d41f49cbbd00dc73655a01a4

func (*Client) FundTransOrderQuery

func (r *Client) FundTransOrderQuery(ctx context.Context, req FundTransOrderQueryReq) (*FundTransOrderQueryRes, error)

FundTransOrderQuery alipay.fund.trans.order.query(查询转账订单接口) https://opendocs.alipay.com/apis/api_28/alipay.fund.trans.order.query

func (*Client) FundTransToAccountTransfer deprecated

func (r *Client) FundTransToAccountTransfer(ctx context.Context, req FundTransToAccountTransferReq) (*FundTransToAccountTransferRes, error)

Deprecated: 此接口已过时,推荐使用接口 FundTransUniTransfer(),相关升级指南 https://opendocs.alipay.com/open/00ou7f FundTransToAccountTransfer alipay.fund.trans.toaccount.transfer(单笔转账到支付宝账户接口) https://opendocs.alipay.com/apis/00fka9

func (*Client) FundTransUniTransfer

func (r *Client) FundTransUniTransfer(ctx context.Context, req FundTransUniTransferReq) (*FundTransUniTransferRes, error)

FundTransUniTransfer alipay.fund.trans.uni.transfer(单笔转账接口) https://opendocs.alipay.com/open/02byuo

func (*Client) OpenAuthTokenApp

func (r *Client) OpenAuthTokenApp(ctx context.Context, req OpenAuthTokenAppReq) (*OpenAuthTokenAppRes, error)

OpenAuthTokenApp alipay.open.auth.token.app(换取应用授权令牌) https://opendocs.alipay.com/isv/04h3uf

func (*Client) SyncNotify

func (r *Client) SyncNotify(request *http.Request) (*NotifyReq, error)

SyncNotify 同步通知

func (*Client) SystemOauthToken

func (r *Client) SystemOauthToken(ctx context.Context, req OauthTokenReq) (*OauthTokenRes, error)

SystemOauthToken alipay.system.oauth.token(换取授权访问令牌) https://opendocs.alipay.com/open/02ahjv

func (*Client) TradeAppPay

func (r *Client) TradeAppPay(req TradeAppPayReq) (*url.URL, error)

TradeAppPay alipay.trade.app.pay(app支付接口2.0) https://opendocs.alipay.com/open/02e7gq?ref=api&scene=20

func (*Client) TradeCancel

func (r *Client) TradeCancel(ctx context.Context, req TradeCancelReq) (*TradeCancelRes, error)

TradeCancel alipay.trade.cancel(统一收单交易撤销接口) https://opendocs.alipay.com/open/02ekfi

func (*Client) TradeClose

func (r *Client) TradeClose(ctx context.Context, req TradeCloseReq) (*TradeCloseRes, error)

TradeClose alipay.trade.close(统一收单交易关闭接口) https://opendocs.alipay.com/open/028wob

func (*Client) TradeCreate

func (r *Client) TradeCreate(ctx context.Context, req TradeCreateReq) (*TradeCreateRes, error)

TradeCreate alipay.trade.create(统一收单交易创建接口) https://opendocs.alipay.com/mini/03l5wn

func (*Client) TradeFastPayRefundQuery

func (r *Client) TradeFastPayRefundQuery(ctx context.Context, req TradeFastPayRefundQueryReq) (*TradeFastPayRefundQueryRes, error)

TradeFastPayRefundQuery alipay.trade.fastpay.refund.query(统一收单交易退款查询) https://opendocs.alipay.com/open/028sma

func (*Client) TradeOrderInfoSync

func (r *Client) TradeOrderInfoSync(ctx context.Context, req TradeOrderInfoSyncReq) (*TradeOrderInfoSyncRes, error)

TradeOrderInfoSync alipay.trade.orderinfo.sync(支付宝订单信息同步接口) https://opendocs.alipay.com/open/02cnou

func (*Client) TradePagePay

func (r *Client) TradePagePay(req TradePagePayReq) (*url.URL, error)

TradePagePay alipay.trade.page.pay(统一收单下单并支付页面接口) https://opendocs.alipay.com/open/028r8t

func (*Client) TradePay

func (r *Client) TradePay(ctx context.Context, req TradePayReq) (*TradePayRes, error)

TradePay alipay.trade.pay(统一收单交易支付接口) https://opendocs.alipay.com/open/02ekfp?scene=32

func (*Client) TradePreCreate

func (r *Client) TradePreCreate(ctx context.Context, req TradePreCreateReq) (*TradePreCreateRes, error)

TradePreCreate https://opendocs.alipay.com/open/02ekfg?scene=19 alipay.trade.precreate(统一收单线下交易预创建)

func (*Client) TradeQuery

func (r *Client) TradeQuery(ctx context.Context, req TradeQueryReq) (*TradeQueryRes, error)

TradeQuery alipay.trade.query(统一收单交易查询) https://opendocs.alipay.com/open/028woa?scene=common

func (*Client) TradeRefund

func (r *Client) TradeRefund(ctx context.Context, req TradeRefundReq) (*TradeRefundRes, error)

TradeRefund alipay.trade.refund(统一收单交易退款接口) https://opendocs.alipay.com/open/028sm9

func (*Client) TradeWapPay

func (r *Client) TradeWapPay(req TradeWapPayReq) (*url.URL, error)

TradeWapPay alipay.trade.wap.pay(手机网站支付接口2.0) https://opendocs.alipay.com/open/02ivbs?scene=21&ref=api

func (*Client) UserCertifyOpenCertify

func (r *Client) UserCertifyOpenCertify(ctx context.Context, req UserCertifyOpenCertifyReq) (*url.URL, error)

UserCertifyOpenCertify alipay.user.certify.open.certify(身份认证开始认证) https://opendocs.alipay.com/open/02ahk0

func (*Client) UserCertifyOpenInitialize

func (r *Client) UserCertifyOpenInitialize(ctx context.Context, req UserCertifyOpenInitializeReq) (*UserCertifyOpenInitializeRes, error)

UserCertifyOpenInitialize alipay.user.certify.open.initialize(身份认证初始化服务) https://opendocs.alipay.com/open/02ahjy

func (*Client) UserCertifyOpenQuery

func (r *Client) UserCertifyOpenQuery(ctx context.Context, req UserCertifyOpenQueryReq) (*UserCertifyOpenQueryRes, error)

UserCertifyOpenQuery alipay.user.certify.open.query(身份认证记录查询) https://opendocs.alipay.com/open/02ahjw

func (*Client) UserInfoAuth

func (r *Client) UserInfoAuth(req UserInfoAuthReq) (*url.URL, error)

UserInfoAuth alipay.user.info.auth(用户登录授权) https://opendocs.alipay.com/open/02aile

func (*Client) UserInfoShare

func (r *Client) UserInfoShare(ctx context.Context, req UserInfoShareReq) (*UserInfoShareRes, error)

UserInfoShare alipay.user.info.share(支付宝会员授权信息查询接口) https://opendocs.alipay.com/open/02ailg

type ClientOptFunc

type ClientOptFunc func(*Client)

func SetClientOptHttpClient

func SetClientOptHttpClient(httpClient *http.Client) ClientOptFunc

SetClientOptHttpClient setup HttpClient

func SetClientOptIsProd

func SetClientOptIsProd(isProd bool) ClientOptFunc

SetClientOptIsProd setup isProd

func SetClientOptLocation

func SetClientOptLocation(location *time.Location) ClientOptFunc

SetClientOptLocation setup Location

type ClientOptsFunc

type ClientOptsFunc []ClientOptFunc

type CommerceCityFacilitatorStationQueryReq

type CommerceCityFacilitatorStationQueryReq struct {
	CityCode string `json:"city_code"` // 必选	30 城市编码请参考查询 中华人民共和国行政区划代码。 已支持城市:广州 440100,深圳 440300,杭州330100。
	// contains filtered or unexported fields
}

func (*CommerceCityFacilitatorStationQueryReq) DoValidate

func (*CommerceCityFacilitatorStationQueryReq) RequestApi

func (*CommerceCityFacilitatorStationQueryReq) RequestApiVersion added in v0.1.1

func (r *CommerceCityFacilitatorStationQueryReq) RequestApiVersion() string

func (*CommerceCityFacilitatorStationQueryReq) RequestHttpMethod added in v0.1.1

func (r *CommerceCityFacilitatorStationQueryReq) RequestHttpMethod() string

type CommerceCityFacilitatorStationQueryRes

type CommerceCityFacilitatorStationQueryRes struct {
	CommerceCityFacilitatorStationQueryResContent `json:"alipay_commerce_cityfacilitator_station_query_response"`
	SignCertSn
}

func (*CommerceCityFacilitatorStationQueryRes) String

type CommerceCityFacilitatorStationQueryResContent

type CommerceCityFacilitatorStationQueryResContent struct {
	CommonRes
	SupportStarts []StationDetailInfo `json:"support_starts"` // 必选 支持设为起点的站点列表
}

type CommerceCityFacilitatorVoucherBatchQueryReq

type CommerceCityFacilitatorVoucherBatchQueryReq struct {
	CityCode string   `json:"city_code"` // 必选	30 城市编码请参考查询 中华人民共和国行政区划代码。 已支持城市:广州 440100,深圳 440300,杭州330100。
	TradeNos []string `json:"trade_nos"` // 必选	800 支付宝交易号列表
	// contains filtered or unexported fields
}

func (*CommerceCityFacilitatorVoucherBatchQueryReq) DoValidate

func (*CommerceCityFacilitatorVoucherBatchQueryReq) RequestApi

func (*CommerceCityFacilitatorVoucherBatchQueryReq) RequestApiVersion added in v0.1.1

func (r *CommerceCityFacilitatorVoucherBatchQueryReq) RequestApiVersion() string

func (*CommerceCityFacilitatorVoucherBatchQueryReq) RequestHttpMethod added in v0.1.1

func (r *CommerceCityFacilitatorVoucherBatchQueryReq) RequestHttpMethod() string

type CommerceCityFacilitatorVoucherBatchQueryRes

type CommerceCityFacilitatorVoucherBatchQueryRes struct {
	CommerceCityFacilitatorVoucherBatchQueryResContent `json:"alipay_commerce_cityfacilitator_voucher_batchquery_response"`
	SignCertSn
}

func (*CommerceCityFacilitatorVoucherBatchQueryRes) String

type CommerceCityFacilitatorVoucherBatchQueryResContent

type CommerceCityFacilitatorVoucherBatchQueryResContent struct {
	CommonRes
	Tickets []TicketDetailInfo `json:"tickets"`
}

type CommerceCityFacilitatorVoucherGenerateReq

type CommerceCityFacilitatorVoucherGenerateReq struct {
	CityCode    string `json:"city_code"`            // 必选	30 城市编码请参考查询 中华人民共和国行政区划代码。 已支持城市:广州 440100,深圳 440300,杭州330100。
	TradeNo     string `json:"trade_no"`             // 必选	100 支付宝交易号(交易支付时,必须通过指定sellerId:2088121612215201,将钱支付到指定的中间户中)
	TradeFee    string `json:"trade_fee"`            // 必选	20 订单总金额,元为单位 10.00
	TicketNum   string `json:"ticket_num"`           // 必选	20 地铁票购票数量 5
	TicketType  string `json:"ticket_type"`          // 必选	60 地铁票种类,枚举支持: *oneway。
	SiteBegin   string `json:"site_begin,omitempty"` // 可选	30 起点站站点编码 02490301
	SiteEnd     string `json:"site_end,omitempty"`   // 可选	30 终点站站点编码 02490305
	TicketPrice string `json:"ticket_price"`         // 必选	20 单张票价,元为单价 5.00
	// contains filtered or unexported fields
}

func (*CommerceCityFacilitatorVoucherGenerateReq) DoValidate

func (*CommerceCityFacilitatorVoucherGenerateReq) RequestApi

func (*CommerceCityFacilitatorVoucherGenerateReq) RequestApiVersion added in v0.1.1

func (r *CommerceCityFacilitatorVoucherGenerateReq) RequestApiVersion() string

func (*CommerceCityFacilitatorVoucherGenerateReq) RequestHttpMethod added in v0.1.1

func (r *CommerceCityFacilitatorVoucherGenerateReq) RequestHttpMethod() string

type CommerceCityFacilitatorVoucherGenerateRes

type CommerceCityFacilitatorVoucherGenerateRes struct {
	CommerceCityFacilitatorVoucherGenerateResContent `json:"alipay_commerce_cityfacilitator_voucher_generate_response"`
	SignCertSn
}

func (*CommerceCityFacilitatorVoucherGenerateRes) String

type CommerceCityFacilitatorVoucherGenerateResContent

type CommerceCityFacilitatorVoucherGenerateResContent struct {
	CommonRes
	QrCodeNo    string `json:"qr_code_no"`   //	必选	200 地铁购票二维码编码,可自定义
	TicketNo    string `json:"ticket_no"`    //	必选	20 地铁购票的核销码 0243567832
	ExpiredDate string `json:"expired_date"` //	必选	30 核销码过期时间 2016-03-18 00:00:00
}

type CommerceCityFacilitatorVoucherRefundReq

type CommerceCityFacilitatorVoucherRefundReq struct {
	CityCode string `json:"city_code"` // 必选	30 城市编码请参考查询 中华人民共和国行政区划代码。 已支持城市:广州 440100,深圳 440300,杭州330100。
	TradeNo  string `json:"trade_no"`  // 必选	100 支付宝交易号(交易支付时,必须通过指定sellerId:2088121612215201,将钱支付到指定的中间户中)
	// contains filtered or unexported fields
}

func (*CommerceCityFacilitatorVoucherRefundReq) DoValidate

func (*CommerceCityFacilitatorVoucherRefundReq) RequestApi

func (*CommerceCityFacilitatorVoucherRefundReq) RequestApiVersion added in v0.1.1

func (r *CommerceCityFacilitatorVoucherRefundReq) RequestApiVersion() string

func (*CommerceCityFacilitatorVoucherRefundReq) RequestHttpMethod added in v0.1.1

func (r *CommerceCityFacilitatorVoucherRefundReq) RequestHttpMethod() string

type CommerceCityFacilitatorVoucherRefundRes

type CommerceCityFacilitatorVoucherRefundRes struct {
	CommerceCityFacilitatorVoucherRefundResContent `json:"alipay_commerce_cityfacilitator_voucher_refund_response"`
	SignCertSn
}

func (*CommerceCityFacilitatorVoucherRefundRes) String

type CommerceCityFacilitatorVoucherRefundResContent

type CommerceCityFacilitatorVoucherRefundResContent struct {
	CommonRes
}

type CommonReqParam

type CommonReqParam 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
	ReturnUrl        string `json:"return_url,omitempty" url:"return_url,omitempty"`         // 可选	256 HTTP/HTTPS开头字符串
	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" 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"`                           // 必选	无长度限制 请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档
	AppCertSn        string `json:"app_cert_sn" url:"app_cert_sn,omitempty"`                 // 可选	具体参照各产品快速接入文档
	AlipayRootCertSn string `json:"alipay_root_cert_sn" url:"alipay_root_cert_sn,omitempty"` // 可选	具体参照各产品快速接入文档
}

type CommonRes

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

func (*CommonRes) Fail

func (r *CommonRes) Fail() bool

func (*CommonRes) SetCode

func (r *CommonRes) SetCode(code string)

func (*CommonRes) SetMsg

func (r *CommonRes) SetMsg(msg string)

func (*CommonRes) SetSubCode

func (r *CommonRes) SetSubCode(subCode string)

func (*CommonRes) SetSubMsg

func (r *CommonRes) SetSubMsg(subMsg string)

func (*CommonRes) Success

func (r *CommonRes) Success() bool

Success 文档: https://opendoc.alipay.com/common/02km9f

type ContributeDetail

type ContributeDetail struct {
	ContributeType   string `json:"contribute_type,omitempty"`   // 可选 32 出资方类型,如品牌商出资、支付宝平台出资等。 PLATFORM
	ContributeAmount string `json:"contribute_amount,omitempty"` // 可选 8 出资方金额
}

type DataBillBailQueryReq

type DataBillBailQueryReq struct {
	StartTime  string `json:"start_time"`             // 必选	20 保证金流水创建时间的起始范围 2019-01-01 00:00:00
	EndTime    string `json:"end_time"`               // 必选	20 保证金流水创建时间的结束范围。与起始时间间隔不超过31天。查询结果为起始时间至结束时间的左闭右开区间 2019-01-02 00:00:00
	BailType   string `json:"bail_type"`              // 必选	20 保证金类型,目前支持TMALL_BAIL-天猫保证金,TAOBAO_BAIL-淘宝保证金 TMALL_BAIL
	TransLogId string `json:"trans_log_id,omitempty"` // 可选	255 保证金流水号。如果查询参数中指定流水号,则只查询流水号相关的记录 20190101***
	BizOrigNo  string `json:"biz_orig_no,omitempty"`  // 可选	255 业务基础订单号。如果查询参数中指定订单号,则只查询相关的记录 1***
	// contains filtered or unexported fields
}

func (*DataBillBailQueryReq) DoValidate

func (r *DataBillBailQueryReq) DoValidate() error

func (*DataBillBailQueryReq) RequestApi

func (r *DataBillBailQueryReq) RequestApi() string

func (*DataBillBailQueryReq) RequestApiVersion added in v0.1.1

func (r *DataBillBailQueryReq) RequestApiVersion() string

func (*DataBillBailQueryReq) RequestHttpMethod added in v0.1.1

func (r *DataBillBailQueryReq) RequestHttpMethod() string

type DataBillBailQueryRes

type DataBillBailQueryRes struct {
	DataBillBailQueryResContent `json:"alipay_data_bill_bail_query_response"`
	SignCertSn
}

func (*DataBillBailQueryRes) String

func (r *DataBillBailQueryRes) String() string

type DataBillBailQueryResContent

type DataBillBailQueryResContent struct {
	CommonRes
	DetailList []BailDetailResult `json:"detail_list"`
}

type DataBillBalanceQueryReq

type DataBillBalanceQueryReq struct {
	BillUserId string `json:"bill_user_id,omitempty"` // 可选	16 目标查询账户(仅支持部分场景,查询自身时候不需要传递当前字段)。 2088123456789012
	// contains filtered or unexported fields
}

func (*DataBillBalanceQueryReq) DoValidate

func (r *DataBillBalanceQueryReq) DoValidate() error

func (*DataBillBalanceQueryReq) RequestApi

func (r *DataBillBalanceQueryReq) RequestApi() string

func (*DataBillBalanceQueryReq) RequestApiVersion added in v0.1.1

func (r *DataBillBalanceQueryReq) RequestApiVersion() string

func (*DataBillBalanceQueryReq) RequestHttpMethod added in v0.1.1

func (r *DataBillBalanceQueryReq) RequestHttpMethod() string

type DataBillBalanceQueryRes

type DataBillBalanceQueryRes struct {
	DataBillBalanceQueryResContent `json:"alipay_data_bill_balance_query_response"`
	SignCertSn
}

type DataBillBalanceQueryResContent

type DataBillBalanceQueryResContent struct {
	CommonRes
	TotalAmount     string `json:"total_amount"`            // 必选	32 支付宝账户余额 10000.00
	AvailableAmount string `json:"available_amount"`        // 必选	32 账户可用余额 9000.00
	FreezeAmount    string `json:"freeze_amount"`           // 必选	32 冻结金额 1000.00
	SettleAmount    string `json:"settle_amount,omitempty"` // 可选	32 待结算金额 500.00
}

type DataServiceBillDownloadUrlQueryReq

type DataServiceBillDownloadUrlQueryReq struct {
	BillType string `json:"bill_type"` // 必选	20
	//账单类型,商户通过接口或商户经开放平台授权后其所属服务商通过接口可以获取以下账单类型,支持:
	//trade:商户基于支付宝交易收单的业务账单;
	//signcustomer:基于商户支付宝余额收入及支出等资金变动的账务账单;
	//merchant_act:营销活动账单,包含营销活动的发放,核销记录
	//trade_zft_merchant:直付通二级商户查询交易的业务账单;
	//zft_acc:直付通平台商查询二级商户流水使用,返回所有二级商户流水。
	BillDate string `json:"bill_date"` // 必选	15 账单时间:
	//* 日账单格式为yyyy-MM-dd,最早可下载2016年1月1日开始的日账单。不支持下载当日账单,只能下载前一日24点前的账单数据(T+1),当日数据一般于次日 9 点前生成,特殊情况可能延迟。
	//* 月账单格式为yyyy-MM,最早可下载2016年1月开始的月账单。不支持下载当月账单,只能下载上一月账单数据,当月账单一般在次月 3 日生成,特殊情况可能延迟。
	SMid string `json:"smid,omitempty"` // 可选	20 二级商户smid,这个参数只在bill_type是trade_zft_merchant时才能使用 2088123412341234
	// contains filtered or unexported fields
}

DataServiceBillDownloadUrlQueryReq alipay.data.dataservice.bill.downloadurl.query(查询对账单下载地址) https://opendocs.alipay.com/open/028woc

func (DataServiceBillDownloadUrlQueryReq) DoValidate

func (DataServiceBillDownloadUrlQueryReq) RequestApi

func (*DataServiceBillDownloadUrlQueryReq) RequestApiVersion added in v0.1.1

func (r *DataServiceBillDownloadUrlQueryReq) RequestApiVersion() string

func (*DataServiceBillDownloadUrlQueryReq) RequestHttpMethod added in v0.1.1

func (r *DataServiceBillDownloadUrlQueryReq) RequestHttpMethod() string

type DataServiceBillDownloadUrlQueryRes

type DataServiceBillDownloadUrlQueryRes struct {
	DataServiceBillDownloadUrlQueryResContent `json:"alipay_data_dataservice_bill_downloadurl_query_response"`
	SignCertSn
}

type DataServiceBillDownloadUrlQueryResContent

type DataServiceBillDownloadUrlQueryResContent struct {
	CommonRes
	BillDownloadUrl string `json:"bill_download_url"` // 必选 2048 账单下载地址链接,获取连接后30秒后未下载,链接地址失效。
}

type DepositBackInfo

type DepositBackInfo struct {
	HasDepositBack     string `json:"has_deposit_back"`                // 可选 是否存在银行卡冲退信息
	DBackStatus        string `json:"dback_status"`                    // 可选 银行卡冲退状态。S-成功,F-失败,P-处理中。银行卡冲退失败,资金自动转入用户支付宝余额。
	DBackAmount        string `json:"dback_amount"`                    // 可选 银行卡冲退金额
	BankAckTime        string `json:"bank_ack_time"`                   // 可选 银行响应时间,格式为yyyy-MM-dd HH:mm:ss
	ESTBankReceiptTime string `json:"est_bank_receipt_time"`           // 可选 预估银行到账时间,格式为yyyy-MM-dd HH:mm:ss
	IsUseEnterprisePay bool   `json:"is_use_enterprise_pay,omitempty"` // 可选 是否包含因公付资产
}

type ErrorResponse

type ErrorResponse struct {
	CommonRes    `json:"error_response"`
	AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
	Sign         string `json:"sign"` // 签名
}

type ExtUserInfo

type ExtUserInfo struct {
	Name     string `json:"name,omitempty"`      // 可选	16 指定买家姓名。 注: need_check_info=T或fix_buyer=T时该参数才有效
	Mobile   string `json:"mobile,omitempty"`    // 可选	20 指定买家手机号。 注:该参数暂不校验 16587658765
	CertType string `json:"cert_type,omitempty"` //可选	32 指定买家证件类型。 枚举值:

	CertNo string `json:"cert_no,omitempty"` // 可选	64 买家证件号。 注:need_check_info=T或fix_buyer=T时该参数才有效,支付宝会比较买家在支付宝留存的证件号码与该参数传入的值是否匹配。
	MinAge string `json:"min_age,omitempty"` // 可选	3 允许的最小买家年龄。 买家年龄必须大于等于所传数值 注:

	FixBuyer string `json:"fix_buyer,omitempty"` // 可选	8

	NeedCheckInfo string `json:"need_check_info,omitempty"` // 可选	1
	//是否强制校验买家信息;
	//需要强制校验传:T;
	//不需要强制校验传:F或者不传;
	//当传T时,支付宝会校验支付买家的信息与接口上传递的cert_type、cert_no、name或age是否匹配,只有接口传递了信息才会进行对应项的校验;只要有任何一项信息校验不匹配交易都会失败。如果传递了need_check_info,但是没有传任何校验项,则不进行任何校验。
	//默认为不校验。
	IdentityHash string `json:"identity_hash,omitempty"` // 可选	128 买家加密身份信息。当指定了此参数且指定need_check_info=T时,支付宝会对买家身份进行校验,校验逻辑为买家姓名、买家证件号拼接后的字符串,以sha256算法utf-8编码计算hash,若与传入的值不匹配则会拦截本次支付。注意:如果同时指定了用户明文身份信息(name,cert_type,cert_no中任意一个),则忽略identity_hash以明文参数校验。 27bfcd1dee4f22c8fe8a2374af9b660419d1361b1c207e9b41a754a113f38fcc
}

type ExtendParams

type ExtendParams struct {
	SysServiceProviderId string `json:"sys_service_provider_id,omitempty"` // 可选	64 系统商编号 该参数作为系统商返佣数据提取的依据,请填写系统商签约协议的PID
	HbFqNum              string `json:"hb_fq_num,omitempty"`               // 可选	5 使用花呗分期要进行的分期数
	HbFqSellerPercent    string `json:"hb_fq_seller_percent,omitempty"`    // 可选	3 使用花呗分期需要卖家承担的手续费比例的百分值,传入100代表100%
	IndustryRefluxInfo   string `json:"industry_reflux_info,omitempty"`    // 可选	512 行业数据回流信息, 详见:地铁支付接口参数补充说明 {\"scene_code\":\"metro_tradeorder\",\"channel\":\"xxxx\",\"scene_data\":{\"asset_name\":\"ALIPAY\"}}
	CardType             string `json:"card_type,omitempty"`               // 可选	32 卡类型 S0JP0000
	SpecifiedSellerName  string `json:"specified_seller_name,omitempty"`   // 可选	32 特殊场景下,允许商户指定交易展示的卖家名称 XXX的跨境小铺
}

type FundAccountQueryReq

type FundAccountQueryReq struct {
	AlipayUserId string `json:"alipay_user_id"`         //	必选	28 支付宝会员 id。 2088301409188095
	AccountType  string `json:"account_type,omitempty"` // 特殊可选	30 查询的账号类型,查询余额账户值为ACCTRANS_ACCOUNT。必填。
	// contains filtered or unexported fields
}

func (*FundAccountQueryReq) DoValidate

func (r *FundAccountQueryReq) DoValidate() error

func (*FundAccountQueryReq) RequestApi

func (r *FundAccountQueryReq) RequestApi() string

func (*FundAccountQueryReq) RequestApiVersion added in v0.1.1

func (r *FundAccountQueryReq) RequestApiVersion() string

func (*FundAccountQueryReq) RequestHttpMethod added in v0.1.1

func (r *FundAccountQueryReq) RequestHttpMethod() string

type FundAccountQueryRes

type FundAccountQueryRes struct {
	FundAccountQueryResContent `json:"alipay_fund_account_query_response"`
	SignCertSn
}

func (*FundAccountQueryRes) String

func (r *FundAccountQueryRes) String() string

type FundAccountQueryResContent

type FundAccountQueryResContent struct {
	CommonRes
	AvailableAmount string `json:"available_amount"`        // 必选	15 账户可用余额,单位元,精确到小数点后两位。 26.45
	FreezeAmount    string `json:"freeze_amount,omitempty"` // 可选	15 当前支付宝账户的实时冻结余额 11.11
}

type FundBill

type FundBill struct {
	FundChannel string `json:"fund_channel"`          // 交易使用的资金渠道,详见 支付渠道列表 https://opendocs.alipay.com/open/common/103259
	BankCode    string `json:"bank_code"`             // 银行卡支付时的银行代码
	Amount      string `json:"amount"`                // 该支付工具类型所使用的金额
	RealAmount  string `json:"real_amount,omitempty"` // 可选 11	渠道实际付款金额
}

type FundTransCommonQueryReq

type FundTransCommonQueryReq struct {
	ProductCode string `json:"product_code,omitempty"` //	可选	64
	/*
		销售产品码,商家和支付宝签约的产品码,如果传递了out_biz_no则该字段为必传。可传值如下:
		STD_RED_PACKET:现金红包
		TRANS_ACCOUNT_NO_PWD:单笔无密转账到支付宝账户
		TRANS_BANKCARD_NO_PWD:单笔无密转账到银行卡
	*/
	BizScene string `json:"biz_scene,omitempty"` //  可选 64 描述特定的业务场景,如果传递了out_biz_no则该字段为必传。可取的业务场景如下:
	/*
		PERSONAL_PAY:C2C现金红包-发红包;
		PERSONAL_COLLECTION:C2C现金红包-领红包;
		REFUND:C2C现金红包-红包退回;
		DIRECT_TRANSFER:B2C现金红包、单笔无密转账
	*/
	OutBizNo string `json:"out_biz_no,omitempty"` // 可选	64 商户转账唯一订单号,发起转账来源方定义的转账单据ID。
	/*
		本参数和order_id(支付宝转账单据号)、pay_fund_order_id(支付宝支付资金流水号)三者不能同时为空。
		当三者同时传入时,将用pay_fund_order_id(支付宝支付资金流水号)进行查询,忽略其余两者;
		当本参数和支付宝转账单据号同时提供时,将用支付宝转账单据号进行查询,忽略本参数。
	*/
	OrderId string `json:"order_id,omitempty"` // 可选	32
	/*
		支付宝转账单据号。 本参数和out_biz_no(商户转账唯一订单号)、pay_fund_order_id(支付宝支付资金流水号)三者不能同时为空。
		当三者同时传入时,将用pay_fund_order_id(支付宝支付资金流水号)进行查询,忽略其余两者;
		当本参数和pay_fund_order_id(支付宝支付资金流水号)同时提供时,将用支付宝支付资金流水号进行查询,忽略本参数;
		当本参数和out_biz_no(商户转账唯一订单号)同时提供时,将用本参数进行查询,忽略商户转账唯一订单号。
	*/
	PayFundOrderId string `json:"pay_fund_order_id,omitempty"` // 可选	32
	// contains filtered or unexported fields
}

func (*FundTransCommonQueryReq) DoValidate

func (r *FundTransCommonQueryReq) DoValidate() error

func (*FundTransCommonQueryReq) RequestApi

func (r *FundTransCommonQueryReq) RequestApi() string

func (*FundTransCommonQueryReq) RequestApiVersion added in v0.1.1

func (r *FundTransCommonQueryReq) RequestApiVersion() string

func (*FundTransCommonQueryReq) RequestHttpMethod added in v0.1.1

func (r *FundTransCommonQueryReq) RequestHttpMethod() string

type FundTransCommonQueryRes

type FundTransCommonQueryRes struct {
	FundTransCommonQueryResContent `json:"alipay_fund_trans_common_query_response"`
	SignCertSn
}

func (*FundTransCommonQueryRes) String

func (r *FundTransCommonQueryRes) String() string

type FundTransCommonQueryResContent

type FundTransCommonQueryResContent struct {
	CommonRes
	OrderId            string `json:"order_id"`                        // 必选	32 支付宝转账单据号,查询失败不返回。
	PayFundOrderId     string `json:"pay_fund_order_id,omitempty"`     // 可选	32 支付宝支付资金流水号,转账失败不返回。
	OutBizNo           string `json:"out_biz_no"`                      // 必选	64 商户订单号
	TransAmount        string `json:"trans_amount,omitempty"`          // 可选	16 付款金额,收银台场景下付款成功后的支付金额,订单状态为SUCCESS才返回,其他状态不返回。 付款金额,单位为元,精确到小数点后两位:32.00
	Status             string `json:"status"`                          // 必选	64 转账单据状态。可能出现的状态如下: SUCCESS:转账成功; WAIT_PAY:等待支付; CLOSED:订单超时关闭; FAIL:失败(适用于"单笔转账到银行卡"); DEALING:处理中(适用于"单笔转账到银行卡"); REFUND:退票(适用于"单笔转账到银行卡"); alipay.fund.trans.app.pay涉及的状态: WAIT_PAY、SUCCESS、CLOSED alipay.fund.trans.refund涉及的状态:SUCCESS alipay.fund.trans.uni.transfer涉及的状态:SUCCESS、FAIL、DEALING、REFUND
	PayDate            string `json:"pay_date,omitempty"`              // 可选	20 支付时间,格式为yyyy-MM-dd HH:mm:ss,转账失败不返回。2013-01-01 08:08:08
	ArrivalTimeEnd     string `json:"arrival_time_end,omitempty"`      // 可选	20 预计到账时间,转账到银行卡专用,格式为yyyy-MM-dd HH:mm:ss,转账受理失败不返回。 注意: 此参数为预计时间,可能与实际到账时间有较大误差,不能作为实际到账时间使用,仅供参考用途。
	OrderFee           string `json:"order_fee,omitempty"`             // 可选	20 预计收费金额(元),转账到银行卡专用,数字格式,精确到小数点后2位,转账失败或转账受理失败不返回。 0.02
	ErrorCode          string `json:"error_code,omitempty"`            // 可选	64 查询到的订单状态为FAIL失败或REFUND退票时,返回错误代码
	FailReason         string `json:"fail_reason,omitempty"`           // 可选	128 查询到的订单状态为FAIL失败或REFUND退票时,返回具体的原因。
	SubOrderErrorCode  string `json:"sub_order_error_code,omitempty"`  // 可选	64 特殊场景提供,当子单出现异常导致主单失败或者退款时,会提供此字段,用于透出子单具体的错误场景
	SubOrderFailReason string `json:"sub_order_fail_reason,omitempty"` // 可选	128 特殊场景提供,当子单出现异常导致主单失败或者退款时,会提供此字段,用于透出子单具体的错误场景
	SubOrderStatus     string `json:"sub_order_status,omitempty"`      // 可选	64 退款子单失败状态
}

type FundTransOrderQueryReq

type FundTransOrderQueryReq struct {
	OutBizNo string `json:"out_biz_no"`         // 必选	64 商户转账唯一订单号:发起转账来源方定义的转账单据号。请求时对应的参数,原样返回。
	OrderId  string `json:"order_id,omitempty"` // 可选	64 支付宝转账单据号,成功一定返回,失败可能不返回也可能返回。
	// contains filtered or unexported fields
}

func (*FundTransOrderQueryReq) DoValidate

func (r *FundTransOrderQueryReq) DoValidate() error

func (*FundTransOrderQueryReq) RequestApi

func (r *FundTransOrderQueryReq) RequestApi() string

func (*FundTransOrderQueryReq) RequestApiVersion added in v0.1.1

func (r *FundTransOrderQueryReq) RequestApiVersion() string

func (*FundTransOrderQueryReq) RequestHttpMethod added in v0.1.1

func (r *FundTransOrderQueryReq) RequestHttpMethod() string

type FundTransOrderQueryRes

type FundTransOrderQueryRes struct {
	FundTransOrderQueryResContent `json:"alipay_fund_trans_order_query_response"`
	SignCertSn
}

func (*FundTransOrderQueryRes) String

func (r *FundTransOrderQueryRes) String() string

type FundTransOrderQueryResContent

type FundTransOrderQueryResContent struct {
	CommonRes
	OrderId string `json:"order_id,omitempty"` // 可选	64 支付宝转账单据号,成功一定返回,失败可能不返回也可能返回。
	Status  string `json:"status,omitempty"`   // 可选	10 转账单据状态。
	/*
		SUCCESS:成功(配合"单笔转账到银行账户接口"产品使用时, 同一笔单据多次查询有可能从成功变成退票状态);
		FAIL:失败(具体失败原因请参见error_code以及fail_reason返回值);
		INIT:等待处理;
		DEALING:处理中;
		REFUND:退票(仅配合"单笔转账到银行账户接口"产品使用时会涉及, 具体退票原因请参见fail_reason返回值);
		UNKNOWN:状态未知。
	*/
	PayDate        string `json:"pay_date,omitempty"`         // 可选	20 支付时间,格式为yyyy-MM-dd HH:mm:ss,转账失败不返回。 2013-01-01 08:08:08
	ArrivalTimeEnd string `json:"arrival_time_end,omitempty"` // 可选	20 预计到账时间,转账到银行卡专用,格式为yyyy-MM-dd HH:mm:ss,转账受理失败不返回。 注意: 此参数为预计时间,可能与实际到账时间有较大误差,不能作为实际到账时间使用,仅供参考用途。
	OrderFee       string `json:"order_fee,omitempty"`        // 可选	20 预计收费金额(元),转账到银行卡专用,数字格式,精确到小数点后2位,转账失败或转账受理失败不返回。 0.02
	FailReason     string `json:"fail_reason,omitempty"`      // 可选	100 查询到的订单状态为FAIL失败或REFUND退票时,返回具体的原因。 单笔额度超限
	OutBizNo       string `json:"out_biz_no,omitempty"`       // 可选	64 发起转账来源方定义的转账单据号。 该参数的赋值均以查询结果中 的 out_biz_no 为准。 如果查询失败,不返回该参数。
	ErrorCode      string `json:"error_code,omitempty"`       // 可选	100 查询失败时,本参数为错误代 码。 查询成功不返回。 对于退票订单,不返回该参数。

}

type FundTransToAccountTransferReq

type FundTransToAccountTransferReq struct {
	OutBizNo  string `json:"out_biz_no"` // 必选	64 商户转账唯一订单号。发起转账来源方定义的转账单据ID,用于将转账回执通知给来源方。 不同来源方给出的ID可以重复,同一个来源方必须保证其ID的唯一性。 只支持半角英文、数字,及“-”、“_”。
	PayeeType string `json:"payee_type"` // 必选	20 收款方账户类型。可取值:
	/*
		1、ALIPAY_USERID:支付宝账号对应的支付宝唯一用户号。以2088开头的16位纯数字组成。
		2、ALIPAY_LOGONID:支付宝登录号,支持邮箱和手机号格式。
		2、ALIPAY_OPENID:支付宝openid
	*/
	PayeeAccount  string `json:"payee_account"`             // 必选	100 收款方账户。与payee_type配合使用。付款方和收款方不能是同一个账户。
	Amount        string `json:"amount"`                    // 必选	16 转账金额,单位:元。 只支持2位小数,小数点前最大支持13位,金额必须大于等于0.1元。 最大转账金额以实际签约的限额为准。
	PayerShowName string `json:"payer_show_name,omitempty"` // 可选	100 付款方姓名(最长支持100个英文/50个汉字)。显示在收款方的账单详情页。如果该字段不传,则默认显示付款方的支付宝认证姓名或单位名称。
	PayeeRealName string `json:"payee_real_name,omitempty"` // 可选	100 收款方真实姓名(最长支持100个英文/50个汉字)。 如果本参数不为空,则会校验该账户在支付宝登记的实名是否与收款方真实姓名一致。
	Remark        string `json:"remark,omitempty"`          // 可选	200 转账备注(支持200个英文/100个汉字)。 当付款方为企业账户,且转账金额达到(大于等于)50000元,remark不能为空。收款方可见,会展示在收款用户的收支详情中。
	// contains filtered or unexported fields
}

func (*FundTransToAccountTransferReq) DoValidate

func (r *FundTransToAccountTransferReq) DoValidate() error

func (*FundTransToAccountTransferReq) RequestApi

func (r *FundTransToAccountTransferReq) RequestApi() string

func (*FundTransToAccountTransferReq) RequestApiVersion added in v0.1.1

func (r *FundTransToAccountTransferReq) RequestApiVersion() string

func (*FundTransToAccountTransferReq) RequestHttpMethod added in v0.1.1

func (r *FundTransToAccountTransferReq) RequestHttpMethod() string

type FundTransToAccountTransferRes

type FundTransToAccountTransferRes struct {
	FundTransToAccountTransferResContent `json:"alipay_fund_trans_toaccount_transfer_response"`
	SignCertSn
}

func (*FundTransToAccountTransferRes) String

type FundTransToAccountTransferResContent

type FundTransToAccountTransferResContent struct {
	CommonRes
	OutBizNo string `json:"out_biz_no"`         // 必选	64 商户转账唯一订单号:发起转账来源方定义的转账单据号。请求时对应的参数,原样返回。
	OrderId  string `json:"order_id,omitempty"` // 可选	64 支付宝转账单据号,成功一定返回,失败可能不返回也可能返回。
	PayDate  string `json:"pay_date,omitempty"` // 可选	20 支付时间:格式为yyyy-MM-dd HH:mm:ss,仅转账成功返回。 2013-01-01 08:08:08
}

type FundTransUniTransferReq

type FundTransUniTransferReq struct {
	OutBizNo       string      `json:"out_biz_no"`                // 必选	64 商家侧唯一订单号,由商家自定义。对于不同转账请求,商家需保证该订单号在自身系统唯一。
	TransAmount    string      `json:"trans_amount"`              // 必选	20 订单总金额,单位为元,不支持千位分隔符,精确到小数点后两位,取值范围[0.1,100000000]。
	ProductCode    string      `json:"product_code"`              // 必选	64 销售产品码。单笔无密转账固定为 TRANS_ACCOUNT_NO_PWD。
	BizScene       string      `json:"biz_scene"`                 // 必选	64 业务场景。单笔无密转账固定为 DIRECT_TRANSFER。
	OrderTitle     string      `json:"order_title"`               // 必选	128 转账业务的标题,用于在支付宝用户的账单里显示。
	PayeeInfo      Participant `json:"payee_info"`                // 必选        收款方信息
	Remark         string      `json:"remark,omitempty"`          // 可选	200 业务备注。 201905代发
	BusinessParams string      `json:"business_params,omitempty"` // 可选	2048 转账业务请求的扩展参数,支持传入的扩展参数如下:
	// contains filtered or unexported fields
}

func (*FundTransUniTransferReq) DoValidate

func (r *FundTransUniTransferReq) DoValidate() error

func (*FundTransUniTransferReq) RequestApi

func (r *FundTransUniTransferReq) RequestApi() string

func (*FundTransUniTransferReq) RequestApiVersion added in v0.1.1

func (r *FundTransUniTransferReq) RequestApiVersion() string

func (*FundTransUniTransferReq) RequestHttpMethod added in v0.1.1

func (r *FundTransUniTransferReq) RequestHttpMethod() string

type FundTransUniTransferRes

type FundTransUniTransferRes struct {
	FundTransUniTransferResContent `json:"alipay_fund_trans_uni_transfer_response"`
	SignCertSn
}

func (*FundTransUniTransferRes) String

func (r *FundTransUniTransferRes) String() string

type FundTransUniTransferResContent

type FundTransUniTransferResContent struct {
	CommonRes
	OutBizNo       string `json:"out_biz_no"`        // 必选	64 商户订单号
	OrderId        string `json:"order_id"`          // 必选	32 支付宝转账订单号
	PayFundOrderId string `json:"pay_fund_order_id"` // 必选	32 支付宝支付资金流水号
	Status         string `json:"status,omitempty"`  // 可选	32 转账单据状态。 SUCCESS(该笔转账交易成功):成功; FAIL:失败(具体失败原因请参见error_code以及fail_reason返回值);
	TransDate      string `json:"trans_date"`        // 必选	30 订单支付时间,格式为yyyy-MM-dd HH:mm:ss 2019-08-21 00:00:00
}

type GenericResponse

type GenericResponse interface {
}

GenericResponse 返回通用数据类型 generic try

type GoodsDetail

type GoodsDetail struct {
	GoodsId        string `json:"goods_id"`                  // 必选	32	 商品的编号
	AliPayGoodsId  string `json:"alipay_goods_id,omitempty"` // 可选	32	 支付宝定义的统一商品编号
	GoodsName      string `json:"goods_name"`                // 必选	256  商品名称
	Quantity       int    `json:"quantity"`                  // 必选	10	 商品数量
	Price          int    `json:"price"`                     // 必选	9	 商品单价,单位为元
	GoodsCategory  string `json:"goods_category,omitempty"`  // 可选	24	 商品类目
	CategoriesTree string `json:"categories_tree,omitempty"` // 可选	128	 商品类目树,从商品类目根节点到叶子节点的类目id组成,类目id值使用|分割
	Body           string `json:"body,omitempty"`            // alipay.trade.wap.pay(手机网站支付接口2.0)专属,可选	1000 商品描述信息 特价手机
	ShowURL        string `json:"show_url,omitempty"`        // 可选 400 商品的展示地址
}

func NewGoodsDetail

func NewGoodsDetail(goodsId, goodsName string, quantity, price int) *GoodsDetail

func (*GoodsDetail) DoValidate

func (r *GoodsDetail) DoValidate() error

func (*GoodsDetail) SetAliPayGoodsId

func (r *GoodsDetail) SetAliPayGoodsId(alipayGoodsId string) *GoodsDetail

func (*GoodsDetail) SetCategoriesTree

func (r *GoodsDetail) SetCategoriesTree(categoriesTree string) *GoodsDetail

func (*GoodsDetail) SetShowURL

func (r *GoodsDetail) SetShowURL(showUrl string) *GoodsDetail

type IAliPayRequest

type IAliPayRequest interface {
	Requester
	Validator
}

type InvoiceInfo

type InvoiceInfo struct {
	KeyInfo InvoiceKeyInfo `json:"key_info"` // 必选	200	 开票关键信息
	Details string         `json:"details"`  // 必选	400	 开票内容 注:json数组格式 [{"code":"100294400","name":"服饰","num":"2","sumPrice":"200.00","taxRate":"6%"}]
}

type InvoiceKeyInfo

type InvoiceKeyInfo struct {
	IsSupportInvoice    bool   `json:"is_support_invoice"`    // 必选	5 该交易是否支持开票 true
	InvoiceMerchantName string `json:"invoice_merchant_name"` // 必选	80 开票商户名称:商户品牌简称|商户门店简称 ABC|003
	TaxNum              string `json:"tax_num"`               // 必选	30 税号 1464888883494
}

type LogisticsDetail

type LogisticsDetail struct {
	LogisticsType string `json:"logistics_type,omitempty"` // 可选	32 物流类型, POST 平邮, EXPRESS 其他快递, VIRTUAL 虚拟物品, EMS EMS, DIRECT 无需物流。
}

type NormalRSA2SignStrategy

type NormalRSA2SignStrategy struct {
	Signature
	// contains filtered or unexported fields
}

func (*NormalRSA2SignStrategy) Encode

func (r *NormalRSA2SignStrategy) Encode() (string, error)

func (*NormalRSA2SignStrategy) VerifySign

func (r *NormalRSA2SignStrategy) VerifySign(scene VerificationScene, sign string, buff []byte, otherParam ...string) error

type NotifyReq

type NotifyReq struct {
	NotifyTime       string `json:"notify_time"`                  // 必填 通知的发送时间。格式为 yyyy-MM-dd HH:mm:ss 2018-10-21 15:45:22
	NotifyType       string `json:"notify_type"`                  // 必填 64 通知类型 trade_status_sync
	NotifyId         string `json:"notify_id"`                    // 必填  128 通知校验 ID ac05099524730693a8b330c45cf72da943
	Charset          string `json:"charset"`                      // 必填 10 编码格式。如 utf-8、gbk、gb312等。 utf-8
	Version          string `json:"version"`                      // 必填  3 调用的接口版本。固定为1.0
	SignType         string `json:"sign_type"`                    // 必填 10 签名类型。签名算法类型,目前支持RSA2和RSA,推荐使用 RSA2
	Sign             string `json:"sign"`                         // 必填  344 签名。详情可查看 异步返回结果的验签 601510b7970e52cc63db0f44997cf70e
	AuthAppId        string `json:"auth_app_id"`                  // 必填 32 授权方的APPID。由于本接口暂不开放第三方应用授权,因此 auth_app_id=app_id
	TradeNo          string `json:"trade_no"`                     // 必填 64 支付宝交易号,支付宝交易凭证号。 2013112011001004330000121536
	AppId            string `json:"app_id"`                       // 必填  32 支付宝应用的APPID。支付宝分配给开发者的应用 ID 2019082200007148
	OutTradeNo       string `json:"out_trade_no"`                 // 必填 64 商家订单号。原支付请求的商家订单号 6823789339978248
	OutBizNo         string `json:"out_biz_no,omitempty"`         // 可选 64 商家业务号。商家业务ID,通常是退款通知中返回的退款申请流水号 HZRF001
	BuyerId          string `json:"buyer_id,omitempty"`           // 可选  16 买家支付宝账号 ID。以 2088 开头的纯 16 位数字 20881***524333
	SellerId         string `json:"seller_id,omitempty"`          // 可选  30 卖家支付宝账号 ID。以 2088 开头的纯 16 位数字 20881***2239364
	TradeStatus      string `json:"trade_status,omitempty"`       // 可选 32 交易状态。交易目前所处状态,详情可查看下表 交易状态说明 TRADE_CLOSED
	TotalAmount      string `json:"total_amount,omitempty"`       // 可选 11 订单金额。本次交易支付订单金额,单位为人民币(元),精确到小数点后 2 位 20.00
	ReceiptAmount    string `json:"receipt_amount,omitempty"`     // 可选 11 实收金额。商家在交易中实际收到的款项,单位为人民币(元),精确到小数点后 2 位 15.00
	InvoiceAmount    string `json:"invoice_amount,omitempty"`     // 可选 11 开票金额。用户在交易中支付的可开发票的金额,单位为人民币(元),精确到小数点后 2 位 13.88
	BuyerPayAmount   string `json:"buyer_pay_amount,omitempty"`   // 可选 11 用户在交易中支付的金额,单位为人民币(元),精确到小数点后 2 位 12.00
	PointAmount      string `json:"point_amount,omitempty"`       // 可选 11 使用集分宝支付金额,单位为人民币(元),精确到小数点后 2 位 12.00
	RefundFee        string `json:"refund_fee,omitempty"`         // 可选 11 总退款金额。退款通知中,返回总退款金额,单位为人民币(元),精确到小数点后 2 位 2.58
	Subject          string `json:"subject,omitempty"`            // 可选 256 订单标题/商品标题/交易标题/订单关键字等,是请求时对应参数,会在通知中原样传回 XXXX交易
	Body             string `json:"body,omitempty"`               // 可选 400 商品描述。该订单的备注、描述、明细等。对应请求时的 body 参数,会在通知中原样传回 XXX交易内容
	GmtCreate        string `json:"gmt_create,omitempty"`         // 可选 交易创建时间。格式为 yyyy-MM-dd HH:mm:ss 2018-08-25 15:34:42
	GmtPayment       string `json:"gmt_payment,omitempty"`        // 可选 交易付款时间。格式为 yyyy-MM-dd HH:mm:ss 2018-08-25 15:34:42
	GmtRefund        string `json:"gmt_refund,omitempty"`         // 可选 交易退款时间。格式为 yyyy-MM-dd HH:mm:ss.S 2018-08-26 10:34:44.340
	GmtClose         string `json:"gmt_close,omitempty"`          // 可选 交易结束时间。格式为 yyyy-MM-dd HH:mm:ss 2018-08-26 16:32:30
	FundBillList     string `json:"fund_bill_list,omitempty"`     // 可选 512 支付金额信息。支付成功的各个渠道金额信息。详情可查看下文 资金明细信息说明 [{"amount":"15.00","fundChannel":"ALIPAYACCOUNT"}]
	VocherDetailList string `json:"vocher_detail_list,omitempty"` // 可选 512 优惠券信息。本交易支付时所使用的所有优惠券信息。详情可查看下表 优惠券信息说明 [{"amount":"0.20","merchantContribute":"0.00","name":"一键创建券模板名称","otherContribute":"0.20","type":"ALIAPY_BIZ_VOUCHER","memo":"学生卡8折优惠"}]
	PassbackParams   string `json:"passback_params,omitempty"`    // 可选 512 回传参数,公共回传参数,如果请求时传递了该参数,则返回的异步通知会原样传回。本参数必须进行 UrlEncode 之后才可传入。 merchantBizType%3d3C%26merchantBizNo%3d201601001111
	// 证书签名特有
	AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
}

func (NotifyReq) String

func (r NotifyReq) String() string

type OauthTokenReq

type OauthTokenReq struct {
	GrantType    string `json:"grant_type"`              // 必选	20 授权方式。支持: 1.authorization_code,表示换取使用用户授权码code换取授权令牌access_token。 2.refresh_token,表示使用refresh_token刷新获取新授权令牌。
	Code         string `json:"code,omitempty"`          // 可选 40 授权码,用户对应用授权后得到。本参数在 grant_type 为 authorization_code 时必填;为 refresh_token 时不填。 4b203fe6c11548bcabd8da5bb087a83b
	RefreshToken string `json:"refresh_token,omitempty"` //	可选	40 刷新令牌,上次换取访问令牌时得到。本参数在 grant_type 为 authorization_code 时不填;为 refresh_token 时必填,且该值来源于此接口的返回值 app_refresh_token(即至少需要通过 grant_type=authorization_code 调用此接口一次才能获取)。	201208134b203fe6c11548bcabd8da5bb087a83b
	// contains filtered or unexported fields
}

func (*OauthTokenReq) DoValidate

func (r *OauthTokenReq) DoValidate() error

func (*OauthTokenReq) RequestApi

func (r *OauthTokenReq) RequestApi() string

func (*OauthTokenReq) RequestApiVersion added in v0.1.1

func (r *OauthTokenReq) RequestApiVersion() string

func (*OauthTokenReq) RequestHttpMethod added in v0.1.1

func (r *OauthTokenReq) RequestHttpMethod() string

type OauthTokenRes

type OauthTokenRes struct {
	*OauthTokenResContent `json:"alipay_system_oauth_token_response,omitempty"`
	*CommonRes            `json:"error_response,omitempty"`
	SignCertSn
}

OauthTokenRes 发生错误时返回结构 调用接口返回10000是表示接口调用成功,但是 不等于业务逻辑处理成功。 { "error_response": { "code": "20000", "msg": "Service Currently Unavailable", "sub_code": "isp.unknow-error", "sub_msg": "系统繁忙" }, "sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE" }

func (*OauthTokenRes) String

func (r *OauthTokenRes) String() string
func (r *OauthTokenRes) SetSubCode(subCode string) {
	r.SubCode = subCode
}

type OauthTokenResContent

type OauthTokenResContent struct {
	CommonRes
	UserId       string `json:"user_id"`              // 必选	16 支付宝用户的唯一标识。以2088开头的16位数字。
	AccessToken  string `json:"access_token"`         // 必选    40 访问令牌。通过该令牌调用需要授权类接口
	ExpiresIn    string `json:"expires_in"`           // 必选	16 访问令牌的有效时间,单位是秒。 3600
	RefreshToken string `json:"refresh_token"`        // 必选	40 刷新令牌。通过该令牌可以刷新access_token
	ReExpiresIn  string `json:"re_expires_in"`        // 必选	16 刷新令牌的有效时间,单位是秒。 3600
	AuthStart    string `json:"auth_start,omitempty"` // 可选	32 授权token开始时间,作为有效期计算的起点 2010-11-11 11:11:11
}

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,本参数为支出方的支付宝登录号。 泛金融类商户分账时,该字段不要上送。
	TransOutType string `json:"trans_out_type,omitempty"` // 可选	64	 支出方账户类型。userId表示是支付宝账号对应的支付宝唯一用户号;loginName表示是支付宝登录号; 泛金融类商户分账时,该字段不要上送。
	TransInType  string `json:"trans_in_type,omitempty"`  // 可选	64	 收入方账户类型。userId表示是支付宝账号对应的支付宝唯一用户号;cardAliasNo表示是卡编号;loginName表示是支付宝登录号; userId
	TransIn      string `json:"trans_in"`                 // 必选	16	 收入方账户。如果收入方账户类型为userId,本参数为收入方的支付宝账号对应的支付宝唯一用户号,以2088开头的纯16位数字;如果收入方类型为cardAliasNo,本参数为收入方在支付宝绑定的卡编号;如果收入方类型为loginName,本参数为收入方的支付宝登录号;
	Amount       string `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 OpenAuthTokenAppReq

type OpenAuthTokenAppReq struct {
	GrantType    string `json:"grant_type"`              // 必选	20 授权方式。支持: 1.authorization_code,表示换取使用用户授权码code换取授权令牌access_token。 2.refresh_token,表示使用refresh_token刷新获取新授权令牌。
	Code         string `json:"code,omitempty"`          // 可选 40 授权码,用户对应用授权后得到。本参数在 grant_type 为 authorization_code 时必填;为 refresh_token 时不填。 4b203fe6c11548bcabd8da5bb087a83b
	RefreshToken string `json:"refresh_token,omitempty"` //	可选	40 刷新令牌,上次换取访问令牌时得到。本参数在 grant_type 为 authorization_code 时不填;为 refresh_token 时必填,且该值来源于此接口的返回值 app_refresh_token(即至少需要通过 grant_type=authorization_code 调用此接口一次才能获取)。	201208134b203fe6c11548bcabd8da5bb087a83b
	// contains filtered or unexported fields
}

func (*OpenAuthTokenAppReq) DoValidate

func (r *OpenAuthTokenAppReq) DoValidate() error

func (*OpenAuthTokenAppReq) RequestApi

func (r *OpenAuthTokenAppReq) RequestApi() string

func (*OpenAuthTokenAppReq) RequestApiVersion added in v0.1.1

func (r *OpenAuthTokenAppReq) RequestApiVersion() string

func (*OpenAuthTokenAppReq) RequestHttpMethod added in v0.1.1

func (r *OpenAuthTokenAppReq) RequestHttpMethod() string

type OpenAuthTokenAppRes

type OpenAuthTokenAppRes struct {
	*OpenAuthTokenAppResContent `json:"alipay_open_auth_token_app_response,omitempty"`
	*CommonRes                  `json:"error_response,omitempty"`
	SignCertSn
}

func (*OpenAuthTokenAppRes) String

func (r *OpenAuthTokenAppRes) String() string

type OpenAuthTokenAppResContent

type OpenAuthTokenAppResContent struct {
	CommonRes
	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
	ExpiresIn       string `json:"expires_in"`        // 必选	16 该字段已作废,应用令牌长期有效,接入方不需要消费该字段 123456
	ReExpiresIn     string `json:"re_expires_in"`     // 必选	16 刷新令牌的有效时间(从接口调用时间作为起始时间),单位到秒 123456
}

type OpenCertifyIdentityParam

type OpenCertifyIdentityParam struct {
	IdentityType string `json:"identity_type"`       // 必选	30 1.若本人验证,使用CERT_INFO; 2.若代他人验证,使用AGENT_CERT_INFO; 枚举值 证件信息: CERT_INFO 代理人证件信息: AGENT_CERT_INFO
	CertType     string `json:"cert_type,omitempty"` // 可选	100
	/*cert_type:
	1、若为身份证,填IDENTITY_CARD;
	2、若为港澳居民来往内地通行证,填HOME_VISIT_PERMIT_HK_MC;
	3、若为台湾居民来往内地通行证,填HOME_VISIT_PERMIT_TAIWAN;
	4、若为港澳居民居住证,填RESIDENCE_PERMIT_HK_MC;
	5、若为台湾居民居住证,填RESIDENCE_PERMIT_TAIWAN;
	枚举值
	身份证: IDENTITY_CARD
	港澳居民来往内地通行证: HOME_VISIT_PERMIT_HK_MC
	台湾居民来往内地通行证: HOME_VISIT_PERMIT_TAIWAN
	港澳居民居住证: RESIDENCE_PERMIT_HK_MC
	台湾居民居住证: RESIDENCE_PERMIT_TAIWAN
	注意事项: 在identity_type为CERT_INFO或者AGENT_CERT_INFO时,该字段必填
	*/
	CertName string `json:"cert_name,omitempty"` // 可选	50 填入真实姓名 注意事项 在identity_type为CERT_INFO或者AGENT_CERT_INFO时,该字段必填
	CertNo   string `json:"cert_no,omitempty"`   // 可选	30  填入姓名相匹配的证件号码 注意事项 在identity_type为CERT_INFO或者AGENT_CERT_INFO时,该字段必填
}

type OpenCertifyMerchantConfig

type OpenCertifyMerchantConfig struct {
	FaceReserveStrategy string `json:"face_reserve_strategy,omitempty"` //	可选	32 不传默认为reserve 枚举值 保存活体人脸: reserve 不保存活体人脸: never
	ReturnUrl           string `json:"return_url,omitempty"`            //	必选	4096 认证成功后需要跳转的地址,一般为商户业务页面;若无跳转地址可填空字符"";

}

type Participant

type Participant struct {
	Identity string `json:"identity"` // 	必选	64 参与方的标识 ID。
	/*
		当 identity_type=ALIPAY_USER_ID 时,填写支付宝用户 UID。示例值:2088123412341234。
		当 identity_type=ALIPAY_LOGON_ID 时,填写支付宝登录号。示例值:186xxxxxxxx。
	*/
	IdentityType string `json:"identity_type"` //	必选	64 参与方的标识类型,目前支持
	/* 如下枚举:
	ALIPAY_USER_ID:支付宝会员的用户 ID,可通过 获取会员信息 能力获取。
	ALIPAY_LOGON_ID:支付宝登录号,支持邮箱和手机号格式。
	*/
	Name string `json:"name,omitempty"` // 可选	128 参与方真实姓名。如果非空,将校验收款支付宝账号姓名一致性。 当 identity_type=ALIPAY_LOGON_ID 时,本字段必填。若传入该属性,则在支付宝回单中将会显示这个属性。
}

type ReceiverAddressInfo

type ReceiverAddressInfo struct {
	Name         string `json:"name,omitempty"`          // 可选	512 收货人的姓名 张三
	Address      string `json:"address,omitempty"`       // 可选	512 收货地址 上海市浦东新区陆家嘴银城中路501号
	Mobile       string `json:"mobile,omitempty"`        // 可选	60 收货人手机号 13120180615
	Zip          string `json:"zip,omitempty"`           // 可选	40 收货地址邮编 200120
	DivisionCode string `json:"division_code,omitempty"` // 可选	16 中国标准城市区域码

}

type RefundChargeInfo

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

type RefundDetailItem

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

type RefundRoyalty

type RefundRoyalty struct {
	RefundAmount  string `json:"refund_amount"`             // 必选	9	 退分账金额
	RoyaltyType   string `json:"royalty_type,omitempty"`    // 可选	32 分账类型. 普通分账为:transfer; 补差为:replenish; 为空默认为分账transfer;
	ResultCode    string `json:"result_code"`               // 必选	32 退分账结果码 SUCCESS
	TransOut      string `json:"trans_out,omitempty"`       // 可选	28 转出人支付宝账号对应用户ID
	TransOutEmail string `json:"trans_out_email,omitempty"` // 可选	64	 转出人支付宝账号
	TransIn       string `json:"trans_in,omitempty"`        // 可选	28	 转入人支付宝账号对应用户ID
	TransInEmail  string `json:"trans_in_email,omitempty"`  // 可选  64    转入人支付宝账号
}

type RefundSubFee

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

type RequestAliPayObjectBuilder

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

type RequestObjectBuilder

type RequestObjectBuilder interface {
	// contains filtered or unexported methods
}

type Requester

type Requester interface {
	// RequestHttpMethod http请求接口的方法
	RequestHttpMethod() string
	// RequestApiVersion 请求接口的对应的版本号
	RequestApiVersion() string
	// RequestApi 针对alipay请求的接口
	RequestApi() string
}

type ResponseSigner

type ResponseSigner interface {
	// SetSign 设置返回的签名
	SetSign(sign string)
	GetSign() string

	// SetAlipayCertSn 设置返回的密钥序列号
	SetAlipayCertSn(alipayCertSn string)
	GetAlipayCertSn() string
}

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 SettleDetailInfo

type SettleDetailInfo struct {
	TransInType string `json:"trans_in_type"` // 必选	64 结算收款方的账户类型。
	//cardAliasNo:结算收款方的银行卡编号;
	//userId:表示是支付宝账号对应的支付宝唯一用户号;
	//loginName:表示是支付宝登录号;
	//defaultSettle:表示结算到商户进件时设置的默认结算账号,结算主体为门店时不支持传defaultSettle;
	TransIn          string `json:"trans_in"`                     // 必选	64 结算收款方。当结算收款方类型是cardAliasNo时,本参数为用户在支付宝绑定的卡编号;结算收款方类型是userId时,本参数为用户的支付宝账号对应的支付宝唯一用户号,以2088开头的纯16位数字;当结算收款方类型是loginName时,本参数为用户的支付宝登录号;当结算收款方类型是defaultSettle时,本参数不能传值,保持为空。
	SummaryDimension string `json:"summary_dimension,omitempty"`  // 可选	64 结算汇总维度,按照这个维度汇总成批次结算,由商户指定。 目前需要和结算收款方账户类型为cardAliasNo配合使用
	SettleEntityId   string `json:"settle_entity_id,omitempty"`   // 可选	64 结算主体标识。当结算主体类型为SecondMerchant时,为二级商户的SecondMerchantID;当结算主体类型为Store时,为门店的外标。
	SettleEntityType string `json:"settle_entity_type,omitempty"` // 可选	32 结算主体类型。 二级商户:SecondMerchant;商户或者直连商户门店:Store SecondMerchant、Store
	Amount           string `json:"amount"`                       // 必选	9 结算的金额,单位为元。在创建订单和支付接口时必须和交易金额相同。在结算确认接口时必须等于交易金额减去已退款金额。直付通账期模式下,如使用部分结算能力、传递了actual_amount字段,则忽略本字段的校验、可不传。
	ActualAmount     string `json:"actual_amount,omitempty"`      // 可选	9 仅在直付通账期模式下,当一笔交易需要分多次发起部分确认结算时使用,表示本次确认结算的实际结算金额。传递本字段后,原amount字段不再生效,结算金额以本字段为准。如已经发生过部分确认结算、不传递本字段则默认按剩余待结算金额一次性结算。
}

type SettleInfo

type SettleInfo struct {
	SettleDetailInfoList []SettleDetailInfo `json:"settle_detail_infos"`          // 必选	10	 结算详细信息,json数组,目前只支持一条。
	SettlePeriodTime     string             `json:"settle_period_time,omitempty"` // 可选	10 该笔订单的超期自动确认结算时间,到达期限后,将自动确认结算。此字段只在签约账期结算模式时有效。取值范围:1d~365d。d-天。 该参数数值不接受小数点。
}

type SignCertSn

type SignCertSn struct {
	AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
	Sign         string `json:"sign"` // 签名
}

func (*SignCertSn) GetAlipayCertSn

func (r *SignCertSn) GetAlipayCertSn() string

func (*SignCertSn) GetSign

func (r *SignCertSn) GetSign() string

func (*SignCertSn) SetAlipayCertSn

func (r *SignCertSn) SetAlipayCertSn(alipayCertSn string)

func (*SignCertSn) SetSign

func (r *SignCertSn) SetSign(sign string)

type SignVerifier

type SignVerifier interface {
	Signer
	Verifier
}

func NewCertSignStrategy

func NewCertSignStrategy(appId, privateKey, appPublicCert, alipayRootCert, alipayPublicCert string) SignVerifier

func NewNormalRSA2SignStrategy

func NewNormalRSA2SignStrategy(appId, privateKey, publicKey, aliPayPublicKey string) SignVerifier

type Signature

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

func (*Signature) Encode

func (r *Signature) Encode() (string, error)

func (*Signature) SetSignContent

func (r *Signature) SetSignContent(param *CommonReqParam)

func (*Signature) Sign

func (r *Signature) Sign() (string, error)

type Signer

type Signer interface {
	// SetSignContent 设置待签名的数据
	SetSignContent(*CommonReqParam)
	// Sign 生成签名
	Sign() (string, error)
	// Encode url.encode
	Encode() (string, error)
}

type StationDetailInfo

type StationDetailInfo struct {
	Name    string `json:"name"`     // 必选	30 站点中文名称 蓝村路
	Code    string `json:"code"`     // 必选	30 站点编码 12000020
	ExtCode string `json:"ext_code"` // 必选	30 站点外部编码 260000210002
}

type SubMerchant

type SubMerchant struct {
	MerchantId   string `json:"merchant_id"`             // 必选	16 间连受理商户的支付宝商户编号,通过间连商户入驻后得到。间连业务下必传,并且需要按规范传递受理商户编号。
	MerchantType string `json:"merchant_type,omitempty"` // 可选	32 二级商户编号类型。 枚举值: alipay:支付宝分配的间联商户编号; 目前仅支持alipay,默认可以不传
}

type TicketDetailInfo

type TicketDetailInfo struct {
	TradeNo          string `json:"trade_no"`                     // 必选	100 支付宝交易号 0123456789
	Amount           string `json:"amount"`                       // 必选	20 总金额,元为单位 10.00
	StartStation     string `json:"start_station,omitempty"`      // 可选	80 起点站编码 12300002
	EndStation       string `json:"end_station,omitempty"`        // 可选	80 终点站编码 21003002
	Quantity         string `json:"quantity"`                     // 必选	20 票数量 8
	Status           string `json:"status"`                       // 必选	40 订单状态 SUCCESS
	TicketPrice      string `json:"ticket_price"`                 // 必选	20 单价,元为单位 5.00
	StartStationName string `json:"start_station_name,omitempty"` // 可选	80 起点站中文名称 蓝村路
	EndStationName   string `json:"end_station_name,omitempty"`   // 可选	80 终点站中文名称 浦电路
	TicketType       string `json:"ticket_type"`                  // 必选	60 票类型 oneway
}

type TradeAppPayReq

type TradeAppPayReq struct {
	OutTradeNo      string         `json:"out_trade_no"`                // 必选	64 商户订单号。 由商家自定义,64个字符以内,仅支持字母、数字、下划线且需保证在商户端不重复。
	TotalAmount     string         `json:"total_amount"`                // 必选	11 订单总金额,单位为元,精确到小数点后两位,取值范围为 [0.01,100000000]。金额不能为0。
	Subject         string         `json:"subject"`                     // 必选	256 订单标题。注意:不可使用特殊字符,如 /,=,& 等。
	GoodsDetail     []*GoodsDetail `json:"goods_detail,omitempty"`      // 可选 订单包含的商品列表信息,json格式。
	TimeExpire      string         `json:"time_expire,omitempty"`       // 可选 订单绝对超时时间。 格式为yyyy-MM-dd HH:mm:ss。超时时间范围:1m~15d。 注:time_expire和timeout_express两者只需传入一个或者都不传,两者均传入时,优先使用time_expire。
	ExtendParams    *ExtendParams  `json:"extend_params,omitempty"`     // 可选 业务扩展参数
	BusinessParams  string         `json:"business_params,omitempty"`   // 可选	512 商户传入业务信息,具体值要和支付宝约定,应用于安全,营销等参数直传场景,格式为json格式 {"data":"123"}
	PassbackParams  string         `json:"passback_params,omitempty"`   // 可选 512 回传参数,公共回传参数,如果请求时传递了该参数,则返回的异步通知会原样传回。本参数必须进行 UrlEncode 之后才可传入。 merchantBizType%3d3C%26merchantBizNo%3d201601001111
	MerchantOrderNo string         `json:"merchant_order_no,omitempty"` // 可选	32 商户原始订单号,最大长度限制 32 位
	ExtUserInfo     *ExtUserInfo   `json:"ext_user_info,omitempty"`     // 可选    外部指定买家
	QueryOptions    []string       `json:"query_options,omitempty"`     // 可选 1024 返回参数选项。 商户通过传递该参数来定制同步需要额外返回的信息字段,数组格式。包括但不限于:["hyb_amount","enterprise_pay_info"]
	ReturnUrl       string         `json:"-" url:"-"`                   // 可选	256 HTTP/HTTPS开头字符串
	NotifyUrl       string         `json:"-" url:"-"`                   // 可选	256	 支付宝服务器主动通知商户服务器里指定的页面http/https路径。
	// contains filtered or unexported fields
}

func (*TradeAppPayReq) DoValidate

func (r *TradeAppPayReq) DoValidate() error

func (*TradeAppPayReq) RequestApi

func (r *TradeAppPayReq) RequestApi() string

func (*TradeAppPayReq) RequestApiVersion

func (r *TradeAppPayReq) RequestApiVersion() string

func (*TradeAppPayReq) RequestHttpMethod added in v0.1.1

func (r *TradeAppPayReq) RequestHttpMethod() string

type TradeAppPayRes

type TradeAppPayRes struct {
	CommonRes
	OutTradeNo      string `json:"out_trade_no"`      // 必选	64	商户网站唯一订单号 70501111111S001111119
	TradeNo         string `json:"trade_no"`          // 必选	64	 该交易在支付宝系统中 2014112400001000340011111118
	TotalAmount     string `json:"total_amount"`      // 必选	9 该笔订单的资金总额,单位为人民币(元),取值范围为 0.01~100000000.00,精确到小数点后两位。 9.00
	SellerId        string `json:"seller_id"`         // 必选	16 收款支付宝账号对应的支付宝唯一用户号。 以2088开头的纯16位数字 2088111111116894
	MerchantOrderNo string `json:"merchant_order_no"` // 必选	32	商户原始订单号,最大长度限制32位 20161008001
}

type TradeCancelReq

type TradeCancelReq struct {
	OutTradeNo string `json:"out_trade_no,omitempty"` // 特殊可选	64 商户订单号。 订单支付时传入的商户订单号,商家自定义且保证商家系统中唯一。与支付宝交易号 trade_no 不能同时为空。
	TradeNo    string `json:"trade_no,omitempty"`     // 特殊可选	64 支付宝交易号。 和商户订单号 out_trade_no 不能同时为空。
	// contains filtered or unexported fields
}

func (*TradeCancelReq) DoValidate

func (r *TradeCancelReq) DoValidate() error

func (*TradeCancelReq) RequestApi

func (r *TradeCancelReq) RequestApi() string

func (*TradeCancelReq) RequestApiVersion added in v0.1.1

func (r *TradeCancelReq) RequestApiVersion() string

func (*TradeCancelReq) RequestHttpMethod added in v0.1.1

func (r *TradeCancelReq) RequestHttpMethod() string

type TradeCancelRes

type TradeCancelRes struct {
	TradeCancelResContent `json:"alipay_trade_cancel_response"`
	SignCertSn
}

func (*TradeCancelRes) String

func (r *TradeCancelRes) String() string

type TradeCancelResContent

type TradeCancelResContent struct {
	CommonRes
	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 本次撤销触发的交易动作,接口调用成功且交易存在时返回。可能的返回值: close:交易未支付,触发关闭交易动作,无退款; refund:交易已支付,触发交易退款动作; 未返回:未查询到交易,或接口调用失败;
}

type TradeCloseReq

type TradeCloseReq struct {
	OutTradeNo   string `json:"out_trade_no,omitempty"` // 特殊可选 64 商户订单号。订单支付时传入的商户订单号,和支付宝交易号不能同时为空。trade_no,out_trade_no如果同时存在优先取trade_no
	TradeNo      string `json:"trade_no,omitempty"`     // 特殊可选 64 支付宝交易号,和商户订单号不能同时为空
	QueryOptions string `json:"operator_id,omitempty"`  // 可选 28 商家操作员编号 id,由商家自定义。

	// 自行添加
	NotifyUrl string `json:"notify_url,omitempty" url:"notify_url,omitempty"` // 可选	256	 支付宝服务器主动通知商户服务器里指定的页面http/https路径。
	// contains filtered or unexported fields
}

func (*TradeCloseReq) DoValidate

func (r *TradeCloseReq) DoValidate() error

func (*TradeCloseReq) RequestApi

func (r *TradeCloseReq) RequestApi() string

func (*TradeCloseReq) RequestApiVersion added in v0.1.1

func (r *TradeCloseReq) RequestApiVersion() string

func (*TradeCloseReq) RequestHttpMethod added in v0.1.1

func (r *TradeCloseReq) RequestHttpMethod() string

type TradeCloseRes

type TradeCloseRes struct {
	TradeCloseResContent `json:"alipay_trade_close_response"`
	SignCertSn
}

func (*TradeCloseRes) String

func (r *TradeCloseRes) String() string

type TradeCloseResContent

type TradeCloseResContent struct {
	CommonRes
	OutTradeNo string `json:"out_trade_no,omitempty"` // 特殊可选 64 商户订单号。订单支付时传入的商户订单号,和支付宝交易号不能同时为空。trade_no,out_trade_no如果同时存在优先取trade_no
	TradeNo    string `json:"trade_no,omitempty"`     // 特殊可选 64 支付宝交易号,和商户订单号不能同时为空
}

type TradeCreateReq

type TradeCreateReq struct {
	OutTradeNo     string         `json:"out_trade_no"`              // 	必选	64 商户订单号。 由商家自定义,64个字符以内,仅支持字母、数字、下划线且需保证在商户端不重复。
	TotalAmount    string         `json:"total_amount"`              // 	必选	9 订单总金额,单位为元,精确到小数点后两位,取值范围为 [0.01,100000000]。金额不能为0。
	Subject        string         `json:"subject"`                   // 	必选	256 订单标题。注意:不可使用特殊字符,如 /,=,& 等。
	ProductCode    string         `json:"product_code"`              // 	可选	64 产品码。 商家和支付宝签约的产品码。 枚举值(点击查看签约情况): FACE_TO_FACE_PAYMENT:当面付产品; 默认值为FACE_TO_FACE_PAYMENT。
	BuyerId        string         `json:"buyer_id"`                  // 必选  28 买家支付宝用户ID。 2088开头的16位纯数字,小程序场景下获取用户ID请参考:用户授权; 其它场景下获取用户ID请参考:网页授权获取用户信息; 注:交易的买家与卖家不能相同。
	SellerId       string         `json:"seller_id,omitempty"`       // 可选  28 	 卖家支付宝用户ID。 当需要指定收款账号时,通过该参数传入,如果该值为空,则默认为商户签约账号对应的支付宝用户ID。 收款账号优先级规则:门店绑定的收款账户>请求传入的seller_id>商户签约账号对应的支付宝用户ID; 注:直付通和机构间联场景下seller_id无需传入或者保持跟pid一致; 如果传入的seller_id与pid不一致,需要联系支付宝小二配置收款关系;
	Body           string         `json:"body,omitempty"`            // 可选 	128 订单附加信息。 如果请求时传递了该参数,将在异步通知、对账单中原样返回,同时会在商户和用户的pc账单详情中作为交易描述展示
	GoodsDetail    []*GoodsDetail `json:"goods_detail,omitempty"`    // 可选 订单包含的商品列表信息,json格式。
	TimeExpire     string         `json:"time_expire,omitempty"`     // 可选 32 订单绝对超时时间。 格式为yyyy-MM-dd HH:mm:ss。超时时间范围:1m~15d。 注:time_expire和timeout_express两者只需传入一个或者都不传,两者均传入时,优先使用time_expire。
	TimeoutExpress string         `json:"timeout_express,omitempty"` // 可选 6 订单相对超时时间。从交易创建时间开始计算。
	//该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m。
	//当面付场景默认值为3h。 注:time_expire和timeout_express两者只需传入一个或者都不传,如果两者都传,优先使用time_expire。
	SettleInfo           *SettleInfo          `json:"settle_info,omitempty"`           // 可选  描述结算信息,json格式。
	ExtendParams         *ExtendParams        `json:"extend_params,omitempty"`         // 可选 业务扩展参数,具体传参数见官方接口文档
	BusinessParams       string               `json:"business_params,omitempty"`       // 可选	512 商户传入业务信息,具体值要和支付宝约定,应用于安全,营销等参数直传场景,格式为json格式 {"data":"123"}
	DiscountableAmount   string               `json:"discountable_amount,omitempty"`   // 可选	9 参与优惠计算的金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]。 如果同时传入了【可打折金额】、【不可打折金额】和【订单总金额】,则必须满足如下条件:【订单总金额】=【可打折金额】+【不可打折金额】。 如果订单金额全部参与优惠计算,则【可打折金额】和【不可打折金额】都无需传入。
	UndiscountableAmount string               `json:"undiscountable_amount,omitempty"` // 可选	9 不可打折金额。 不参与优惠计算的金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]。 如果同时传入了【可打折金额】、【不可打折金额】和【订单总金额】,则必须满足如下条件:【订单总金额】=【可打折金额】+【不可打折金额】。 如果订单金额全部参与优惠计算,则【可打折金额】和【不可打折金额】都无需传入
	StoreId              string               `json:"store_id,omitempty"`              // 可选	32 商户门店编号。指商户创建门店时输入的门店编号。
	OperatorId           string               `json:"operator_id,omitempty"`           // 可选 28 操作员id
	TerminalId           string               `json:"terminal_id,omitempty"`           // 可选	32 商户机具终端编号
	LogisticsDetail      *LogisticsDetail     `json:"logistics_detail,omitempty"`      // 可选 物流信息
	ReceiverAddressInfo  *ReceiverAddressInfo `json:"receiver_address_info,omitempty"` // 可选 收货人及地址信息
	QueryOptions         []string             `json:"query_options,omitempty"`         // 可选 1024 返回参数选项。 商户通过传递该参数来定制需要额外返回的信息字段,数组格式。包括但不限于:["enterprise_pay_info","hyb_amount"]
	BkAgentReqInfo       *BkAgentReqInfo      `json:"bkagent_req_info,omitempty"`      // 可选 间联交易下,由收单机构上送的信息
	// 自己添加
	NotifyUrl string `json:"-" url:"-"` // 可选	256	 支付宝服务器主动通知商户服务器里指定的页面http/https路径。
	// contains filtered or unexported fields
}

func (*TradeCreateReq) DoValidate

func (r *TradeCreateReq) DoValidate() error

func (*TradeCreateReq) RequestApi

func (r *TradeCreateReq) RequestApi() string

func (*TradeCreateReq) RequestApiVersion added in v0.1.1

func (r *TradeCreateReq) RequestApiVersion() string

func (*TradeCreateReq) RequestHttpMethod added in v0.1.1

func (r *TradeCreateReq) RequestHttpMethod() string

type TradeCreateRes

type TradeCreateRes struct {
	TradeCreateResContent `json:"alipay_trade_create_response"`
	SignCertSn
}

func (*TradeCreateRes) String

func (r *TradeCreateRes) String() string

type TradeCreateResContent

type TradeCreateResContent struct {
	CommonRes
	OutTradeNo string `json:"out_trade_no"` // 必选	64 商户订单号 20150423001001
	TradeNo    string `json:"trade_no"`     // 必选	64 支付宝交易号 2015042321001004720200028594
}

type TradeFastPayRefundQueryReq

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

TradeFastPayRefundQueryReq 商户可使用该接口查询自已通过alipay.trade.refund提交的退款请求是否执行成功。

func (TradeFastPayRefundQueryReq) DoValidate

func (r TradeFastPayRefundQueryReq) DoValidate() error

func (TradeFastPayRefundQueryReq) RequestApi

func (r TradeFastPayRefundQueryReq) RequestApi() string

func (*TradeFastPayRefundQueryReq) RequestApiVersion added in v0.1.1

func (r *TradeFastPayRefundQueryReq) RequestApiVersion() string

func (*TradeFastPayRefundQueryReq) RequestHttpMethod added in v0.1.1

func (r *TradeFastPayRefundQueryReq) RequestHttpMethod() string

type TradeFastPayRefundQueryRes

type TradeFastPayRefundQueryRes struct {
	TradeFastPayRefundQueryResContent `json:"alipay_trade_fastpay_refund_query_response"`
	SignCertSn
}

func (*TradeFastPayRefundQueryRes) String

func (r *TradeFastPayRefundQueryRes) String() string

type TradeFastPayRefundQueryResContent

type TradeFastPayRefundQueryResContent struct {
	CommonRes
	TradeNo      string `json:"trade_no"`       // 支付宝交易号
	OutTradeNo   string `json:"out_trade_no"`   // 创建交易传入的商户订单号
	OutRequestNo string `json:"out_request_no"` // 本笔退款对应的退款请求号
	RefundReason string `json:"refund_reason"`  // 发起退款时,传入的退款原因
	TotalAmount  string `json:"total_amount"`   // 发该笔退款所对应的交易的订单金额
	RefundAmount string `json:"refund_amount"`  // 本次退款请求,对应的退款金额
	RefundStatus string `json:"refund_status"`  // 退款状态。枚举值:
	//REFUND_SUCCESS 退款处理成功;
	//未返回该字段表示退款请求未收到或者退款失败;
	//注:如果退款查询发起时间早于退款时间,或者间隔退款发起时间太短,可能出现退款查询时还没处理成功,后面又处理成功的情况,建议商户在退款发起后间隔10秒以上再发起退款查询请求。
	RefundRoyaltys       []*RefundRoyalty    `json:"refund_royaltys"`                   // 可选 退分账明细信息
	GMTRefundPay         string              `json:"gmt_refund_pay"`                    // 可选 退款时间。
	RefundDetailItemList []*RefundDetailItem `json:"refund_detail_item_list,omitempty"` // 可选 本次退款使用的资金渠道;
	SendBackFee          string              `json:"send_back_fee"`                     // 可选 本次商户实际退回金额;
	DepositBackInfo      []*DepositBackInfo  `json:"deposit_back_info,omitempty"`       // 可选 银行卡冲退信息; 默认不返回该信息,需要在入参的query_options中指定"deposit_back_info"值时才返回该字段信息。
	RefundHybAmount      string              `json:"refund_hyb_amount,omitempty"`       // 可选 本次请求退惠营宝金额 示例值:88.88
	RefundChargeInfoList []*RefundChargeInfo `json:"refund_charge_info_list,omitempty"` // 可选  组合支付退费明细
}

type TradeFundBill

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

type TradeOrderInfoSyncReq

type TradeOrderInfoSyncReq struct {
	TradeNo       string `json:"trade_no"`                  // 必选	64 支付宝交易号 2018061021001004680073956707
	OrigRequestNo string `json:"orig_request_no,omitempty"` // 可选	64 原始业务请求单号。如对某一次退款进行履约时,该字段传退款时的退款请求号 HZ01RF001
	OutRequestNo  string `json:"out_request_no"`            // 必选	64 外部请求号,商家自定义。标识一笔交易多次请求,同一笔交易多次信息同步时需要保证唯一。 HZ01RF001
	BizType       string `json:"biz_type"`                  // 必选	64 交易信息同步对应的业务类型,具体值与支付宝约定; 信用授权场景下传CREDIT_AUTH 信用代扣场景下传CREDIT_DEDUCT
	OrderBizInfo  string `json:"order_biz_info,omitempty"`  // 可选	2018
	// contains filtered or unexported fields
}

func (*TradeOrderInfoSyncReq) DoValidate

func (r *TradeOrderInfoSyncReq) DoValidate() error

func (*TradeOrderInfoSyncReq) RequestApi

func (r *TradeOrderInfoSyncReq) RequestApi() string

func (*TradeOrderInfoSyncReq) RequestApiVersion added in v0.1.1

func (r *TradeOrderInfoSyncReq) RequestApiVersion() string

func (*TradeOrderInfoSyncReq) RequestHttpMethod added in v0.1.1

func (r *TradeOrderInfoSyncReq) RequestHttpMethod() string

type TradeOrderInfoSyncRes

type TradeOrderInfoSyncRes struct {
	TradeOrderInfoSyncResContent `json:"alipay_trade_orderinfo_sync_response"`
	SignCertSn
}

type TradeOrderInfoSyncResContent

type TradeOrderInfoSyncResContent struct {
	CommonRes
	TradeNo     string `json:"trade_no,omitempty"`      // 必选 64 支付宝交易号,和商户订单号不能同时为空
	OutTradeNo  string `json:"out_trade_no,omitempty"`  // 必选 64 商户订单号。订单支付时传入的商户订单号,和支付宝交易号不能同时为空。trade_no,out_trade_no如果同时存在优先取trade_no
	BuyerUserId string `json:"buyer_user_id,omitempty"` // 可选 28 买家在支付宝的用户id
}

type TradeOrderSettle

type TradeOrderSettle 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
}

TradeOrderSettle 统一收单交易结算接口请求参数 https://docs.open.alipay.com/api_1/alipay.trade.order.settle

type TradePagePayOpt

type TradePagePayOpt func(req *TradePagePayReq)

func WithGoodsDetail

func WithGoodsDetail(goodsDetail []*GoodsDetail) TradePagePayOpt

func WithProductCode

func WithProductCode(productCode string) TradePagePayOpt

func WithQrcodeWidth

func WithQrcodeWidth(qrcodeWidth string) TradePagePayOpt

type TradePagePayReq

type TradePagePayReq struct {
	OutTradeNo  string `json:"out_trade_no"`          // 	必选	64 商户订单号。 由商家自定义,64个字符以内,仅支持字母、数字、下划线且需保证在商户端不重复。
	TotalAmount string `json:"total_amount"`          // 	必选	11 订单总金额,单位为元,精确到小数点后两位,取值范围为 [0.01,100000000]。金额不能为0。
	Subject     string `json:"subject"`               // 	必选	256 订单标题。注意:不可使用特殊字符,如 /,=,& 等。
	ProductCode string `json:"product_code"`          // 	必选	64 销售产品码,与支付宝签约的产品码名称。注:目前电脑支付场景下仅支持FAST_INSTANT_TRADE_PAY
	QrPayMode   string `json:"qr_pay_mode,omitempty"` // 	可选	2 销售产品码,PC扫码支付的方式。
	//支持前置模式和跳转模式。前置模式是将二维码前置到商户的订单确认页的模式。需要商户在自己的页面中以 iframe 方式请求支付宝页面。具体支持的枚举值有以下几种:
	//0:订单码-简约前置模式,对应 iframe 宽度不能小于600px,高度不能小于300px;
	//1:订单码-前置模式,对应iframe 宽度不能小于 300px,高度不能小于600px;
	//3:订单码-迷你前置模式,对应 iframe 宽度不能小于 75px,高度不能小于75px;
	//4:订单码-可定义宽度的嵌入式二维码,商户可根据需要设定二维码的大小。
	//
	//跳转模式下,用户的扫码界面是由支付宝生成的,不在商户的域名下。支持传入的枚举值有:
	//2:订单码-跳转模式
	QrcodeWidth     string         `json:"qrcode_width,omitempty"`      // 可选 4 商户自定义二维码宽度。注:qr_pay_mode=4时该参数有效
	GoodsDetail     []*GoodsDetail `json:"goods_detail,omitempty"`      // 可选 订单包含的商品列表信息,json格式。
	TimeExpire      string         `json:"time_expire,omitempty"`       // 可选 订单绝对超时时间。 格式为yyyy-MM-dd HH:mm:ss。超时时间范围:1m~15d。 注:time_expire和timeout_express两者只需传入一个或者都不传,两者均传入时,优先使用time_expire。
	SubMerchant     *SubMerchant   `json:"sub_merchant,omitempty"`      // 可选  二级商户信息。 直付通模式和机构间连模式下必传,其它场景下不需要传入。
	ExtendParams    *ExtendParams  `json:"extend_params,omitempty"`     // 可选 业务扩展参数
	BusinessParams  string         `json:"business_params,omitempty"`   // 可选	512 商户传入业务信息,具体值要和支付宝约定,应用于安全,营销等参数直传场景,格式为json格式 {"data":"123"}
	PromoParams     string         `json:"promo_params,omitempty"`      // 可选	512 优惠参数。为 JSON 格式。注:仅与支付宝协商后可用 {"storeIdType":"1"}
	IntegrationType string         `json:"integration_type,omitempty"`  // 可选	16 请求后页面的集成方式。枚举值: ALIAPP:支付宝钱包内 PCWEB:PC端访问 默认值为PCWEB。
	RequestFromUrl  string         `json:"request_from_url,omitempty"`  // 可选	256 请求来源地址。如果使用ALIAPP的集成方式,用户中途取消支付会返回该地址。 https://
	StoreId         string         `json:"store_id,omitempty"`          // 可选	32 商户门店编号。指商户创建门店时输入的门店编号。
	MerchantOrderNo string         `json:"merchant_order_no,omitempty"` // 可选	32 商户原始订单号,最大长度限制 32 位
	ExtUserInfo     *ExtUserInfo   `json:"ext_user_info,omitempty"`     // 可选    外部指定买家
	InvoiceInfo     *InvoiceInfo   `json:"invoice_info,omitempty"`      // 可选    开票信息
	// 自己添加
	ReturnUrl string `json:"-" url:"-"` // 可选	256 HTTP/HTTPS开头字符串
	NotifyUrl string `json:"-" url:"-"` // 可选	256	 支付宝服务器主动通知商户服务器里指定的页面http/https路径。
	// contains filtered or unexported fields
}

func NewTradePagePayReq

func NewTradePagePayReq(outTradeNo, totalAmount, subject string, opts ...TradePagePayOpt) *TradePagePayReq

func (*TradePagePayReq) DoValidate

func (r *TradePagePayReq) DoValidate() error

func (*TradePagePayReq) RequestApi

func (r *TradePagePayReq) RequestApi() string

func (*TradePagePayReq) RequestApiVersion added in v0.1.1

func (r *TradePagePayReq) RequestApiVersion() string

func (*TradePagePayReq) RequestHttpMethod added in v0.1.1

func (r *TradePagePayReq) RequestHttpMethod() string

type TradePayReq

type TradePayReq struct {
	OutTradeNo     string         `json:"out_trade_no"`              // 必选	64 商户订单号。 由商家自定义,64个字符以内,仅支持字母、数字、下划线且需保证在商户端不重复。
	TotalAmount    string         `json:"total_amount"`              // 必选	9 订单总金额,单位为元,精确到小数点后两位,取值范围为 [0.01,100000000]。金额不能为0。
	Subject        string         `json:"subject"`                   // 必选	256 订单标题。注意:不可使用特殊字符,如 /,=,& 等。
	AuthCode       string         `json:"auth_code"`                 // 必选	64 支付授权码。 当面付场景传买家的付款码(25~30开头的长度为16~24位的数字,实际字符串长度以开发者获取的付款码长度为准)或者刷脸标识串(fp开头的35位字符串)。
	Scene          string         `json:"scene"`                     // 必选	32 支付场景。 枚举值: bar_code:当面付条码支付场景; security_code:当面付刷脸支付场景,对应的auth_code为fp开头的刷脸标识串; 默认值为bar_code。
	ProductCode    string         `json:"product_code,omitempty"`    // 可选	64 产品码。 商家和支付宝签约的产品码。 当面付场景下,如果签约的是当面付快捷版,则传 OFFLINE_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不一致,需要联系支付宝小二配置收款关系;
	GoodsDetail    []*GoodsDetail `json:"goods_detail,omitempty"`    // 可选 订单包含的商品列表信息,json格式。
	ExtendParams   *ExtendParams  `json:"extend_params,omitempty"`   // 可选 业务扩展参数
	BusinessParams string         `json:"business_params,omitempty"` // 可选	 商户传入业务信息,具体值要和支付宝约定,应用于安全,营销等参数直传场景,格式为json格式
	PromoParam     string         `json:"promo_params,omitempty"`    // 可选	 优惠明细参数,通过此属性补充营销参数。 注:仅与支付宝协商后可用。
	StoreId        string         `json:"store_id,omitempty"`        // 可选	32 商户门店编号。指商户创建门店时输入的门店编号。
	OperatorId     string         `json:"operator_id,omitempty"`     // 可选 28 操作员id
	TerminalId     string         `json:"terminal_id,omitempty"`     // 可选	32 商户机具终端编号
	QueryOptions   []string       `json:"query_options,omitempty"`   // 可选 1024 返回参数选项。 商户通过传递该参数来定制需要额外返回的信息字段,数组格式。包括但不限于:["enterprise_pay_info","hyb_amount"]
	// 自己添加
	NotifyUrl string `json:"-" url:"-"` // 可选	256	 支付宝服务器主动通知商户服务器里指定的页面http/https路径。
	// contains filtered or unexported fields
}

func (*TradePayReq) DoValidate

func (r *TradePayReq) DoValidate() error

func (*TradePayReq) RequestApi

func (r *TradePayReq) RequestApi() string

func (*TradePayReq) RequestApiVersion added in v0.1.1

func (r *TradePayReq) RequestApiVersion() string

func (*TradePayReq) RequestHttpMethod added in v0.1.1

func (r *TradePayReq) RequestHttpMethod() string

type TradePayRes

type TradePayRes struct {
	TradePayResContent `json:"alipay_trade_pay_response"`
	SignCertSn
}

type TradePayResContent

type TradePayResContent struct {
	CommonRes
	TradeNo             string           `json:"trade_no"`                      // 必须 64 支付宝交易号
	OutTradeNo          string           `json:"out_trade_no"`                  // 必选	64	商户订单号
	BuyerLogonId        string           `json:"buyer_logon_id,omitempty"`      // 必选	100 用户的登录id
	TotalAmount         string           `json:"total_amount,omitempty"`        // 可选 11 订单金额。本次交易支付订单金额,单位为人民币(元),精确到小数点后 2 位 20.00
	ReceiptAmount       string           `json:"receipt_amount,omitempty"`      // 可选 11 实收金额。商家在交易中实际收到的款项,单位为人民币(元),精确到小数点后 2 位 15.00
	BuyerPayAmount      string           `json:"buyer_pay_amount,omitempty"`    // 可选 11 用户在交易中支付的金额,单位为人民币(元),精确到小数点后 2 位 12.00
	PointAmount         string           `json:"point_amount,omitempty"`        // 可选 11 积分支付的金额,单位为元,两位小数。该金额代表该笔交易中用户使用积分支付的金额,比如集分宝或者支付宝实时优惠等
	InvoiceAmount       string           `json:"invoice_amount,omitempty"`      // 可选 11 开票金额。用户在交易中支付的可开发票的金额,单位为人民币(元),精确到小数点后 2 位 13.88
	GmtPayment          string           `json:"gmt_payment,omitempty"`         // 可选 交易付款时间。格式为 yyyy-MM-dd HH:mm:ss 2018-08-25 15:34:42
	FundBillList        []*FundBill      `json:"fund_bill_list"`                // 必选  交易支付使用的资金渠道。只有在签约中指定需要返回资金明细,或者入参的query_options中指定时才返回该字段信息。
	StoreName           string           `json:"store_name,omitempty"`          // 可选	512 发生支付交易的商户门店名称 证大五道口店
	DiscountGoodsDetail string           `json:"discount_goods_detail"`         // 可选 5120 本次交易支付所使用的单品券优惠的商品优惠信息
	BuyerUserId         string           `json:"buyer_user_id,omitempty"`       // 可选 28 买家在支付宝的用户id
	VoucherDetailList   []*VoucherDetail `json:"voucher_detail_list,omitempty"` // 可选 本交易支付时使用的所有优惠券信息
	MdiscountAmount     string           `json:"mdiscount_amount,omitempty"`    // 特殊可选 11 商家优惠金额
	DiscountAmount      string           `json:"discount_amount,omitempty"`     // 特殊可选 11 平台优惠金额
}

type TradePreCreateReq

type TradePreCreateReq struct {
	OutTradeNo         string         `json:"out_trade_no"`                  // 必选	64 商户网站唯一订单号 70501111111S001111119
	TotalAmount        string         `json:"total_amount"`                  // 必选	9 订单总金额。 单位为元,精确到小数点后两位,取值范围:[0.01,100000000] 。
	Subject            string         `json:"subject"`                       // 必选	256 订单标题。 注意:不可使用特殊字符,如 /,=,& 等。
	ProductCode        string         `json:"product_code"`                  // 必选	64 销售产品码。 销售产品码。如果签约的是当面付快捷版,则传 OFFLINE_PAYMENT;其它支付宝当面付产品传 FACE_TO_FACE_PAYMENT;不传则默认使用 FACE_TO_FACE_PAYMENT。
	SellerId           string         `json:"seller_id,omitempty"`           // 可选  30 卖家支付宝用户 ID。 如果该值为空,则默认为商户签约账号对应的支付宝用户 ID。不允许收款账号与付款方账号相同
	Body               string         `json:"body,omitempty"`                // 可选 128 订单附加信息。 如果请求时传递了该参数,将在异步通知、对账单中原样返回,同时会在商户和用户的pc账单详情中作为交易描述展示
	GoodsDetail        []*GoodsDetail `json:"goods_detail,omitempty"`        // 可选 订单包含的商品列表信息,json格式。
	ExtendParams       *ExtendParams  `json:"extend_params,omitempty"`       // 可选 业务扩展参数
	BusinessParams     string         `json:"business_params,omitempty"`     // 可选	512 商户传入业务信息,具体值要和支付宝约定,应用于安全,营销等参数直传场景,格式为json格式 {"data":"123"}
	DiscountableAmount string         `json:"discountable_amount,omitempty"` // 可选	11 可打折金额。参与优惠计算的金额,单位为元,精确到小数点后两位,取值范围为 [0.01,100000000]。如果该值未传入,但传入了【订单总金额】和【不可打折金额】,则该值默认为【订单总金额】-【不可打折金额】 80.00
	StoreId            string         `json:"store_id,omitempty"`            // 可选	32 商户门店编号。指商户创建门店时输入的门店编号。
	OperatorId         string         `json:"operator_id,omitempty"`         // 可选 28 操作员id
	TerminalId         string         `json:"terminal_id,omitempty"`         // 可选	32 商户机具终端编号
	MerchantOrderNo    string         `json:"merchant_order_no,omitempty"`   // 可选	32 商户原始订单号,最大长度限制 32 位
	// contains filtered or unexported fields
}

TradePreCreateReq alipay.trade.precreate(统一收单线下交易预创建) https://opendocs.alipay.com/open/02ekfg?scene=19

func (*TradePreCreateReq) DoValidate

func (r *TradePreCreateReq) DoValidate() error

func (*TradePreCreateReq) RequestApi

func (r *TradePreCreateReq) RequestApi() string

func (*TradePreCreateReq) RequestApiVersion added in v0.1.1

func (r *TradePreCreateReq) RequestApiVersion() string

func (*TradePreCreateReq) RequestHttpMethod added in v0.1.1

func (r *TradePreCreateReq) RequestHttpMethod() string

type TradePreCreateRes

type TradePreCreateRes struct {
	TradePreCreateResContent `json:"alipay_trade_precreate_response"`
	SignCertSn
}

type TradePreCreateResContent

type TradePreCreateResContent struct {
	CommonRes
	OutTradeNo string `json:"out_trade_no"` // 必选	64 商户的订单号 6823789339978248
	QrCode     string `json:"qr_code"`      // 必选	1024 当前预下单请求生成的二维码码串,有效时间2小时,可以用二维码生成工具根据该码串值生成对应的二维码 https://qr.alipay.com/bavh4wjlxf12tper3a
}

type TradeQueryReq

type TradeQueryReq struct {
	OutTradeNo   string   `json:"out_trade_no,omitempty"`  // 特殊可选 64 商户订单号。订单支付时传入的商户订单号,和支付宝交易号不能同时为空。trade_no,out_trade_no如果同时存在优先取trade_no
	TradeNo      string   `json:"trade_no,omitempty"`      // 特殊可选 64 支付宝交易号,和商户订单号不能同时为空
	OrgPid       string   `json:"org_pid,omitempty"`       // 可选 16 银行间联模式下有用,其它场景请不要使用;双联通过该参数指定需要查询的交易所属收单机构的pid;
	QueryOptions []string `json:"query_options,omitempty"` // 可选 1024
	// contains filtered or unexported fields
}

func (*TradeQueryReq) DoValidate

func (r *TradeQueryReq) DoValidate() error

func (*TradeQueryReq) RequestApi

func (r *TradeQueryReq) RequestApi() string

func (*TradeQueryReq) RequestApiVersion added in v0.1.1

func (r *TradeQueryReq) RequestApiVersion() string

func (*TradeQueryReq) RequestHttpMethod added in v0.1.1

func (r *TradeQueryReq) RequestHttpMethod() string

type TradeQueryRes

type TradeQueryRes struct {
	TradeQueryResContent `json:"alipay_trade_query_response"`
	SignCertSn
}

func (*TradeQueryRes) String

func (r *TradeQueryRes) String() string

type TradeQueryResContent

type TradeQueryResContent struct {
	CommonRes
	OutTradeNo            string           `json:"out_trade_no"`                       // 必选 64 商户订单号。订单支付时传入的商户订单号,和支付宝交易号不能同时为空。trade_no,out_trade_no如果同时存在优先取trade_no
	TradeNo               string           `json:"trade_no"`                           // 必选 64 支付宝交易号,和商户订单号不能同时为空
	TradeStatus           TradeStatus      `json:"trade_status"`                       // 必选 32 交易状态:WAIT_BUYER_PAY(交易创建,等待买家付款)、TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、TRADE_SUCCESS(交易支付成功)、TRADE_FINISHED(交易结束,不可退款)
	TotalAmount           string           `json:"total_amount"`                       // 必选 11 交易的订单金额,单位为元,两位小数。该参数的值为支付时传入的total_amount
	TransCurrency         string           `json:"trans_currency,omitempty"`           // 可选 标价币种 8,该参数的值为支付时传入的trans_currency
	SettleCurrency        string           `json:"settle_currency,omitempty"`          // 可选 8 订单结算币种 对应支付接口传入的settle_currency,支持英镑:GBP、港币:HKD、美元:USD、新加坡元:SGD、日元:JPY、加拿大元:CAD、澳元:AUD、欧元:EUR、新西兰元:NZD、韩元:KRW、泰铢:THB、瑞士法郎:CHF、瑞典克朗:SEK、丹麦克朗:DKK、挪威克朗:NOK、马来西亚林吉特:MYR、印尼卢比:IDR、菲律宾比索:PHP、毛里求斯卢比:MUR、以色列新谢克尔:ILS、斯里兰卡卢比:LKR、俄罗斯卢布:RUB、阿联酋迪拉姆:AED、捷克克朗:CZK、南非兰特:ZAR
	SettleAmount          string           `json:"settle_amount,omitempty"`            // 可选 11 结算币种订单金额
	PayCurrency           string           `json:"pay_currency,omitempty"`             // 可选 8 订单支付币种
	PayAmount             string           `json:"pay_amount,omitempty"`               // 可选 11 支付币种订单金额
	SettleTransRate       string           `json:"settle_trans_rate,omitempty"`        // 可选 11 结算币种兑换标价币种汇率
	TransPayRate          string           `json:"trans_pay_rate,omitempty"`           // 可选 11 标价币种兑换支付币种汇率
	BuyerPayAmount        string           `json:"buyer_pay_amount,omitempty"`         // 可选 11 买家实付金额,单位为元,两位小数。该金额代表该笔交易买家实际支付的金额,不包含商户折扣等金额
	PointAmount           string           `json:"point_amount,omitempty"`             // 可选 11 积分支付的金额,单位为元,两位小数。该金额代表该笔交易中用户使用积分支付的金额,比如集分宝或者支付宝实时优惠等
	InvoiceAmount         string           `json:"invoice_amount,omitempty"`           // 可选 11 交易中用户支付的可开具发票的金额,单位为元,两位小数。该金额代表该笔交易中可以给用户开具发票的金额
	SendPayDate           string           `json:"send_pay_date,omitempty"`            // 可选 32 本次交易打款给卖家的时间
	ReceiptAmount         string           `json:"receipt_amount,omitempty"`           // 可选 11 实收金额,单位为元,两位小数。该金额为本笔交易,商户账户能够实际收到的金额
	StoreId               string           `json:"store_id,omitempty"`                 // 可选 32 商户门店编号
	TerminalId            string           `json:"terminal_id,omitempty"`              // 可选 32 商户机具终端编号
	FundBillList          []*FundBill      `json:"fund_bill_list,omitempty"`           // 可选 交易支付使用的资金渠道。只有在签约中指定需要返回资金明细,或者入参的query_options中指定时才返回该字段信息。
	StoreName             string           `json:"store_name,omitempty"`               // 可选 512 请求交易支付中的商户店铺的名称
	BuyerUserId           string           `json:"buyer_user_id,omitempty"`            // 可选 16 买家在支付宝的用户id
	IndustrySepcDetailGov string           `json:"industry_sepc_detail_gov,omitempty"` // 可选 4096 行业特殊信息-统筹相关
	IndustrySepcDetailAcc string           `json:"industry_sepc_detail_acc,omitempty"` // 可选 4096 行业特殊信息-个账相关
	ChargeAmount          string           `json:"charge_amount,omitempty"`            // 可选 11 该笔交易针对收款方的收费金额;
	ChargeFlags           string           `json:"charge_flags,omitempty"`             // 可选 64 费率活动标识,当交易享受活动优惠费率时,返回该活动的标识;
	SettlementId          string           `json:"settlement_id,omitempty"`            // 可选 64 支付清算编号,用于清算对账使用;
	TradeSettleInfo       *TradeSettleInfo `json:"trade_settle_info,omitempty"`        // 可选 返回的交易结算信息,包含分账、补差等信息
	AuthTradePayMode      string           `json:"auth_trade_pay_mode,omitempty"`      // 可选 64 预授权支付模式,该参数仅在信用预授权支付场景下返回。信用预授权支付:CREDIT_PREAUTH_PAY
	BuyerUserType         string           `json:"buyer_user_type,omitempty"`          // 可选 18 买家用户类型。CORPORATE:企业用户;PRIVATE:个人用户。
	MdiscountAmount       string           `json:"mdiscount_amount,omitempty"`         // 可选 11 商家优惠金额
	DiscountAmount        string           `json:"discount_amount,omitempty"`          // 可选 11 平台优惠金额
	BuyerUserName         string           `json:"buyer_user_name,omitempty"`          // 可选 买家名称;
	Subject               string           `json:"subject,omitempty"`                  // 可选 256 订单标题;
	Body                  string           `json:"body,omitempty"`                     // 可选 1000 订单描述;只在银行间联交易场景下返回该信息
	AlipaySubMerchantId   string           `json:"alipay_sub_merchant_id,omitempty"`   // 可选 32 间连商户在支付宝端的商户编号;
	ExtInfos              string           `json:"ext_infos,omitempty"`                // 可选 1024 交易额外信息,特殊场景下与支付宝约定返回。
	PassbackParams        string           `json:"passback_params,omitempty"`          // 可选 512 公用回传参数。返回支付时传入的passback_params参数信息
	DiscountGoodsDetail   string           `json:"discount_goods_detail"`              // 本次交易支付所使用的单品券优惠的商品优惠信息
	VoucherDetailList     []*VoucherDetail `json:"voucher_detail_list,omitempty"`      // 本交易支付时使用的所有优惠券信息
}

type TradeRefundReq

type TradeRefundReq struct {
	OutTradeNo              string                          `json:"out_trade_no,omitempty"`              // 特殊可选	64 商户订单号。 订单支付时传入的商户订单号,商家自定义且保证商家系统中唯一。与支付宝交易号 trade_no 不能同时为空。
	TradeNo                 string                          `json:"trade_no,omitempty"`                  // 特殊可选	64 支付宝交易号。 和商户订单号 out_trade_no 不能同时为空。
	RefundAmount            string                          `json:"refund_amount"`                       // 必选	11  退款金额。需要退款的金额,该金额不能大于订单金额,单位为元,支持两位小数。
	RefundReason            string                          `json:"refund_reason,omitempty"`             // 可选	256 退款原因说明。 商家自定义,将在会在商户和用户的pc退款账单详情中展示
	OutRequestNo            string                          `json:"out_request_no,omitempty"`            // 可选	64 退款请求号。 标识一次退款请求,需要保证在交易号下唯一,如需部分退款,则此参数必传。 注:针对同一次退款请求,如果调用接口失败或异常了,重试时需要保证退款请求号不能变更,防止该笔交易重复退款。支付宝会保证同样的退款请求号多次请求只会退一次。
	RefundRoyaltyParameters []*OpenApiRoyaltyDetailInfoPojo `json:"refund_royalty_parameters,omitempty"` // 退分账明细信息。
	//注: 1.当面付且非直付通模式无需传入退分账明细,系统自动按退款金额与订单金额的比率,从收款方和分账收入方退款,不支持指定退款金额与退款方。
	//2.直付通模式,电脑网站支付,手机 APP 支付,手机网站支付产品,须在退款请求中明确是否退分账,从哪个分账收入方退,退多少分账金额;如不明确,默认从收款方退款,收款方余额不足退款失败。不支持系统按比率退款。
	QueryOptions []string `json:"query_options,omitempty"` // 可选	1024 查询选项。 商户通过上送该参数来定制同步需要额外返回的信息字段,数组格式。支持:refund_detail_item_list:退款使用的资金渠道;deposit_back_info:触发银行卡冲退信息通知;
	// contains filtered or unexported fields
}

func (TradeRefundReq) DoValidate

func (r TradeRefundReq) DoValidate() error

func (TradeRefundReq) RequestApi

func (r TradeRefundReq) RequestApi() string

func (*TradeRefundReq) RequestApiVersion added in v0.1.1

func (r *TradeRefundReq) RequestApiVersion() string

func (*TradeRefundReq) RequestHttpMethod added in v0.1.1

func (r *TradeRefundReq) RequestHttpMethod() string

type TradeRefundRes

type TradeRefundRes struct {
	TradeRefundResContent `json:"alipay_trade_refund_response"`
	SignCertSn
}

func (*TradeRefundRes) String

func (r *TradeRefundRes) String() string

type TradeRefundResContent

type TradeRefundResContent struct {
	CommonRes
	TradeNo              string              `json:"trade_no"`                          // 必选	64	支付宝交易号
	OutTradeNo           string              `json:"out_trade_no"`                      // 必选	64	商户订单号
	BuyerLogonId         string              `json:"buyer_logon_id,omitempty"`          // 必选	100 用户的登录id
	FundChange           string              `json:"fund_change,omitempty"`             // 必选  1  本次退款是否发生了资金变化 示例值:Y
	RefundFee            string              `json:"refund_fee,omitempty"`              // 必选  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
	SendBackFee          string              `json:"send_back_fee,omitempty"`           // 可选 11 本次商户实际退回金额。 说明:如需获取该值,需在入参query_options中传入 refund_detail_item_list。
	RefundHybAmount      string              `json:"refund_hyb_amount,omitempty"`       // 可选 	11  本次请求退惠营宝金额 示例值:88.88
	RefundChargeInfoList []*RefundChargeInfo `json:"refund_charge_info_list,omitempty"` // 可选   退费信息
}

type TradeSettleDetail

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

type TradeSettleInfo

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

type TradeStatus

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

type TradeWapPayOpt

type TradeWapPayOpt func(req *TradeWapPayReq)

func WithGoodsDetailWapPayOpt

func WithGoodsDetailWapPayOpt(goodsDetail []*GoodsDetail) TradeWapPayOpt

func WithNotifyUrlWapPayOpt

func WithNotifyUrlWapPayOpt(notifyUrl string) TradeWapPayOpt

func WithReturnUrlWapPayOpt

func WithReturnUrlWapPayOpt(returnUrl string) TradeWapPayOpt

type TradeWapPayReq

type TradeWapPayReq struct {
	OutTradeNo      string         `json:"out_trade_no"`           // 必选	64 商户网站唯一订单号 70501111111S001111119
	TotalAmount     string         `json:"total_amount"`           // 必选	9 订单总金额。 单位为元,精确到小数点后两位,取值范围:[0.01,100000000] 。
	Subject         string         `json:"subject"`                // 必选	256 订单标题。 注意:不可使用特殊字符,如 /,=,& 等。
	ProductCode     string         `json:"product_code"`           // 必选	64 销售产品码。 QUICK_WAP_WAY 。
	AuthToken       string         `json:"auth_token,omitempty"`   // 可选	40 针对用户授权接口,获取用户相关数据时,用于标识用户授权关系 appopenBb64d181d0146481ab6a762c00714cC27
	QuitUrl         string         `json:"quit_url,omitempty"`     // 可选	400 用户付款中途退出返回商户网站的地址 http://www.taobao.com/product/113714.html
	GoodsDetail     []*GoodsDetail `json:"goods_detail,omitempty"` // 可选 	订单包含的商品列表信息,json格式,其它说明详见商品明细说明
	ExtendParams    *ExtendParams  `json:"extend_params,omitempty"`
	BusinessParams  string         `json:"business_params,omitempty"`   // 可选	512 商户传入业务信息,具体值要和支付宝约定,应用于安全,营销等参数直传场景,格式为json格式 {"data":"123"}
	PassbackParams  string         `json:"passback_params,omitempty"`   // 可选	512 公用回传参数,如果请求时传递了该参数,则返回给商户时会回传该参数。支付宝只会在同步返回(包括跳转回商户网站)和异步通知时将该参数原样返回。本参数必须进行UrlEncode之后才可以发送给支付宝。 merchantBizType%3d3C%26merchantBizNo%3d2016010101111
	MerchantOrderNo string         `json:"merchant_order_no,omitempty"` // 可选	32 商户原始订单号,最大长度限制32位 	20161008001
	ExtUserInfo     *ExtUserInfo   `json:"ext_user_info,omitempty"`
	ReturnUrl       string         `json:"-" url:"-"` // 可选	256 HTTP/HTTPS开头字符串
	NotifyUrl       string         `json:"-" url:"-"` // 可选	256	 支付宝服务器主动通知商户服务器里指定的页面http/https路径。
	// contains filtered or unexported fields
}

TradeWapPayReq https://opendocs.alipay.com/open/02ivbs?ref=api&scene=21

func NewTradeWapPayReq

func NewTradeWapPayReq(outTradeNo, totalAmount, subject string, opts ...TradeWapPayOpt) *TradeWapPayReq

func (TradeWapPayReq) DoValidate

func (r TradeWapPayReq) DoValidate() error

func (TradeWapPayReq) RequestApi

func (r TradeWapPayReq) RequestApi() string

func (TradeWapPayReq) RequestApiVersion

func (r TradeWapPayReq) RequestApiVersion() string

func (*TradeWapPayReq) RequestHttpMethod added in v0.1.1

func (r *TradeWapPayReq) RequestHttpMethod() string

type UserCertifyOpenCertifyReq

type UserCertifyOpenCertifyReq struct {
	ReturnUrl string `json:"return_url,omitempty" url:"return_url,omitempty"` // 可选	256 HTTP/HTTPS开头字符串
	CertifyId string `json:"certify_id"`                                      //	必选	32 本次申请操作的唯一标识,由开放认证初始化接口调用后生成,后续的操作都需要用到
	IAliPayRequest
}

func (*UserCertifyOpenCertifyReq) DoValidate

func (r *UserCertifyOpenCertifyReq) DoValidate() error

func (*UserCertifyOpenCertifyReq) RequestApi

func (r *UserCertifyOpenCertifyReq) RequestApi() string

type UserCertifyOpenInitializeReq

type UserCertifyOpenInitializeReq struct {
	OuterOrderNo string `json:"outer_order_no"` // 必选	32 商户请求的唯一标识,商户要保证其唯一性,值为32位长度的字母数字组合。建议:前面几位字符是商户自定义的简称,中间可以使用一段时间,后段可以使用一个随机或递增序列
	BizCode      string `json:"biz_code"`       // 必选	32 认证场景码。入参支持的认证场景码和商户签约的认证场景相关,取值如下:
	//FACE:多因子人脸认证
	//CERT_PHOTO:多因子证照认证
	//CERT_PHOTO_FACE :多因子证照和人脸认证
	//SMART_FACE:多因子快捷认证
	IdentityParam  OpenCertifyIdentityParam  `json:"identity_param"`  // 必选	 需要验证的身份信息
	MerchantConfig OpenCertifyMerchantConfig `json:"merchant_config"` // 必选 商户个性化配置
	// contains filtered or unexported fields
}

func (*UserCertifyOpenInitializeReq) DoValidate

func (r *UserCertifyOpenInitializeReq) DoValidate() error

func (*UserCertifyOpenInitializeReq) RequestApi

func (r *UserCertifyOpenInitializeReq) RequestApi() string

func (*UserCertifyOpenInitializeReq) RequestApiVersion added in v0.1.1

func (r *UserCertifyOpenInitializeReq) RequestApiVersion() string

func (*UserCertifyOpenInitializeReq) RequestHttpMethod added in v0.1.1

func (r *UserCertifyOpenInitializeReq) RequestHttpMethod() string

type UserCertifyOpenInitializeRes

type UserCertifyOpenInitializeRes struct {
	UserCertifyOpenInitializeResContent `json:"alipay_user_certify_open_initialize_response"`
	SignCertSn
}

func (*UserCertifyOpenInitializeRes) String

type UserCertifyOpenInitializeResContent

type UserCertifyOpenInitializeResContent struct {
	CommonRes
	CertifyId string // 必选	32 本次申请操作的唯一标识,商户需要记录,后续的操作都需要用到
}

type UserCertifyOpenQueryReq

type UserCertifyOpenQueryReq struct {
	CertifyId string `json:"certify_id"` // 必选	32 本次申请操作的唯一标识,通过alipay.user.certify.open.initialize(身份认证初始化服务)接口同步响应获取。
	// contains filtered or unexported fields
}

func (*UserCertifyOpenQueryReq) DoValidate

func (r *UserCertifyOpenQueryReq) DoValidate() error

func (*UserCertifyOpenQueryReq) RequestApi

func (r *UserCertifyOpenQueryReq) RequestApi() string

func (*UserCertifyOpenQueryReq) RequestApiVersion added in v0.1.1

func (r *UserCertifyOpenQueryReq) RequestApiVersion() string

func (*UserCertifyOpenQueryReq) RequestHttpMethod added in v0.1.1

func (r *UserCertifyOpenQueryReq) RequestHttpMethod() string

type UserCertifyOpenQueryRes

type UserCertifyOpenQueryRes struct {
	UserCertifyOpenQueryResContent `json:"alipay_user_certify_open_query_response"`
	SignCertSn
}

func (*UserCertifyOpenQueryRes) String

func (r *UserCertifyOpenQueryRes) String() string

type UserCertifyOpenQueryResContent

type UserCertifyOpenQueryResContent struct {
	CommonRes
	Passed       string `json:"passed"`                  // 必选	16 是否通过,通过为T,不通过为F
	IdentityInfo string `json:"identity_info,omitempty"` // 可选	1024 认证的主体信息,一般的认证场景返回为空
	MaterialInfo string `json:"material_info,omitempty"` // 可选	2867200 认证主体附件信息,主要为图片类材料,一般的认证场景都是返回空
	FailReason   string `json:"fail_reason,omitempty"`   // 可选	512 认证错误原因,扩展字段,默认不返回
}

type UserInfoAuthReq

type UserInfoAuthReq struct {
	Scopes []string `json:"scopes"` //	必选	1024	接口权限值,枚举如下:
	/*
	* auth_base:以auth_base为scope发起的网页授权,用于获取进入页面的用户的 userId,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(通常是业务页面)。
	* auth_user:以auth_user为scope发起的网页授权,是用来获取用户的基本信息的(比如头像、昵称等)。但这种授权需要用户手动同意,用户同意后,就可在授权后获取到该用户的基本信息。
	 */
	State string `json:"state"` // 必选	100	商户自定义参数,只允许base64字符(长度小于等于100)。 说明:
	/*
	* 传入时将在用户授权后,重定向到redirect_uri 时会原样回传给商户。 为防止CSRF攻击。
	* 建议开发者请求授权时传入state参数,该参数要做到既不可预测,又可以证明客户端和当前第三方网站的登录认证状态存在关联。	init
	 */
	// 自己添加
	ReturnUrl string `json:"return_url,omitempty" url:"return_url,omitempty"` // 可选	256 HTTP/HTTPS开头字符串
	// contains filtered or unexported fields
}

func (*UserInfoAuthReq) DoValidate

func (r *UserInfoAuthReq) DoValidate() error

func (*UserInfoAuthReq) RequestApi

func (r *UserInfoAuthReq) RequestApi() string

func (*UserInfoAuthReq) RequestApiVersion added in v0.1.1

func (r *UserInfoAuthReq) RequestApiVersion() string

func (*UserInfoAuthReq) RequestHttpMethod added in v0.1.1

func (r *UserInfoAuthReq) RequestHttpMethod() string

type UserInfoAuthRes

type UserInfoAuthRes struct {
	UserInfoAuthResContent `json:"alipay_user_info_auth_response"`
	AlipayCertSn           string `json:"alipay_cert_sn,omitempty"`
	Sign                   string `json:"sign"` // 签名
}

func (*UserInfoAuthRes) SetAlipayCertSn

func (r *UserInfoAuthRes) SetAlipayCertSn(alipayCertSn string)

func (*UserInfoAuthRes) SetSign

func (r *UserInfoAuthRes) SetSign(sign string)

type UserInfoAuthResContent

type UserInfoAuthResContent struct {
	CommonRes
}

type UserInfoShareReq

type UserInfoShareReq struct {
	AuthToken string `json:"auth_token"` // 必选	40 用户授权令牌,同 access_token(用户访问令牌)。针对用户授权接口,获取用户相关数据时,用于标识用户授权关系。需使用 auth_code(用户授权码)换取此令牌,详情见 用户授权
	// contains filtered or unexported fields
}

func (*UserInfoShareReq) DoValidate

func (r *UserInfoShareReq) DoValidate() error

func (*UserInfoShareReq) RequestApi

func (r *UserInfoShareReq) RequestApi() string

func (*UserInfoShareReq) RequestApiVersion added in v0.1.1

func (r *UserInfoShareReq) RequestApiVersion() string

func (*UserInfoShareReq) RequestHttpMethod added in v0.1.1

func (r *UserInfoShareReq) RequestHttpMethod() string

type UserInfoShareRes

type UserInfoShareRes struct {
	UserInfoShareResContent `json:"alipay_user_info_share_response"`
	SignCertSn
}

func (*UserInfoShareRes) String

func (r *UserInfoShareRes) String() string

type UserInfoShareResContent

type UserInfoShareResContent struct {
	CommonRes
	UserId   string `json:"user_id"`             // 必选	16 支付宝用户的userId。 2088102104794936
	Avatar   string `json:"avatar,omitempty"`    // 必选	400 用户头像地址。 注意:如果没有数据(用户未设置)时不会返回该信息,请做好容错。 http://tfsimg.alipay.com/images/partner/T1uIxXXbpXXXXXXXX
	City     string `json:"city,omitempty"`      // 必选	20 市名称。 安庆
	NickName string `json:"nick_name,omitempty"` // 必选	50  用户昵称。 注意:如果没有数据(用户未设置)时不会返回该信息,请做好容错。 支付宝小二
	Province string `json:"province,omitempty"`  // 必选	20 省份名称。 安徽省
	Gender   string `json:"gender,omitempty"`    // 可选	10 性别。枚举值如下: F:女性; M:男性。
}

type Validator

type Validator interface {
	DoValidate() error
}

type VerificationScene

type VerificationScene int

VerificationScene 校验场景

const (
	AsyncVerificationScene VerificationScene = 1
	SyncVerificationScene  VerificationScene = 2
)

type Verifier

type Verifier interface {
	// VerifySign 校验签名
	VerifySign(scene VerificationScene, sign string, buff []byte, otherParam ...string) error
}

type VocherDetail

type VocherDetail struct {
	VoucherId  string `json:"voucher_id"`            // 必填 32 券 ID 2015102600073002039000002D5O
	TemplateId string `json:"template_id,omitempty"` // 可选 64 券模板 ID 20171030000730015359000EMZP0
	Name       string `json:"name"`                  // 必填 64 券名称 5元代金券
	Type       string `json:"type"`                  // 必填 32 优惠类型。当前支持以下几种主要类型:
	//ALIPAY_BIZ_VOUCHER:商家全场券。
	//ALIPAY_COMMON_ITEM_VOUCHER:商家单品券。
	//ALIPAY_CASH_VOUCHER:平台优惠券,支付宝或第三方出资。
	//ALICREDIT_INTFREE_VOUCHER:花呗分期券,该券仅做订单外的工作呗分期费用减免,并不抵扣订单内支付金额。
	//注意:不排除未来新增其它类型的可能,商家接入时请注意兼容性,避免硬编码。
	Amount                string              `json:"amount"`                            // 必填 11 优惠金额。优惠金额中,由商家出资的金额。 10.00
	MerchantContribute    string              `json:"merchant_contribute,omitempty"`     // 可选 11 商家出资金额。优惠金额中,由商家出资的金额。 9.00
	OtherContribute       string              `json:"other_contribute,omitempty"`        // 可选 11 其他出资方出资金额。可能是支付宝,可能是品牌商,或者其他方,也可能是他们的共同出资。 1.00
	OtherContributeDetail []*ContributeDetail `json:"other_contribute_detail,omitempty"` // 可选 优惠券的其他出资方明细
	Memo                  string              `json:"memo,omitempty"`                    // 可选  256 优惠券备注信息。 学生专用优惠
}

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"`                                   // 优惠券备注信息
	TemplateId                 string `json:"template_id,omitempty"`                  // 可选	64 券模板id
	PurchaseBuyerContribute    string `json:"purchase_buyer_contribute,omitempty"`    // 可选	8 如果使用的这张券是用户购买的,则该字段代表用户在购买这张券时用户实际付款的金额 2.01
	PurchaseMerchantContribute string `json:"purchase_merchant_contribute,omitempty"` // 可选	8 如果使用的这张券是用户购买的,则该字段代表用户在购买这张券时商户优惠的金额 1.03
	PurchaseAntContribute      string `json:"purchase_ant_contribute,omitempty"`      // 可选	8 如果使用的这张券是用户购买的,则该字段代表用户在购买这张券时平台优惠的金额 0.82
}

Jump to

Keyboard shortcuts

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