326 lines
13 KiB
Go
326 lines
13 KiB
Go
|
package alipay
|
|||
|
|
|||
|
const (
|
|||
|
// URL
|
|||
|
baseUrl = "https://openapi.alipay.com/gateway.do"
|
|||
|
//sandboxBaseUrl = "https://openapi.alipaydev.com/gateway.do"
|
|||
|
sandboxBaseUrl = "https://openapi-sandbox.dl.alipaydev.com/gateway.do"
|
|||
|
baseUrlUtf8 = "https://openapi.alipay.com/gateway.do?charset=utf-8"
|
|||
|
//sandboxBaseUrlUtf8 = "https://openapi.alipaydev.com/gateway.do?charset=utf-8"
|
|||
|
sandboxBaseUrlUtf8 = "https://openapi-sandbox.dl.alipaydev.com/gateway.do?charset=utf-8"
|
|||
|
|
|||
|
LocationShanghai = "Asia/Shanghai"
|
|||
|
PKCS1 PKCSType = 1 // 非Java
|
|||
|
PKCS8 PKCSType = 2 // Java
|
|||
|
RSA = "RSA"
|
|||
|
RSA2 = "RSA2"
|
|||
|
UTF8 = "utf-8"
|
|||
|
)
|
|||
|
|
|||
|
var (
|
|||
|
//不需要处理AppAuthToken的方法
|
|||
|
appAuthTokenInBizContent = map[string]bool{
|
|||
|
"alipay.open.auth.token.app.query": true,
|
|||
|
}
|
|||
|
)
|
|||
|
|
|||
|
type PKCSType uint8
|
|||
|
|
|||
|
// Deprecated
|
|||
|
type NotifyRequest struct {
|
|||
|
NotifyTime string `json:"notify_time,omitempty"`
|
|||
|
NotifyType string `json:"notify_type,omitempty"`
|
|||
|
NotifyId string `json:"notify_id,omitempty"`
|
|||
|
AppId string `json:"app_id,omitempty"`
|
|||
|
Charset string `json:"charset,omitempty"`
|
|||
|
Version string `json:"version,omitempty"`
|
|||
|
SignType string `json:"sign_type,omitempty"`
|
|||
|
Sign string `json:"sign,omitempty"`
|
|||
|
AuthAppId string `json:"auth_app_id,omitempty"`
|
|||
|
TradeNo string `json:"trade_no,omitempty"`
|
|||
|
OutTradeNo string `json:"out_trade_no,omitempty"`
|
|||
|
OutBizNo string `json:"out_biz_no,omitempty"`
|
|||
|
BuyerId string `json:"buyer_id,omitempty"`
|
|||
|
BuyerLogonId string `json:"buyer_logon_id,omitempty"`
|
|||
|
SellerId string `json:"seller_id,omitempty"`
|
|||
|
SellerEmail string `json:"seller_email,omitempty"`
|
|||
|
TradeStatus string `json:"trade_status,omitempty"`
|
|||
|
TotalAmount string `json:"total_amount,omitempty"`
|
|||
|
ReceiptAmount string `json:"receipt_amount,omitempty"`
|
|||
|
InvoiceAmount string `json:"invoice_amount,omitempty"`
|
|||
|
BuyerPayAmount string `json:"buyer_pay_amount,omitempty"`
|
|||
|
PointAmount string `json:"point_amount,omitempty"`
|
|||
|
RefundFee string `json:"refund_fee,omitempty"`
|
|||
|
Subject string `json:"subject,omitempty"`
|
|||
|
Body string `json:"body,omitempty"`
|
|||
|
GmtCreate string `json:"gmt_create,omitempty"`
|
|||
|
GmtPayment string `json:"gmt_payment,omitempty"`
|
|||
|
GmtRefund string `json:"gmt_refund,omitempty"`
|
|||
|
GmtClose string `json:"gmt_close,omitempty"`
|
|||
|
FundBillList []*FundBillListInfo `json:"fund_bill_list,omitempty"`
|
|||
|
PassbackParams string `json:"passback_params,omitempty"`
|
|||
|
VoucherDetailList []*VoucherDetail `json:"voucher_detail_list,omitempty"`
|
|||
|
Method string `json:"method,omitempty"` // 电脑网站支付 支付宝请求 return_url 同步返回参数
|
|||
|
Timestamp string `json:"timestamp,omitempty"` // 电脑网站支付 支付宝请求 return_url 同步返回参数
|
|||
|
}
|
|||
|
|
|||
|
// Deprecated
|
|||
|
type FundBillListInfo struct {
|
|||
|
Amount string `json:"amount,omitempty"`
|
|||
|
FundChannel string `json:"fundChannel,omitempty"` // 异步通知里是 fundChannel
|
|||
|
}
|
|||
|
|
|||
|
type UserPhone struct {
|
|||
|
ErrorResponse
|
|||
|
Mobile string `json:"mobile,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
type ErrorResponse struct {
|
|||
|
Code string `json:"code"`
|
|||
|
Msg string `json:"msg"`
|
|||
|
SubCode string `json:"sub_code,omitempty"`
|
|||
|
SubMsg string `json:"sub_msg,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
// ===================================================
|
|||
|
type FundAuthOrderAppFreezeResponse struct {
|
|||
|
Response *FundAuthOrderAppFreeze `json:"alipay_fund_auth_order_app_freeze_response"`
|
|||
|
AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
|
|||
|
SignData string `json:"-"`
|
|||
|
Sign string `json:"sign"`
|
|||
|
}
|
|||
|
|
|||
|
type FundAuthOrderAppFreeze struct {
|
|||
|
ErrorResponse
|
|||
|
AuthNo string `json:"auth_no,omitempty"`
|
|||
|
OutOrderNo string `json:"out_order_no,omitempty"`
|
|||
|
OperationId string `json:"operation_id,omitempty"`
|
|||
|
OutRequestNo string `json:"out_request_no,omitempty"`
|
|||
|
Amount string `json:"amount,omitempty"`
|
|||
|
Status string `json:"status,omitempty"`
|
|||
|
PayerUserId string `json:"payer_user_id,omitempty"`
|
|||
|
GmtTrans string `json:"gmt_trans,omitempty"`
|
|||
|
PreAuthType string `json:"pre_auth_type,omitempty"`
|
|||
|
CreditAmount string `json:"credit_amount,omitempty"`
|
|||
|
FundAmount string `json:"fund_amount,omitempty"`
|
|||
|
TransCurrency string `json:"trans_currency,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
// ===================================================
|
|||
|
type OpenAuthTokenAppResponse struct {
|
|||
|
Response *AuthTokenApp `json:"alipay_open_auth_token_app_response"`
|
|||
|
AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
|
|||
|
SignData string `json:"-"`
|
|||
|
Sign string `json:"sign"`
|
|||
|
}
|
|||
|
|
|||
|
type AuthTokenApp struct {
|
|||
|
ErrorResponse
|
|||
|
UserId string `json:"user_id,omitempty"`
|
|||
|
AuthAppId string `json:"auth_app_id,omitempty"`
|
|||
|
AppAuthToken string `json:"app_auth_token,omitempty"`
|
|||
|
ExpiresIn int `json:"expires_in,omitempty"`
|
|||
|
AppRefreshToken string `json:"app_refresh_token,omitempty"`
|
|||
|
ReExpiresIn int `json:"re_expires_in,omitempty"`
|
|||
|
Tokens []*Token `json:"tokens,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
type Token struct {
|
|||
|
AuthAppId string `json:"auth_app_id,omitempty"`
|
|||
|
AppAuthToken string `json:"app_auth_token,omitempty"`
|
|||
|
ExpiresIn int `json:"expires_in,omitempty"`
|
|||
|
AppRefreshToken string `json:"app_refresh_token,omitempty"`
|
|||
|
ReExpiresIn int `json:"re_expires_in,omitempty"`
|
|||
|
UserId string `json:"user_id,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
// ===================================================
|
|||
|
type OpenAuthTokenAppInviteCreateResponse struct {
|
|||
|
Response *OpenAuthTokenAppInviteCreate `json:"alipay_open_auth_appauth_invite_create_response"`
|
|||
|
AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
|
|||
|
SignData string `json:"-"`
|
|||
|
Sign string `json:"sign"`
|
|||
|
}
|
|||
|
|
|||
|
type OpenAuthTokenAppInviteCreate struct {
|
|||
|
ErrorResponse
|
|||
|
TaskPageUrl string `json:"task_page_url,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
// ===================================================
|
|||
|
type OpenAuthTokenAppQueryResponse struct {
|
|||
|
Response *AuthTokenAppQuery `json:"alipay_open_auth_token_app_query_response"`
|
|||
|
AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
|
|||
|
SignData string `json:"-"`
|
|||
|
Sign string `json:"sign"`
|
|||
|
}
|
|||
|
|
|||
|
type AuthTokenAppQuery struct {
|
|||
|
ErrorResponse
|
|||
|
UserId string `json:"user_id"` //授权商户的user_id
|
|||
|
AuthAppId string `json:"auth_app_id"` //授权商户的appid
|
|||
|
ExpiresIn int `json:"expires_in"` //应用授权令牌失效时间,单位到秒
|
|||
|
AuthMethods []string `json:"auth_methods"` //当前app_auth_token的授权接口列表
|
|||
|
AuthStart string `json:"auth_start"` //授权生效时间
|
|||
|
AuthEnd string `json:"auth_end"` //授权失效时间
|
|||
|
Status string `json:"status"` //valid:有效状态;invalid:无效状态
|
|||
|
}
|
|||
|
|
|||
|
// ===================================================
|
|||
|
type UserInfoAuthResponse struct {
|
|||
|
Response *ErrorResponse `json:"alipay_user_info_auth_response"`
|
|||
|
AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
|
|||
|
SignData string `json:"-"`
|
|||
|
Sign string `json:"sign"`
|
|||
|
}
|
|||
|
|
|||
|
// ===================================================
|
|||
|
type MonitorHeartbeatSynResponse struct {
|
|||
|
Response *MonitorHeartbeatSynRes `json:"monitor_heartbeat_syn_response"`
|
|||
|
AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
|
|||
|
SignData string `json:"-"`
|
|||
|
Sign string `json:"sign"`
|
|||
|
}
|
|||
|
|
|||
|
type MonitorHeartbeatSynRes struct {
|
|||
|
ErrorResponse
|
|||
|
Pid string `json:"pid"`
|
|||
|
}
|
|||
|
|
|||
|
// ===================================================
|
|||
|
type DataBillBalanceQueryResponse struct {
|
|||
|
Response *DataBillBalanceQuery `json:"alipay_data_bill_balance_query_response"`
|
|||
|
AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
|
|||
|
SignData string `json:"-"`
|
|||
|
Sign string `json:"sign"`
|
|||
|
}
|
|||
|
|
|||
|
type DataBillBalanceQuery struct {
|
|||
|
ErrorResponse
|
|||
|
TotalAmount string `json:"total_amount,omitempty"`
|
|||
|
AvailableAmount string `json:"available_amount,omitempty"`
|
|||
|
FreezeAmount string `json:"freeze_amount,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
// ===================================================
|
|||
|
type DataBillDownloadUrlQueryResponse struct {
|
|||
|
Response *DataBillDownloadUrlQuery `json:"alipay_data_dataservice_bill_downloadurl_query_response"`
|
|||
|
AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
|
|||
|
SignData string `json:"-"`
|
|||
|
Sign string `json:"sign"`
|
|||
|
}
|
|||
|
|
|||
|
type DataBillDownloadUrlQuery struct {
|
|||
|
ErrorResponse
|
|||
|
BillDownloadUrl string `json:"bill_download_url,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
// ===================================================
|
|||
|
type PublicCertDownloadRsp struct {
|
|||
|
Response *PublicCertDownload `json:"alipay_open_app_alipaycert_download_response"`
|
|||
|
}
|
|||
|
|
|||
|
type PublicCertDownload struct {
|
|||
|
ErrorResponse
|
|||
|
AlipayCertContent string `json:"alipay_cert_content"`
|
|||
|
}
|
|||
|
|
|||
|
// ===================================================
|
|||
|
type UserAgreementPageSignRsp struct {
|
|||
|
Response *UserAgreementPageSign `json:"alipay_user_agreement_page_sign_response"`
|
|||
|
AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
|
|||
|
SignData string `json:"-"`
|
|||
|
Sign string `json:"sign"`
|
|||
|
}
|
|||
|
|
|||
|
type UserAgreementPageSign struct {
|
|||
|
ErrorResponse
|
|||
|
ExternalAgreementNo string `json:"external_agreement_no,omitempty"`
|
|||
|
PersonalProductCode string `json:"personal_product_code"`
|
|||
|
ValidTime string `json:"valid_time"`
|
|||
|
SignScene string `json:"sign_scene"`
|
|||
|
AgreementNo string `json:"agreement_no"`
|
|||
|
ZmOpenId string `json:"zm_open_id,omitempty"`
|
|||
|
InvalidTime string `json:"invalid_time"`
|
|||
|
SignTime string `json:"sign_time"`
|
|||
|
AlipayUserId string `json:"alipay_user_id"`
|
|||
|
Status string `json:"status"`
|
|||
|
ForexEligible string `json:"forex_eligible,omitempty"`
|
|||
|
ExternalLogonId string `json:"external_logon_id,omitempty"`
|
|||
|
AlipayLogonId string `json:"alipay_logon_id"`
|
|||
|
CreditAuthMode string `json:"credit_auth_mode,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
// ===================================================
|
|||
|
type OpenAppQrcodeCreateRsp struct {
|
|||
|
Response *OpenAppQrcodeCreate `json:"alipay_open_app_qrcode_create_response"`
|
|||
|
AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
|
|||
|
SignData string `json:"-"`
|
|||
|
Sign string `json:"sign"`
|
|||
|
}
|
|||
|
|
|||
|
type OpenAppQrcodeCreate struct {
|
|||
|
ErrorResponse
|
|||
|
QrCodeUrl string `json:"qr_code_url"`
|
|||
|
}
|
|||
|
|
|||
|
// ===================================================
|
|||
|
type MerchantItemFileUploadRsp struct {
|
|||
|
Response *MerchantItemFileUpload `json:"alipay_merchant_item_file_upload_response"`
|
|||
|
AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
|
|||
|
SignData string `json:"-"`
|
|||
|
Sign string `json:"sign"`
|
|||
|
}
|
|||
|
|
|||
|
type MerchantItemFileUpload struct {
|
|||
|
ErrorResponse
|
|||
|
MaterialId string `json:"material_id"` // 文件在商品中心的素材标识(素材ID长期有效)
|
|||
|
MaterialKey string `json:"material_key"` // 文件在商品中心的素材标示,创建/更新商品时使用
|
|||
|
}
|
|||
|
|
|||
|
// ===================================================
|
|||
|
type DataDataserviceAdDataQueryRsp struct {
|
|||
|
Response *DataDataserviceAdDataQuery `json:"alipay_data_dataservice_ad_data_query_response"`
|
|||
|
AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
|
|||
|
SignData string `json:"-"`
|
|||
|
Sign string `json:"sign"`
|
|||
|
}
|
|||
|
|
|||
|
type DataDataserviceAdDataQuery struct {
|
|||
|
ErrorResponse
|
|||
|
DataList []*DataDetail `json:"data_list,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
type DataDetail struct {
|
|||
|
OuterId string `json:"outer_id,omitempty"`
|
|||
|
Impression int64 `json:"impression,omitempty"`
|
|||
|
Click int64 `json:"click,omitempty"`
|
|||
|
Cost int64 `json:"cost,omitempty"`
|
|||
|
ConversionDataList []*ConversionDataDetail `json:"conversion_data_list,omitempty"`
|
|||
|
BizDate string `json:"biz_date,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
type ConversionDataDetail struct {
|
|||
|
ConversionId string `json:"conversion_id,omitempty"`
|
|||
|
ConversionResult string `json:"conversion_result,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
// ===================================================
|
|||
|
type OpenAppApiQueryResponse struct {
|
|||
|
Response *OpenAppApiQuery `json:"alipay_open_app_api_query_response"`
|
|||
|
AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
|
|||
|
SignData string `json:"-"`
|
|||
|
Sign string `json:"sign"`
|
|||
|
}
|
|||
|
|
|||
|
type OpenAppApiQuery struct {
|
|||
|
ErrorResponse
|
|||
|
Apis []*Apis `json:"apis"`
|
|||
|
}
|
|||
|
|
|||
|
type Apis struct {
|
|||
|
ApiName string `json:"api_name,omitempty"`
|
|||
|
FieldName string `json:"field_name,omitempty"`
|
|||
|
PackageCode string `json:"package_code,omitempty"`
|
|||
|
}
|