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.
361 lines
11 KiB
361 lines
11 KiB
|
2 months ago
|
package propay
|
||
|
|
|
||
|
|
const (
|
||
|
|
baseURL = "https://gtw.propay.one"
|
||
|
|
payURL = "/api/pay/pay"
|
||
|
|
queryPayURL = "/api/pay/query"
|
||
|
|
withdrawURL = "/api/payout/pay"
|
||
|
|
queryWithdrawURL = "/api/payout/query"
|
||
|
|
mid = "M1733566601"
|
||
|
|
key = "wLeTfuMzbit18bt9ahwgNNrXnRa1bQQL14FbfG43oPaugEORW6vIgMMXv0INTLlRfI7bkH1CnBeramA1ZD6lng5Arq2JUAH92Q9dzRBQptirmAPws6mCBtn9DxgRzsQF"
|
||
|
|
appID = "67542089e4b09f5f18f4e276"
|
||
|
|
)
|
||
|
|
|
||
|
|
type PayReq struct {
|
||
|
|
// 代收金额,单位 分
|
||
|
|
Amount int64 `json:"amount"`
|
||
|
|
// 应用编号
|
||
|
|
AppID string `json:"appId"`
|
||
|
|
// 客户邮箱
|
||
|
|
CustomerEmail string `json:"customerEmail"`
|
||
|
|
// 客户姓名
|
||
|
|
CustomerName string `json:"customerName"`
|
||
|
|
// 客户手机号
|
||
|
|
CustomerPhone string `json:"customerPhone"`
|
||
|
|
// 商户号
|
||
|
|
MchNo string `json:"mchNo"`
|
||
|
|
// 商户订单号
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
// 异步通知地址,只有该字段有值才会发起回调
|
||
|
|
NotifyURL string `json:"notifyUrl"`
|
||
|
|
// 同步跳转的地址
|
||
|
|
ReturnURL string `json:"returnUrl"`
|
||
|
|
// 签名,详见签名算法
|
||
|
|
Sign string `json:"sign"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type PayResp struct {
|
||
|
|
// 返回状态,详见错误码 0-成功 其他-失败
|
||
|
|
Code int64 `json:"code"`
|
||
|
|
// 返回数据
|
||
|
|
Data PayRespData `json:"data"`
|
||
|
|
// 返回信息,错误原因
|
||
|
|
Msg string `json:"msg"`
|
||
|
|
// 签名信息,data 为空时不返回
|
||
|
|
Sign string `json:"sign"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// 返回数据
|
||
|
|
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"`
|
||
|
|
// 支付参数类型,payUrl-跳转链接的方式 form-表单方式 codeUrl-二维码地址 codeImgUrl-二维码图片地址 none-空支付参数
|
||
|
|
PayDataType string `json:"payDataType"`
|
||
|
|
// 代收订单号
|
||
|
|
PayOrderID string `json:"payOrderId"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type PayCallbackReq struct {
|
||
|
|
// 支付金额,单位分
|
||
|
|
Amount int64 `json:"amount"`
|
||
|
|
// 应用编号
|
||
|
|
AppID string `json:"appId"`
|
||
|
|
// 渠道订单号
|
||
|
|
ChannelOrderNo string `json:"channelOrderNo"`
|
||
|
|
// 客户端ip
|
||
|
|
ClientIP string `json:"clientIp"`
|
||
|
|
// 创建时间,13 位时间戳
|
||
|
|
CreatedAt int64 `json:"createdAt"`
|
||
|
|
// 货币代码,固定值 INR
|
||
|
|
Currency string `json:"currency"`
|
||
|
|
// 客户邮箱
|
||
|
|
CustomerEmail string `json:"customerEmail"`
|
||
|
|
// 客户姓名
|
||
|
|
CustomerName string `json:"customerName"`
|
||
|
|
// 客户手机号
|
||
|
|
CustomerPhone string `json:"customerPhone"`
|
||
|
|
// 渠道错误码
|
||
|
|
ErrCode string `json:"errCode"`
|
||
|
|
// 渠道错误描述
|
||
|
|
ErrMsg string `json:"errMsg"`
|
||
|
|
// 支付编码
|
||
|
|
IfCode string `json:"ifCode"`
|
||
|
|
// 商户号
|
||
|
|
MchNo string `json:"mchNo"`
|
||
|
|
// 商户订单号
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
// 代收订单号
|
||
|
|
PayOrderID string `json:"payOrderId"`
|
||
|
|
// 通知请求时间,13 位时间戳
|
||
|
|
ReqTime int64 `json:"reqTime"`
|
||
|
|
// 签名
|
||
|
|
Sign string `json:"sign"`
|
||
|
|
// 订单状态 2-成功 3-失败
|
||
|
|
State int64 `json:"state"`
|
||
|
|
// 支付方式
|
||
|
|
WayCode string `json:"wayCode"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type QueryPayReq struct {
|
||
|
|
// 应用编号
|
||
|
|
AppID string `json:"appId"`
|
||
|
|
// 商户号
|
||
|
|
MchNo string `json:"mchNo"`
|
||
|
|
// 商户订单号,与 payOrderId 二者传一即可
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
// 代收订单号,与 mchOrderNo 二者传一即可
|
||
|
|
PayOrderID string `json:"payOrderId"`
|
||
|
|
// 签名,详见签名算法
|
||
|
|
Sign string `json:"sign"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type QueryPayResp struct {
|
||
|
|
// 返回状态,详见错误码 0-成功 其他-失败
|
||
|
|
Code int64 `json:"code"`
|
||
|
|
// 返回数据
|
||
|
|
Data QueryPayRespData `json:"data"`
|
||
|
|
// 返回信息,错误原因
|
||
|
|
Msg string `json:"msg"`
|
||
|
|
// 签名信息,data 为空时不返回
|
||
|
|
Sign string `json:"sign"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// 返回数据
|
||
|
|
type QueryPayRespData struct {
|
||
|
|
// 支付金额,单位分
|
||
|
|
Amount int64 `json:"amount"`
|
||
|
|
// 应用编号
|
||
|
|
AppID string `json:"appId"`
|
||
|
|
// 渠道订单号
|
||
|
|
ChannelOrderNo string `json:"channelOrderNo"`
|
||
|
|
// 创建时间,13 位时间戳
|
||
|
|
CreatedAt int64 `json:"createdAt"`
|
||
|
|
// 货币代码,固定值 INR
|
||
|
|
Currency string `json:"currency"`
|
||
|
|
// 客户邮箱
|
||
|
|
CustomerEmail string `json:"customerEmail"`
|
||
|
|
// 客户姓名
|
||
|
|
CustomerName string `json:"customerName"`
|
||
|
|
// 客户手机号
|
||
|
|
CustomerPhone string `json:"customerPhone"`
|
||
|
|
// 渠道错误码
|
||
|
|
ErrCode string `json:"errCode"`
|
||
|
|
// 渠道错误描述
|
||
|
|
ErrMsg string `json:"errMsg"`
|
||
|
|
// 商户扩展参数
|
||
|
|
EXTParam string `json:"extParam"`
|
||
|
|
// 商户号
|
||
|
|
MchNo string `json:"mchNo"`
|
||
|
|
// 商户订单号
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
// 代收订单号
|
||
|
|
PayOrderID string `json:"payOrderId"`
|
||
|
|
// 订单状态,1-支付中 2-支付成功 3-支付失败 6-订单关闭
|
||
|
|
State int64 `json:"state"`
|
||
|
|
// 成功时间,13 位时间戳
|
||
|
|
SuccessTime int64 `json:"successTime"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type WithdrawReq struct {
|
||
|
|
// 银行编码,收款账号或银行卡号
|
||
|
|
// 当entryType字段为UPI时,则该字段为收款人的Upi 账号。
|
||
|
|
// 当entryType字段为IMPS时,则该字段为收款人分行的IFSC代码。
|
||
|
|
AccountCode string `json:"accountCode"`
|
||
|
|
// 收款人邮箱
|
||
|
|
AccountEmail string `json:"accountEmail"`
|
||
|
|
// 收款人姓名
|
||
|
|
AccountName string `json:"accountName"`
|
||
|
|
// 收款账号或银行卡号
|
||
|
|
AccountNo string `json:"accountNo"`
|
||
|
|
// 收款人手机号
|
||
|
|
AccountPhone string `json:"accountPhone"`
|
||
|
|
// 代付金额,单位 分
|
||
|
|
Amount int64 `json:"amount"`
|
||
|
|
// 应用编号
|
||
|
|
AppID string `json:"appId"`
|
||
|
|
// 收款账号开户行名称
|
||
|
|
BankName string `json:"bankName"`
|
||
|
|
// 入账方式,IMPS或UPI (目前暂支持IMPS)
|
||
|
|
EntryType string `json:"entryType"`
|
||
|
|
// 商户号
|
||
|
|
MchNo string `json:"mchNo"`
|
||
|
|
// 商户订单号
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
// 异步通知地址,代付完成后会回调该 URL,只有该字段有值才会发起回调。
|
||
|
|
NotifyURL string `json:"notifyUrl"`
|
||
|
|
// 签名,详见签名算法
|
||
|
|
Sign string `json:"sign"`
|
||
|
|
// 备注信息,回调时原样返回
|
||
|
|
TransferDesc string `json:"transferDesc"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type WithdrawResp struct {
|
||
|
|
// 返回状态,详见错误码 0-成功 其他-失败
|
||
|
|
Code int64 `json:"code"`
|
||
|
|
// 返回数据
|
||
|
|
Data WithdrawRespData `json:"data"`
|
||
|
|
// 返回信息,错误原因
|
||
|
|
Msg string `json:"msg"`
|
||
|
|
// 签名信息,data 为空时不返回
|
||
|
|
Sign string `json:"sign"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// 返回数据
|
||
|
|
type WithdrawRespData struct {
|
||
|
|
// 收款人姓名
|
||
|
|
AccountName string `json:"accountName"`
|
||
|
|
// 收款账号
|
||
|
|
AccountNo string `json:"accountNo"`
|
||
|
|
// 到账金额,扣除手续费后的实际到账金额,单位分
|
||
|
|
Amount int64 `json:"amount"`
|
||
|
|
// 交易总金额,含手续费的总交易金额,单位分
|
||
|
|
AmountTo int64 `json:"amountTo"`
|
||
|
|
// 渠道错误码,上游渠道返回的错误码
|
||
|
|
ErrCode string `json:"errCode"`
|
||
|
|
// 渠道错误描述,上游渠道返回的错误描述
|
||
|
|
ErrMsg string `json:"errMsg"`
|
||
|
|
// 手续费,单位分
|
||
|
|
MchFeeAmount int64 `json:"mchFeeAmount"`
|
||
|
|
// 商户订单号
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
// 转账状态,0-订单生成 1-转账中 2-转账成功 3-转账失败 4-转账关闭
|
||
|
|
State int64 `json:"state"`
|
||
|
|
// 代付订单号
|
||
|
|
TransferID string `json:"transferId"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type WithdrawCallbackReq struct {
|
||
|
|
// 收款人邮箱
|
||
|
|
AccountEmail string `json:"accountEmail"`
|
||
|
|
// 收款人姓名
|
||
|
|
AccountName string `json:"accountName"`
|
||
|
|
// 收款账号
|
||
|
|
AccountNo string `json:"accountNo"`
|
||
|
|
// 收款人手机号
|
||
|
|
AccountPhone string `json:"accountPhone"`
|
||
|
|
// 到账金额,不含手续费,单位分
|
||
|
|
Amount int64 `json:"amount"`
|
||
|
|
// 交易总金额,含手续费,单位分
|
||
|
|
AmountTo int64 `json:"amountTo"`
|
||
|
|
// 应用编号
|
||
|
|
AppID string `json:"appId"`
|
||
|
|
// 收款人开户行名称
|
||
|
|
BankName string `json:"bankName"`
|
||
|
|
// UTR
|
||
|
|
ChannelExtra string `json:"channelExtra"`
|
||
|
|
// 渠道订单号
|
||
|
|
ChannelOrderNo string `json:"channelOrderNo"`
|
||
|
|
// 创建时间,13 位时间戳
|
||
|
|
CreatedAt int64 `json:"createdAt"`
|
||
|
|
// 货币代码,固定值 INR
|
||
|
|
Currency string `json:"currency"`
|
||
|
|
// 入账方式,固定值 IMPS
|
||
|
|
EntryType string `json:"entryType"`
|
||
|
|
// 渠道错误码
|
||
|
|
ErrCode string `json:"errCode"`
|
||
|
|
// 渠道错误描述
|
||
|
|
ErrMsg string `json:"errMsg"`
|
||
|
|
// 商户扩展参数
|
||
|
|
ExtraParam string `json:"extraParam"`
|
||
|
|
// 支付接口
|
||
|
|
IfCode string `json:"ifCode"`
|
||
|
|
// 手续费,单位分
|
||
|
|
MchFeeAmount int64 `json:"mchFeeAmount"`
|
||
|
|
// 商户号
|
||
|
|
MchNo string `json:"mchNo"`
|
||
|
|
// 商户转账订单号
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
// 通知请求时间,13 位时间戳
|
||
|
|
ReqTime int64 `json:"reqTime"`
|
||
|
|
// 签名
|
||
|
|
Sign string `json:"sign"`
|
||
|
|
// 转账状态 2-成功 3-失败
|
||
|
|
State int64 `json:"state"`
|
||
|
|
// 成功时间,13 位时间戳
|
||
|
|
SuccessTime int64 `json:"successTime"`
|
||
|
|
// 代付订单号
|
||
|
|
TransferID string `json:"transferId"`
|
||
|
|
// 支付编码
|
||
|
|
WayCode string `json:"wayCode"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type QueryWithdrawReq struct {
|
||
|
|
// 应用编号
|
||
|
|
AppID string `json:"appId"`
|
||
|
|
// 商户号
|
||
|
|
MchNo string `json:"mchNo"`
|
||
|
|
// 商户订单号,与 transferId 二者传一即可
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
// 签名,详见签名算法
|
||
|
|
Sign string `json:"sign"`
|
||
|
|
// 代付订单号,与 mchOrderNo 二者传一即可
|
||
|
|
TransferID string `json:"transferId"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type QueryWithdrawResp struct {
|
||
|
|
// 返回状态,详见错误码 0-成功 其他-失败
|
||
|
|
Code int64 `json:"code"`
|
||
|
|
// 返回数据
|
||
|
|
Data QueryWithdrawRespData `json:"data"`
|
||
|
|
// 返回信息,具体错误原因
|
||
|
|
Msg string `json:"msg"`
|
||
|
|
// 签名信息,data 为空则不返回
|
||
|
|
Sign string `json:"sign"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// 返回数据
|
||
|
|
type QueryWithdrawRespData struct {
|
||
|
|
// 收款人邮箱
|
||
|
|
AccountEmail string `json:"accountEmail"`
|
||
|
|
// 收款人姓名
|
||
|
|
AccountName string `json:"accountName"`
|
||
|
|
// 收款账号
|
||
|
|
AccountNo string `json:"accountNo"`
|
||
|
|
// 收款人手机号
|
||
|
|
AccountPhone string `json:"accountPhone"`
|
||
|
|
// 到账金额,扣除手续费后的实际到账金额,单位分
|
||
|
|
Amount int64 `json:"amount"`
|
||
|
|
// 交易总金额,含手续费,单位分
|
||
|
|
AmountTo int64 `json:"amountTo"`
|
||
|
|
// 应用编号
|
||
|
|
AppID string `json:"appId"`
|
||
|
|
// 收款人开户行名称
|
||
|
|
BankName string `json:"bankName"`
|
||
|
|
// 渠道订单号
|
||
|
|
ChannelOrderNo string `json:"channelOrderNo"`
|
||
|
|
// 创建时间,13 位时间戳
|
||
|
|
CreatedAt int64 `json:"createdAt"`
|
||
|
|
// 货币代码,固定值 INR
|
||
|
|
Currency string `json:"currency"`
|
||
|
|
// 入账方式,固定值 IMPS
|
||
|
|
EntryType string `json:"entryType"`
|
||
|
|
// 渠道错误码
|
||
|
|
ErrCode string `json:"errCode"`
|
||
|
|
// 渠道错误描述
|
||
|
|
ErrMsg string `json:"errMsg"`
|
||
|
|
// 商户扩展参数
|
||
|
|
ExtraParam string `json:"extraParam"`
|
||
|
|
// 手续费,单位分
|
||
|
|
MchFeeAmount int64 `json:"mchFeeAmount"`
|
||
|
|
// 商户号
|
||
|
|
MchNo string `json:"mchNo"`
|
||
|
|
// 商户订单号
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
// 转账状态,0-订单生成 1-转账中 2-转账成功 3-转账失败 4-转账关闭
|
||
|
|
State int64 `json:"state"`
|
||
|
|
// 成功时间,13 位时间戳
|
||
|
|
SuccessTime int64 `json:"successTime"`
|
||
|
|
// 备注信息
|
||
|
|
TransferDesc string `json:"transferDesc"`
|
||
|
|
// 代付订单号
|
||
|
|
TransferID string `json:"transferId"`
|
||
|
|
}
|