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"` // 商户应用ID MchOrderNo string `json:"mchOrderNo"` // 商户生成的唯一订单号 Amount int64 `json:"amount"` // 代收订单金额(单位:卢比,最多保留两位小数) Currency string `json:"currency"` // 货币代码:INR UserName string `json:"userName"` // 付款人姓名(仅字母和空格) Phone string `json:"phone"` // 付款人电话(10位数字) Email string `json:"email"` // 付款人邮箱 Subject string `json:"subject"` // 商品标题 Body string `json:"body"` // 商品描述 ReturnURL string `json:"returnUrl"` // 跳转地址(非必填) // ExtParam string `json:"extParam"` // 商户扩展参数(非必填) RiskControlExtParam string `json:"riskControlExtParam"` // 风控扩展参数(JSON格式字符串,非必填) EncryptPhone string `json:"encryptPhone"` // MD5加密后的真实手机号 EncryptEmail string `json:"encryptEmail"` // MD5加密后的真实邮件地址 DeviceID string `json:"deviceId"` // 用户设备ID PayinTimes int `json:"payinTimes"` // 充值成功次数 Sign string `json:"sign"` // 签名 } type RiskControlData struct { UID string `json:"userId"` RegistrationTime string `json:"registrationTime"` // TotalRechargeAmount int64 `json:"totalRechargeAmount"` // TotalNumberOfRecharges int64 `json:"totalNumberOfRecharges"` // TotalWithdrawalAmount int64 `json:"totalWithdrawalAmount"` // TotalNumberOfWithdrawals int64 `json:"totalNumberOfWithdrawals"` } 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 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 中的数据参与签名) } 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 int64 `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 是 转账备注 // 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"` }