You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
479 lines
13 KiB
479 lines
13 KiB
|
2 months ago
|
package superpay
|
||
|
|
|
||
|
|
const (
|
||
|
|
baseURL = "http://mch.superpay.pw"
|
||
|
|
tokenURL = "/api/anon/auth/validate/v2"
|
||
|
|
payURL = "/api/pay/payOrders"
|
||
|
|
queryPayURL = "/api/payOrder"
|
||
|
|
withdrawURL = "/api/mchTransfers/doTransfer"
|
||
|
|
queryWithdrawURL = "/api/transferOrders"
|
||
|
|
appID = "6761532760b2d2f1779099c3"
|
||
|
|
mid = "M1734431527"
|
||
|
|
key = "jSXrzG3kNL33qDQSVH7J8q8jcT4DmfhWcgPr3OfXve3u4ecFpApcOkzkIy2Uc52N9WizuKJN5sWhWLh7q1CGEwqMNtKcTJy8k8jN9sUZA7ejfpRoaeNBjChKVYAqSmAd"
|
||
|
|
)
|
||
|
|
|
||
|
|
var (
|
||
|
|
iToken = ""
|
||
|
|
)
|
||
|
|
|
||
|
|
type TokenReq struct {
|
||
|
|
// 登录名
|
||
|
|
Ia string `json:"ia"`
|
||
|
|
// 密码
|
||
|
|
IP string `json:"ip"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type TokenResp struct {
|
||
|
|
// 业务响应码
|
||
|
|
Code int64 `json:"code"`
|
||
|
|
// 数据对象
|
||
|
|
Data map[string]string `json:"data"`
|
||
|
|
// 业务响应信息
|
||
|
|
Msg string `json:"msg"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// type TokenRespData struct {
|
||
|
|
// // 授权码
|
||
|
|
// IToken map[string]interface{} `json:" iToken"`
|
||
|
|
// }
|
||
|
|
|
||
|
|
type PayReq struct {
|
||
|
|
// 支付金额
|
||
|
|
Amount string `json:"amount"`
|
||
|
|
// 应用ID
|
||
|
|
AppID string `json:"appId"`
|
||
|
|
// 商品描述信息
|
||
|
|
Body string `json:"body"`
|
||
|
|
// 特定渠道额外支付参数
|
||
|
|
ChannelExtra ChannelExtra `json:"channelExtra"`
|
||
|
|
// 货币代码
|
||
|
|
Currency string `json:"currency"`
|
||
|
|
// 分账模式(默认"0")
|
||
|
|
DivisionMode string `json:"divisionMode"`
|
||
|
|
// 商户号
|
||
|
|
MchNo string `json:"mchNo"`
|
||
|
|
// 商户订单号
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
// 异步通知地址
|
||
|
|
NotifyURL string `json:"notifyUrl"`
|
||
|
|
// 跳转通知地址
|
||
|
|
ReturnURL string `json:"returnUrl"`
|
||
|
|
// 备注:
|
||
|
|
// 1、一般情况下填写商品标题
|
||
|
|
Subject string `json:"subject"`
|
||
|
|
// 支付方式(见附录)
|
||
|
|
WayCode string `json:"wayCode"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// 特定渠道额外支付参数
|
||
|
|
type ChannelExtra struct {
|
||
|
|
// cashApp DIJNF_USA_H5或DIJNF_USA_QR 可选填cashApp标签
|
||
|
|
BuyerTag string `json:"buyerTag"`
|
||
|
|
// 用户证件号(巴基斯坦支付通道必填)
|
||
|
|
IDCardNumber string `json:"idCardNumber"`
|
||
|
|
// 真实名称
|
||
|
|
Realname string `json:"realname"`
|
||
|
|
// 邮箱号码
|
||
|
|
UserEmail string `json:"userEmail"`
|
||
|
|
// 用户ip
|
||
|
|
UserIP string `json:"userIp"`
|
||
|
|
// 手机号码
|
||
|
|
UserMobile string `json:"userMobile"`
|
||
|
|
}
|
||
|
|
|
||
|
|
/*
|
||
|
|
代收订单状态码
|
||
|
|
code 中文返回信息
|
||
|
|
PAID 已支付(有回调)
|
||
|
|
UN_PAYD 待支付
|
||
|
|
SUBMITTED_FAILED 提交失败
|
||
|
|
PAY_FAILED 支付失败
|
||
|
|
CANCEL_PAY 取消支付
|
||
|
|
*/
|
||
|
|
type PayResp struct {
|
||
|
|
// 响应码
|
||
|
|
Code int64 `json:"code"`
|
||
|
|
Data PayRespData `json:"data"`
|
||
|
|
// 响应信息
|
||
|
|
Msg string `json:"msg"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type PayRespData struct {
|
||
|
|
// 渠道返回错误代码
|
||
|
|
ErrCode string `json:"errCode"`
|
||
|
|
// 渠道返回错误信息
|
||
|
|
ErrMsg string `json:"errMsg"`
|
||
|
|
// 商户单号(商户系统生成)
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
// 订单状态
|
||
|
|
// 支付状态: 0-订单生成, 1-支付中, 2-支付成功, 3-支付失败, 4-已撤销, 5-已退款, 6-订单关闭
|
||
|
|
OrderState int64 `json:"orderState"`
|
||
|
|
// 支付参数
|
||
|
|
PayData string `json:"payData"`
|
||
|
|
// 支付参数类型
|
||
|
|
PayDataType string `json:"payDataType"`
|
||
|
|
// 支付单号(网关生成)
|
||
|
|
PayOrderID string `json:"payOrderId"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type PayCallbackReq struct {
|
||
|
|
// 支付金额,单位分
|
||
|
|
Amount int64 `json:"amount"`
|
||
|
|
// 商户应用ID
|
||
|
|
AppId string `json:"appId"`
|
||
|
|
// 商品描述信息
|
||
|
|
Body string `json:"body"`
|
||
|
|
// 渠道订单号
|
||
|
|
ChannelOrderNo string `json:"channelOrderNo"`
|
||
|
|
// 客户端IP
|
||
|
|
ClientIp string `json:"clientIp"`
|
||
|
|
// 创建时间
|
||
|
|
CreatedAt string `json:"createdAt"`
|
||
|
|
// 三位货币代码,卢比INR
|
||
|
|
Currency string `json:"currency"`
|
||
|
|
// 渠道支付错误码
|
||
|
|
ErrCode string `json:"errCode"`
|
||
|
|
// 渠道支付错误描述
|
||
|
|
ErrMsg string `json:"errMsg"`
|
||
|
|
// 商户扩展参数
|
||
|
|
EXTParam string `json:"extParam"`
|
||
|
|
// 支付接口代码
|
||
|
|
IfCode string `json:"ifCode"`
|
||
|
|
// 商户号
|
||
|
|
MchNo string `json:"mchNo"`
|
||
|
|
// 商户订单号
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
// 支付订单号
|
||
|
|
PayOrderId string `json:"payOrderId"`
|
||
|
|
// 请求时间
|
||
|
|
ReqTime string `json:"reqTime"`
|
||
|
|
// md5签名
|
||
|
|
Sign string `json:"sign"`
|
||
|
|
// 支付状态: 0-订单生成, 1-支付中, 2-支付成功, 3-支付失败, 4-已撤销, 5-已退款, 6-订单关闭
|
||
|
|
State string `json:"state"`
|
||
|
|
// 商品标题
|
||
|
|
Subject string `json:"subject"`
|
||
|
|
// 订单支付成功时间
|
||
|
|
SuccessTime string `json:"successTime"`
|
||
|
|
// 支付方式代码
|
||
|
|
WayCode string `json:"wayCode"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type QueryPayReq struct {
|
||
|
|
// MchNo string `json:"mchNo"` // 商家号
|
||
|
|
// Sign string `json:"sign"` // 签名
|
||
|
|
// OrderNo string `json:"orderNo"` // 平台订单号
|
||
|
|
}
|
||
|
|
|
||
|
|
type QueryPayResp struct {
|
||
|
|
Code int64 `json:"code"`
|
||
|
|
Data QueryPayRespData `json:"data"`
|
||
|
|
Msg string `json:"msg"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type QueryPayRespData struct {
|
||
|
|
// 支付金额
|
||
|
|
Amount int64 `json:"amount"`
|
||
|
|
// 应用ID
|
||
|
|
AppID string `json:"appId"`
|
||
|
|
// 商品描述信息
|
||
|
|
Body string `json:"body"`
|
||
|
|
// 特定渠道额外参数
|
||
|
|
ChannelExtra string `json:"channelExtra"`
|
||
|
|
// 渠道订单号
|
||
|
|
ChannelOrderNo string `json:"channelOrderNo"`
|
||
|
|
// 渠道用户标识
|
||
|
|
ChannelUser string `json:"channelUser"`
|
||
|
|
// 客户端IP
|
||
|
|
ClientIP string `json:"clientIp"`
|
||
|
|
// 创建时间
|
||
|
|
CreatedAt string `json:"createdAt"`
|
||
|
|
// 三位货币代码
|
||
|
|
Currency string `json:"currency"`
|
||
|
|
// 最新分账时间
|
||
|
|
DivisionLastTime string `json:"divisionLastTime"`
|
||
|
|
// 订单分账模式
|
||
|
|
DivisionMode int64 `json:"divisionMode"`
|
||
|
|
// 订单分账状态
|
||
|
|
DivisionState int64 `json:"divisionState"`
|
||
|
|
// 渠道支付错误码
|
||
|
|
ErrCode string `json:"errCode"`
|
||
|
|
// 渠道支付错误描述
|
||
|
|
ErrMsg string `json:"errMsg"`
|
||
|
|
// 订单失效时间
|
||
|
|
ExpiredTime string `json:"expiredTime"`
|
||
|
|
// 商户扩展参数
|
||
|
|
EXTParam string `json:"extParam"`
|
||
|
|
// 支付接口代码
|
||
|
|
IfCode string `json:"ifCode"`
|
||
|
|
// 服务商号
|
||
|
|
ISVNo string `json:"isvNo"`
|
||
|
|
// 商户手续费
|
||
|
|
MchFeeAmount int64 `json:"mchFeeAmount"`
|
||
|
|
// 商户手续费费率快照
|
||
|
|
MchFeeRate float64 `json:"mchFeeRate"`
|
||
|
|
// 商户名称
|
||
|
|
MchName string `json:"mchName"`
|
||
|
|
// 商户号
|
||
|
|
MchNo string `json:"mchNo"`
|
||
|
|
// 商户订单号
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
// 商户实收
|
||
|
|
MchReceiptsAmount int64 `json:"mchReceiptsAmount"`
|
||
|
|
// 商户类型
|
||
|
|
MchType int64 `json:"mchType"`
|
||
|
|
// 向下游回调状态
|
||
|
|
NotifyState int64 `json:"notifyState"`
|
||
|
|
// 异步通知地址
|
||
|
|
NotifyURL string `json:"notifyUrl"`
|
||
|
|
// 支付订单号
|
||
|
|
PayOrderID string `json:"payOrderId"`
|
||
|
|
// 退款总金额
|
||
|
|
RefundAmount int64 `json:"refundAmount"`
|
||
|
|
// 退款状态
|
||
|
|
RefundState int64 `json:"refundState"`
|
||
|
|
// 退款次数
|
||
|
|
RefundTimes int64 `json:"refundTimes"`
|
||
|
|
// 页面跳转地址
|
||
|
|
ReturnURL string `json:"returnUrl"`
|
||
|
|
// 支付状态
|
||
|
|
State int64 `json:"state"`
|
||
|
|
// 商品标题
|
||
|
|
Subject string `json:"subject"`
|
||
|
|
// 订单支付成功时间
|
||
|
|
SuccessTime string `json:"successTime"`
|
||
|
|
// 更新时间
|
||
|
|
UpdatedAt string `json:"updatedAt"`
|
||
|
|
// 支付方式代码
|
||
|
|
WayCode string `json:"wayCode"`
|
||
|
|
}
|
||
|
|
|
||
|
|
/*
|
||
|
|
代付订单状态码
|
||
|
|
code 中文返回信息
|
||
|
|
PROCESSED 已处理
|
||
|
|
PAID 已支付(有回调)
|
||
|
|
UN_PAYD 待支付
|
||
|
|
UN_SUBMITTED 未提交
|
||
|
|
SUBMITTED_FAILED 提交失败(有回调)
|
||
|
|
PAY_FAILED 支付失败(有回调)
|
||
|
|
CANCEL_PAY 取消支付(有回调)
|
||
|
|
PAYING 支付中
|
||
|
|
*/
|
||
|
|
type WithdrawReq struct {
|
||
|
|
// 收款人姓名
|
||
|
|
AccountName string `json:"accountName"`
|
||
|
|
// 收款账号
|
||
|
|
AccountNo string `json:"accountNo"`
|
||
|
|
// 转账金额
|
||
|
|
Amount string `json:"amount"`
|
||
|
|
// 应用ID
|
||
|
|
AppID string `json:"appId"`
|
||
|
|
// 特定渠道额外支付参数
|
||
|
|
ChannelExtra WithdrawReqChannelExtra `json:"channelExtra"`
|
||
|
|
// 货币代码
|
||
|
|
Currency string `json:"currency"`
|
||
|
|
// 入账方式
|
||
|
|
EntryType string `json:"entryType"`
|
||
|
|
// 附加参数
|
||
|
|
// 备注:印度RVJDL支付传json字符串如:"{\"test\":\"123\"}"
|
||
|
|
// 其他支付不传这个字段
|
||
|
|
EXTParam string `json:"extParam"`
|
||
|
|
// 支付接口代码
|
||
|
|
IfCode string `json:"ifCode"`
|
||
|
|
// 商户号
|
||
|
|
MchNo string `json:"mchNo"`
|
||
|
|
// 商户订单号
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
// 异步通知地址
|
||
|
|
NotifyURL string `json:"notifyUrl"`
|
||
|
|
// 转账备注信息
|
||
|
|
TransferDesc string `json:"transferDesc"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// 特定渠道额外支付参数
|
||
|
|
type WithdrawReqChannelExtra struct {
|
||
|
|
// EMAIL/PHONE/CPF/CNPJ/RANDOM(巴西-银行卡方式)
|
||
|
|
AccountType string `json:"accountType"`
|
||
|
|
// 收款人开户行名称
|
||
|
|
// 备注:
|
||
|
|
// gbtupay原生支付 填写银行代码,如:CUB
|
||
|
|
// Lfsfpay印尼原生支付 填写银行代码,如:dana
|
||
|
|
// 银行代码 (备注:是Bank Codes) 请参考附录
|
||
|
|
BankName string `json:"bankName"`
|
||
|
|
// 巴西-银行卡方式
|
||
|
|
Cpf string `json:"cpf"`
|
||
|
|
// 邮箱号码
|
||
|
|
Email string `json:"email"`
|
||
|
|
// 印度-银行卡方式
|
||
|
|
// 备注:印度RVJDL支付 ifsc必填:如 PUNB000000
|
||
|
|
// 印度- gbtupay原生支付
|
||
|
|
// ifsc填IFSC号码如:UTIB0000897
|
||
|
|
Ifsc string `json:"ifsc"`
|
||
|
|
// 手机号码
|
||
|
|
Mobile string `json:"mobile"`
|
||
|
|
// 印度-upi方式
|
||
|
|
Upi string `json:"upi"`
|
||
|
|
}
|
||
|
|
|
||
|
|
const (
|
||
|
|
BankCard = "BANK_CARD"
|
||
|
|
IndiaUpiUtr = "INDIA_UPI_UTR"
|
||
|
|
)
|
||
|
|
|
||
|
|
type WithdrawResp struct {
|
||
|
|
// 业务响应码
|
||
|
|
Code int64 `json:"code"`
|
||
|
|
// 数据对象
|
||
|
|
Data WithdrawRespData `json:"data"`
|
||
|
|
// 业务响应信息
|
||
|
|
Msg string `json:"msg"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// 数据对象
|
||
|
|
type WithdrawRespData struct {
|
||
|
|
// 收款人姓名
|
||
|
|
AccountName string `json:"accountName"`
|
||
|
|
// 收款账号
|
||
|
|
AccountNo string `json:"accountNo"`
|
||
|
|
// 代付金额
|
||
|
|
Amount int64 `json:"amount"`
|
||
|
|
// 收款人开户行名称
|
||
|
|
BankName string `json:"bankName"`
|
||
|
|
// 渠道返回错误代码
|
||
|
|
ErrCode string `json:"errCode"`
|
||
|
|
// 渠道返回错误信息
|
||
|
|
ErrMsg string `json:"errMsg"`
|
||
|
|
// 商户单号(商户系统生成)
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
// 订单状态:0-订单生成, 1-转账中, 2-转账成功, 3-转账失败, 4-订单关闭
|
||
|
|
State int64 `json:"state"`
|
||
|
|
// 代付订单号
|
||
|
|
TransferID string `json:"transferId"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type WithdrawCallbackReq struct {
|
||
|
|
// 收款人姓名
|
||
|
|
AccountName string `json:"accountName"`
|
||
|
|
// 收款账号
|
||
|
|
AccountNo string `json:"accountNo"`
|
||
|
|
// 代付金额,单位分
|
||
|
|
Amount string `json:"amount;"`
|
||
|
|
// 应用ID
|
||
|
|
AppID string `json:"appId"`
|
||
|
|
// 收款人开户行名称
|
||
|
|
BankName string `json:"bankName"`
|
||
|
|
// 特定渠道发起额外参数
|
||
|
|
ChannelExtra string `json:"channelExtra"`
|
||
|
|
// 渠道订单号
|
||
|
|
ChannelOrderNo string `json:"channelOrderNo"`
|
||
|
|
// 创建时间
|
||
|
|
CreatedAt string `json:"createdAt"`
|
||
|
|
// 三位货币代码,印度卢比INR
|
||
|
|
Currency string `json:"currency"`
|
||
|
|
// 入账方式: BANK_CARD-银行卡;INDIA_UPI_UTR印度UPI
|
||
|
|
EntryType string `json:"entryType"`
|
||
|
|
// 渠道支付错误码
|
||
|
|
ErrCode string `json:"errCode"`
|
||
|
|
// 渠道支付错误描述
|
||
|
|
ErrMsg string `json:"errMsg"`
|
||
|
|
// 商户扩展参数
|
||
|
|
EXTParam string `json:"extParam"`
|
||
|
|
// 支付接口代码
|
||
|
|
IfCode string `json:"ifCode"`
|
||
|
|
// 请求时间戳
|
||
|
|
LongReqTime string `json:"long reqTime"`
|
||
|
|
// 商户号
|
||
|
|
MchNo string `json:"mchNo"`
|
||
|
|
// 商户订单号
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
// 报文签名
|
||
|
|
Sign string `json:"sign"`
|
||
|
|
// 支付状态: 0-订单生成, 1-转账中, 2-转账成功, 3-转账失败, 4-订单关闭
|
||
|
|
State int64 `json:"state"`
|
||
|
|
// 转账成功时间
|
||
|
|
SuccessTime string `json:"successTime"`
|
||
|
|
// 转账备注信息
|
||
|
|
TransferDesc string `json:"transferDesc"`
|
||
|
|
// 代付订单号
|
||
|
|
TransferID string `json:"transferId"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type QueryWithdrawReq struct {
|
||
|
|
}
|
||
|
|
|
||
|
|
type QueryWithdrawResp struct {
|
||
|
|
// 返回码
|
||
|
|
Code int64 `json:"code"`
|
||
|
|
Data QueryWithdrawRespData `json:"data"`
|
||
|
|
// 返回信息
|
||
|
|
Msg string `json:"msg"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type QueryWithdrawRespData struct {
|
||
|
|
// 收款人姓名
|
||
|
|
AccountName string `json:"accountName"`
|
||
|
|
// 收款账号
|
||
|
|
AccountNo string `json:"accountNo"`
|
||
|
|
// 转账金额
|
||
|
|
Amount int64 `json:"amount"`
|
||
|
|
// 应用ID
|
||
|
|
AppID string `json:"appId"`
|
||
|
|
// 收款人开户行名称
|
||
|
|
BankName string `json:"bankName"`
|
||
|
|
// 特定渠道发起额外参数
|
||
|
|
ChannelExtra QueryWithdrawRespDatahannelExtra `json:"channelExtra"`
|
||
|
|
// 渠道订单号
|
||
|
|
ChannelOrderNo string `json:"channelOrderNo"`
|
||
|
|
// 客户端IP
|
||
|
|
ClientIP string `json:"clientIp"`
|
||
|
|
// 创建时间
|
||
|
|
CreatedAt string `json:"createdAt"`
|
||
|
|
// 三位货币代码
|
||
|
|
Currency string `json:"currency"`
|
||
|
|
// 入账方式
|
||
|
|
EntryType string `json:"entryType"`
|
||
|
|
// 渠道支付错误码
|
||
|
|
ErrCode string `json:"errCode"`
|
||
|
|
// 渠道支付错误描述
|
||
|
|
ErrMsg string `json:"errMsg"`
|
||
|
|
// 商户扩展参数
|
||
|
|
EXTParam string `json:"extParam"`
|
||
|
|
// 支付接口代码
|
||
|
|
IfCode string `json:"ifCode"`
|
||
|
|
// 服务商号
|
||
|
|
ISVNo string `json:"isvNo"`
|
||
|
|
// 商户名称
|
||
|
|
MchName string `json:"mchName"`
|
||
|
|
// 商户号
|
||
|
|
MchNo string `json:"mchNo"`
|
||
|
|
// 商户订单号
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
// 商户类型
|
||
|
|
MchType int64 `json:"mchType"`
|
||
|
|
// 异步通知地址
|
||
|
|
NotifyURL string `json:"notifyUrl"`
|
||
|
|
// 支付状态
|
||
|
|
State int64 `json:"state"`
|
||
|
|
// 代付成功时间
|
||
|
|
SuccessTime string `json:"successTime"`
|
||
|
|
// 代付备注信息
|
||
|
|
TransferDesc string `json:"transferDesc"`
|
||
|
|
// 代付订单号
|
||
|
|
TransferID string `json:"transferId"`
|
||
|
|
// 更新时间
|
||
|
|
UpdatedAt string `json:"updatedAt"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// 特定渠道发起额外参数
|
||
|
|
type QueryWithdrawRespDatahannelExtra struct {
|
||
|
|
// 账号类型
|
||
|
|
AccountType string `json:"accountType"`
|
||
|
|
// 用户CPF
|
||
|
|
Cpf string `json:"cpf"`
|
||
|
|
// 用户IFSC
|
||
|
|
Ifsc string `json:"ifsc"`
|
||
|
|
// upi
|
||
|
|
Upi string `json:"upi"`
|
||
|
|
}
|