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.
177 lines
8.8 KiB
177 lines
8.8 KiB
|
1 year ago
|
package agropay
|
||
|
|
|
||
|
|
const (
|
||
|
|
baseURL = "https://api.agropay.in"
|
||
|
|
payURL = "/api/pay/unifiedOrder"
|
||
|
|
queryPayURL = "/api/pay/query"
|
||
|
|
withdrawURL = "/api/transferOrder"
|
||
|
|
queryWithdrawURL = "/api/transfer/query"
|
||
|
|
mid = "M1724385307"
|
||
|
|
appID = "66c8081ce4b08979898ba25d"
|
||
|
|
key = "W6zCKP5RcJ6fAimnYgPxE4I8cd0yxzLJ5Vb3N6OLfMNstea7WzxVtgYo1wOJq45nD8xa1dAoNm23PSqfiaIaxkWxjy4XaXSGC3jv49mRCIkqnLOh2uaQRu9zysbon1DO"
|
||
|
|
)
|
||
|
|
|
||
|
|
type PayReq struct {
|
||
|
|
MchNo string `json:"mchNo"`
|
||
|
|
AppId string `json:"appId"`
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
Amount float64 `json:"amount"`
|
||
|
|
Currency string `json:"currency"`
|
||
|
|
UserName string `json:"userName"`
|
||
|
|
Phone string `json:"phone"`
|
||
|
|
Email string `json:"email"`
|
||
|
|
Subject string `json:"subject"`
|
||
|
|
Body string `json:"body"`
|
||
|
|
NotifyUrl string `json:"notifyUrl"`
|
||
|
|
ReturnUrl string `json:"returnUrl"`
|
||
|
|
ExtParam string `json:"extParam"`
|
||
|
|
RiskControlExtParam string `json:"riskControlExtParam"`
|
||
|
|
EncryptPhone string `json:"encryptPhone"`
|
||
|
|
EncryptEmail string `json:"encryptEmail"`
|
||
|
|
DeviceId string `json:"deviceId"`
|
||
|
|
Sign string `json:"sign"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type PayResp struct {
|
||
|
|
Code int `json:"code"`
|
||
|
|
Msg string `json:"msg"`
|
||
|
|
Data struct {
|
||
|
|
PayOrderId string `json:"payOrderId"`
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
State int `json:"state"`
|
||
|
|
PayDataType string `json:"payDataType"`
|
||
|
|
PayData string `json:"payData"`
|
||
|
|
ErrCode string `json:"errCode"`
|
||
|
|
ErrMsg string `json:"errMsg"`
|
||
|
|
} `json:"data"`
|
||
|
|
Sign string `json:"sign"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type PayCallbackReq struct {
|
||
|
|
PayOrderId string `json:"payOrderId"` // 支付平台订单号
|
||
|
|
MchOrderNo string `json:"mchOrderNo"` // 商户订单号
|
||
|
|
MchNo string `json:"mchNo"` // 商户号
|
||
|
|
AppId string `json:"appId"` // 商户应用ID
|
||
|
|
Amount string `json:"amount"` // 订单金额 保留两位小数
|
||
|
|
RealAmount string `json:"realAmount"` // 实际支付金额 state=2 时,必须以这个金额为准,其它状态时,值为 0
|
||
|
|
State int `json:"state"` // 订单状态 1 - 支付中 2 - 支付成功 3 - 支付失败 5 - 已退款
|
||
|
|
ErrCode string `json:"errCode"` // 错误码
|
||
|
|
ErrMsg string `json:"errMsg"` // 错误描述
|
||
|
|
ExtParam string `json:"extParam"` // 商户扩展参数
|
||
|
|
SuccessTime int64 `json:"successTime"` // 订单支付成功时间
|
||
|
|
CreatedAt int64 `json:"createdAt"` // 订单创建时间
|
||
|
|
Sign string `json:"sign"` // 参数签名
|
||
|
|
}
|
||
|
|
|
||
|
|
type WithdrawReq struct {
|
||
|
|
MchNo string `json:"mchNo"` // 商户号 String 是 平台分配的商户号
|
||
|
|
AppId string `json:"appId"` // 商户应用ID String 是 商户应用ID
|
||
|
|
MchOrderNo string `json:"mchOrderNo"` // 商户生成的唯一订单号 String 是 商户保证唯一性
|
||
|
|
Amount string `json:"amount"` // 代付订单金额 BigDecimal 是 单位:卢比,最多保留两位小数
|
||
|
|
Currency string `json:"currency"` // 货币代码 String 是 货币代码:INR
|
||
|
|
EntryType string `json:"entryType"` // 入账方式 String 否 banks,upi,paytm,不传默认 banks(paytm 暂不支持)
|
||
|
|
AccountNo string `json:"accountNo"` // 收款账号 String 是 收款账号, banks: 银行卡号,upi: UPI 账号,paytm:paytm 账号
|
||
|
|
IfscCode string `json:"ifscCode"` // ifscCode String 否 如果入账方式为 banks,这个参数必传
|
||
|
|
AccountName string `json:"accountName"` // 收款人姓名 String 是 收款人姓名,5 - 255 个字符,前后不允许有空格,不支持空格以外的其它特殊字符
|
||
|
|
Phone string `json:"phone"` // 收款人电话 String 是 收款人电话。十位数字,不用加印度的国际电话区号 91。
|
||
|
|
Email string `json:"email"` // 邮箱 String 是 收款人邮箱
|
||
|
|
Address string `json:"address"` // 收款人地址 String 是 收款人地址
|
||
|
|
BankName string `json:"bankName"` // 开户行名称 String 否 开户行名称
|
||
|
|
ClientIp string `json:"clientIp"` // 客户端 IP String 否 客户端 IP
|
||
|
|
TransferDesc string `json:"transferDesc"` // 转账备注 String 是 转账备注
|
||
|
|
NotifyUrl string `json:"notifyUrl"` // 异步通知地址 String 是 异步通知地址,只支持 https
|
||
|
|
ChannelExtra string `json:"channelExtra"` // 特定渠道发起额外参数 String 否
|
||
|
|
ExtParam string `json:"extParam"` // 商户扩展参数 String 否
|
||
|
|
EncryptPhone string `json:"encryptPhone"` // MD5 加密后的真实手机号 String 是 加密方法请参考签名文档中的 MD5 加密方法,用于黑名单校验
|
||
|
|
EncryptEmail string `json:"encryptEmail"` // MD5 加密后的真实邮件地址 String 是 加密方法请参考签名文档中的 MD5 加密方法,用于黑名单校验
|
||
|
|
DeviceId string `json:"deviceId"` // 用户设备 ID String 是 设备 ID:用来标识用户当前使用的设备,要求最好是唯一、并且与用户账号无关的。
|
||
|
|
Sign string `json:"sign"` // 签名 String 是 详见签名算法
|
||
|
|
}
|
||
|
|
|
||
|
|
type WithdrawResp struct {
|
||
|
|
Code int `json:"code"`
|
||
|
|
Msg string `json:"msg"`
|
||
|
|
Data struct {
|
||
|
|
TransferId string `json:"transferId"`
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
State int `json:"state"`
|
||
|
|
ErrCode string `json:"errCode"`
|
||
|
|
ErrMsg string `json:"errMsg"`
|
||
|
|
} `json:"data"`
|
||
|
|
Sign string `json:"sign"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type WithdrawCallbackReq struct {
|
||
|
|
TransferId string `json:"transferId"`
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
MchNo string `json:"mchNo"`
|
||
|
|
AppId string `json:"appId"`
|
||
|
|
Amount string `json:"amount"`
|
||
|
|
Utr string `json:"utr"`
|
||
|
|
State byte `json:"state"`
|
||
|
|
ErrCode string `json:"errCode"`
|
||
|
|
ErrMsg string `json:"errMsg"`
|
||
|
|
ExtParam string `json:"extParam"`
|
||
|
|
SuccessTime int64 `json:"successTime"`
|
||
|
|
CreatedAt int64 `json:"createdAt"`
|
||
|
|
Sign string `json:"sign"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type QueryWithdrawReq struct {
|
||
|
|
MchNo string `json:"mchNo"` // 商户号 String 是 平台分配的商户号
|
||
|
|
AppId string `json:"appId"` // 商户应用ID String 是 商户应用ID
|
||
|
|
MchOrderNo string `json:"mchOrderNo"` // 商户生成的唯一订单号 String 否 商户订单号与平台代付订单号必须传一个
|
||
|
|
TransferId string `json:"transferId"` // 平台代付订单号 String 否 商户订单号与平台代付订单号必须传一个
|
||
|
|
Sign string `json:"sign"` // 签名 String 是 详见签名算法
|
||
|
|
}
|
||
|
|
|
||
|
|
type QueryWithdrawResp struct {
|
||
|
|
Code int `json:"code"`
|
||
|
|
Msg string `json:"msg"`
|
||
|
|
Data struct {
|
||
|
|
TransferId string `json:"transferId"`
|
||
|
|
MchOrderNo string `json:"mchOrderNo"`
|
||
|
|
MchNo string `json:"mchNo"`
|
||
|
|
AppId string `json:"appId"`
|
||
|
|
Amount string `json:"amount"`
|
||
|
|
Utr string `json:"utr"`
|
||
|
|
State int `json:"state"`
|
||
|
|
ErrCode string `json:"errCode"`
|
||
|
|
ErrMsg string `json:"errMsg"`
|
||
|
|
ExtParam string `json:"extParam"`
|
||
|
|
SuccessTime int64 `json:"successTime"`
|
||
|
|
CreatedAt int64 `json:"createdAt"`
|
||
|
|
Sign string `json:"sign"`
|
||
|
|
} `json:"data"`
|
||
|
|
Sign string `json:"sign"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type QueryPayReq struct {
|
||
|
|
MchNo string `json:"mchNo"` // 商户号 String 是 平台分配的商户号
|
||
|
|
AppId string `json:"appId"` // 商户应用ID String 是 商户应用ID
|
||
|
|
MchOrderNo string `json:"mchOrderNo"` // 商户生成的唯一订单号 String 否 商户订单号与平台订单号必须传一个
|
||
|
|
PayOrderId string `json:"payOrderId"` // 平台订单号 String 否 商户订单号与平台订单号必须传一个
|
||
|
|
Sign string `json:"sign"` // 签名 String 是 详见签名算法
|
||
|
|
}
|
||
|
|
|
||
|
|
type QueryPayResp struct {
|
||
|
|
Code int // 返回码 2000:成功(仅代表请求成功,不代表业务成功);2010:系统异常;2011:参数有误;2012:数据库服务异常;9999:自定义业务异常
|
||
|
|
Msg string // 业务响应信息 成功:success
|
||
|
|
Data struct {
|
||
|
|
PayOrderId string // 支付平台订单号
|
||
|
|
MchOrderNo string // 商户订单号
|
||
|
|
MchNo string // 商户号
|
||
|
|
AppId string // 商户应用ID
|
||
|
|
Amount string // 支付金额 保留两位小数
|
||
|
|
RealAmount string // 实际支付金额 state=2 时,必须以这个金额为准,其它状态时,值为 0
|
||
|
|
State int // 订单状态 1 - 支付中 2 - 支付成功 3 - 支付失败 5 - 已退款
|
||
|
|
ErrCode string // 错误码
|
||
|
|
ErrMsg string // 错误描述
|
||
|
|
ExtParam string // 商户扩展参数
|
||
|
|
SuccessTime int64 // 订单支付成功时间
|
||
|
|
CreatedAt int64 // 订单创建时间
|
||
|
|
Sign string // 参数签名
|
||
|
|
} // 数据对象 成功时返回
|
||
|
|
Sign string // 签名 详见签名算法(data 中的数据参与签名)
|
||
|
|
}
|