印度包网
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.
 
 
 

208 lines
10 KiB

package fpay
const (
baseURL = "https://gpay.newgred.in"
payURL = "/api/payin.php"
queryPayURL = "/api/payinQuery.php"
withdrawURL = "/api/payout.php"
queryWithdrawURL = "/api/payoutQuery.php"
// appID = "309582512"
mid = "100034"
)
var privateKey = []byte(`-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAww4FgSWmlwspU8UwCWDdmXGaycTKIO0Ty1w8CupWS7/f6cKI
WL9AXE4ovW3LZ7eTC6H07Bx5ONOpY6Dmd93tCr6Sq640zKg1ZV6tjzLA5FbNDE7P
XqDKBXVs7xD40gb/sEBqYg89rf0ZrCYus4Y5yy2QoMvGxLnaKHTevf/ToSnCuRRa
oJK/EvfKHnf8lZv5SG+ehIj4ECNxeV0XspDmXwuEiY7c68bKu2zku9Y2TpUg8DWx
aiYCtWdspGqW+OAZib7uGn9Ou6BTNWtHuYD9lT9X+KCIf9u8WivikjRLLSLrOWbM
COvq31olu7Jla15hY2Hn1BAfodo4XA8shel6mQIDAQABAoIBAB3r+TkyEuepzSmu
HqvZobTnwgSAvTcm1zoDiKxt/VX6dblw36SplhBy5voELUdYWGTY7+8GgSwQADSp
2qD5uOLEkFBo1W2twh8uUnacpQ2CKUthjZspFESZGmBkHJ9vdmrNvuQTDXWy1Wzc
oJ5mkVgTQdQA3pmQHyDEqOTBqW/X6RHUelldW8hjIUpFQqTqwvoeBuLeoWUSVc+3
1/1nKCbdcVk2xEDjCAhLhTJ8rkxEVezeQ6IFY0vjGNSaopD2gWoP/QHAak6BzMQX
YEwEojMYxMHQvXQCXXK7xk6Epv3spMpT2O4DtMUwlAHG3T1m3lL+FiBeoBeC8e6k
+A9PhnkCgYEA5infKZXEfntsa/pHcf0q1DE/qI92b2wU94R6XzKAWEjj9Bp9KnQ3
jJ7WKRV/AR+X9n5QEYHU/Ks1Nl2dCuZ2btNhu4cO0jquXmMfBx4Jju+vMDNOw4RY
nG0QO2RcFxJ+TtDjnpyQ/dz8kYNXTu82VTyhq8dczm6uowkytf7UHQ0CgYEA2PM9
sSEEfIPC4xCUy17r9ZdLo8nSXv1dZ4G4xs365Y3U9Ex8hLrt7oQv0kYuCc6uelUR
MXA6lPlD9GjPh2wbaDZFYx3TARHu4YkSu4lMxl0RjZ+r2nrzRKr8VOKtMemIXb4e
O4Ver+yfk3j/te6tTmyjdR1y/ybyWttJLOReKL0CgYAH5RfKjWCYFhO6AHPC7TQy
4x2T4pflaoetldW8vja40IdBMEdq1WGyaSBfeGVK3JKR2fNVJmbv48+Hdd6VKSKW
2plXnWJcw7aHdk7yJ42cYYxY0um4uylu9C7CWsbt46yBd5jXL/epPZNMSn0MMBhl
BBdnlQcR7an/3ajnpT4RYQKBgQDMV08kJxUysmg9tsBvTViyWW7FNrMPBVWUyHph
xmErFgwejmw6GFdC8P6Z78AtPJ7aWoV3K14CM0XuT0opI4os/fEdClpUB7AYfiNG
wGuv6rk9y8byYhv/8Yz55wd6m5v1r7yKE3S7/wPOw4kWs1hJJcpP5Q0LhoN/UEv8
HJ0TgQKBgQCgYeElMjRc30IUSV2HJjGbzAxsqF2Meli+QCskRb0AsjECFiDTMv5U
PMPJl2MNVJmxsbJVYEuqP70i8EEXJjdnub3LCRsLAbBEkU6lQN5HAaMSkbPsJY0x
hd1WOyi9xPI/tq4RBqxf1xQKProu+FIXp9hGD8+OKqXXsKOZoDM7tg==
-----END RSA PRIVATE KEY-----`)
var privateKeyCS8 = []byte(`-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDDDgWBJaaXCylT
xTAJYN2ZcZrJxMog7RPLXDwK6lZLv9/pwohYv0BcTii9bctnt5MLofTsHHk406lj
oOZ33e0KvpKrrjTMqDVlXq2PMsDkVs0MTs9eoMoFdWzvEPjSBv+wQGpiDz2t/Rms
Ji6zhjnLLZCgy8bEudoodN69/9OhKcK5FFqgkr8S98oed/yVm/lIb56EiPgQI3F5
XReykOZfC4SJjtzrxsq7bOS71jZOlSDwNbFqJgK1Z2ykapb44BmJvu4af067oFM1
a0e5gP2VP1f4oIh/27xaK+KSNEstIus5ZswI6+rfWiW7smVrXmFjYefUEB+h2jhc
DyyF6XqZAgMBAAECggEAHev5OTIS56nNKa4eq9mhtOfCBIC9NybXOgOIrG39Vfp1
uXDfpKmWEHLm+gQtR1hYZNjv7waBLBAANKnaoPm44sSQUGjVba3CHy5SdpylDYIp
S2GNmykURJkaYGQcn292as2+5BMNdbLVbNygnmaRWBNB1ADemZAfIMSo5MGpb9fp
EdR6WV1byGMhSkVCpOrC+h4G4t6hZRJVz7fX/WcoJt1xWTbEQOMICEuFMnyuTERV
7N5DogVjS+MY1JqikPaBag/9AcBqToHMxBdgTASiMxjEwdC9dAJdcrvGToSm/eyk
ylPY7gO0xTCUAcbdPWbeUv4WIF6gF4Lx7qT4D0+GeQKBgQDmKd8plcR+e2xr+kdx
/SrUMT+oj3ZvbBT3hHpfMoBYSOP0Gn0qdDeMntYpFX8BH5f2flARgdT8qzU2XZ0K
5nZu02G7hw7SOq5eYx8HHgmO768wM07DhFicbRA7ZFwXEn5O0OOenJD93PyRg1dO
7zZVPKGrx1zObq6jCTK1/tQdDQKBgQDY8z2xIQR8g8LjEJTLXuv1l0ujydJe/V1n
gbjGzfrljdT0THyEuu3uhC/SRi4Jzq56VRExcDqU+UP0aM+HbBtoNkVjHdMBEe7h
iRK7iUzGXRGNn6vaevNEqvxU4q0x6Yhdvh47hV6v7J+TeP+17q1ObKN1HXL/JvJa
20ks5F4ovQKBgAflF8qNYJgWE7oAc8LtNDLjHZPil+Vqh62V1by+NrjQh0EwR2rV
YbJpIF94ZUrckpHZ81UmZu/jz4d13pUpIpbamVedYlzDtod2TvInjZxhjFjS6bi7
KW70LsJaxu3jrIF3mNcv96k9k0xKfQwwGGUEF2eVBxHtqf/dqOelPhFhAoGBAMxX
TyQnFTKyaD22wG9NWLJZbsU2sw8FVZTIemHGYSsWDB6ObDoYV0Lw/pnvwC08ntpa
hXcrXgIzRe5PSikjiiz98R0KWlQHsBh+I0bAa6/quT3LxvJiG//xjPnnB3qbm/Wv
vIoTdLv/A87DiRazWEklyk/lDQuGg39QS/wcnROBAoGBAKBh4SUyNFzfQhRJXYcm
MZvMDGyoXYx6WL5AKyRFvQCyMQIWINMy/lQ8w8mXYw1UmbGxslVgS6o/vSLwQRcm
N2e5vcsJGwsBsESRTqVA3kcBoxKRs+wljTGF3VY7KL3E8j+2rhEGrF/XFAo+ui74
Uhen2EYPz44qpdewo5mgMzu2
-----END PRIVATE KEY-----`)
var publicKey = []byte(`-----BEGIN RSA PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu3xCJwWBI7h0+nTkJhlw4nX+HGRYTFqnxmhC9s3pvukZwOIxDfwSHDZGpqe9jwfFDNMk9UguTZJPRrEoTSdmjMc8wN1tjk8XsUvtGOmWLmZkv84nR4zCbo2OzjbCAf3cMr3JDi8EGweHdia2tQGaX2enH3fabDhiSigewTwo96uj7ycFD6+7NMSoyyTko4lv+2QNzHs8ciPq0ep0V3tl/QM5fawfXLUA1f387+0/4gA7BN6kxerOCT0/L5/+WBu3j5f86pdV03i0kE4GU+MYnc5vVCSM4D3WcT98GJX6dkwuMiCNv4fzvLdkI2RLf0GfwF4jLyBBLyB1pcEMffNiqwIDAQAB
-----END RSA PUBLIC KEY-----`)
var myPublicKey = []byte(`-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAww4FgSWmlwspU8UwCWDd
mXGaycTKIO0Ty1w8CupWS7/f6cKIWL9AXE4ovW3LZ7eTC6H07Bx5ONOpY6Dmd93t
Cr6Sq640zKg1ZV6tjzLA5FbNDE7PXqDKBXVs7xD40gb/sEBqYg89rf0ZrCYus4Y5
yy2QoMvGxLnaKHTevf/ToSnCuRRaoJK/EvfKHnf8lZv5SG+ehIj4ECNxeV0XspDm
XwuEiY7c68bKu2zku9Y2TpUg8DWxaiYCtWdspGqW+OAZib7uGn9Ou6BTNWtHuYD9
lT9X+KCIf9u8WivikjRLLSLrOWbMCOvq31olu7Jla15hY2Hn1BAfodo4XA8shel6
mQIDAQAB
-----END PUBLIC KEY-----`)
type PayReq struct {
MerchantId string `json:"merchantId"` // 商户号
MerchantOrderId string `json:"merchantOrderId"` // 商户订单号
Amount int64 `json:"amount"` // 付款金额, 不含小数点,单位INR
UserId string `json:"userId"` // 接入方玩家id
Email string `json:"email"` // 邮箱
Mobile string `json:"mobile"` // 不带区号的印度手机号
Extra string `json:"extra,omitempty"` // 透传数据
NotifyUrl string `json:"notifyUrl"` // 回调地址
Sign string `json:"sign"` // 签名
}
type PayResp struct {
Ret int `json:"ret"` // 返回码,200 表示成功
Msg string `json:"msg"` // 返回信息,SUCCESS 表示成功
Data struct {
MerchantId string `json:"merchantId"` // 商户号
OrderId string `json:"orderId"` // 系统生成订单号
PayLink string `json:"payLink"` // 支付链接
MerchantOrderId string `json:"merchantOrderId"` // 商户订单号
} `json:"data"` // 数据部分
}
/*
tradeStatus
CREATE: Create a payment link
TIMEOUT: TIMEOUT,
FAIL: Payment failed
SUCCESS: Payment successful
*/
type PayCallbackReq struct {
MerchantId string `json:"merchantId"` // 商户号
OrderId string `json:"orderId"` // 系统生成订单号
PayState int `json:"payState"` // 代收状态 0:成功 1:失败 2:代收中
MerchantOrderId string `json:"merchantOrderId"` // 商户订单号
SuccessTime string `json:"successTime"` // 支付成功时间
Amount int `json:"amount"` // 支付金额
Extra string `json:"extra"` // 透传数据
PayMsg string `json:"payMsg"` // 结果说明
Sign string `json:"sign"` // 签名
}
type QueryPayReq struct {
MerchantId string `json:"merchantId"` // 商户号
OrderId string `json:"orderId"` // 系统生成订单号
Sign string `json:"sign"` // 签名
}
type QueryPayResp struct {
Ret int `json:"ret"` // 返回码
Msg string `json:"msg"` // 返回消息
Data struct {
MerchantId string `json:"merchantId"` // 商户号
OrderId string `json:"orderId"` // 系统生成订单号
MerchantOrderId string `json:"merchantOrderId"` // 商户订单号
Amount int `json:"amount"` // 代付金额
SuccessTime int `json:"successTime"` // 支付成功时间
PayState int `json:"payState"` // 代收状态 0:成功, 1:失败, 2代收中
Extra string `json:"extra"` // 透传字段
} `json:"data"`
}
// 定义主请求结构体
type WithdrawReq struct {
MerchantId string `json:"merchantId"` // 商户号
MerchantOrderId string `json:"merchantOrderId"` // 商户订单号
Amount int64 `json:"amount"` // 付款金额, 不含小数点,单位INR
UserId string `json:"userId"` // 接入方玩家id
PayType int `json:"payType"` // 付款类型:默认填4, 4-IMPS
Account string `json:"account"` // 收款账号
AccountOwner string `json:"accountOwner"` // 银行持卡人(收款人)姓名, 至少三个英文字母
BankCode string `json:"bankCode"` // 印度银行ifsc号码
Email string `json:"email"` // 收款人邮箱
Mobile string `json:"mobile"` // 收款人不带区号的手机号
ClientIp string `json:"clientIp"` // 玩家IP
NotifyUrl string `json:"notifyUrl"` // 结果通知地址
Sign string `json:"sign"` // 签名
}
type WithdrawResp struct {
Ret int `json:"ret"` // 状态码,200表示成功
Msg string `json:"msg"` // 提示信息
Data struct {
MerchantId string `json:"merchantId"` // 商户号
OrderId string `json:"orderId"` // 系统生成订单号
MerchantOrderId string `json:"merchantOrderId"` // 商户订单号
Account string `json:"account"` // 收款账号
Amount int `json:"amount"` // 付款金额,单位INR
MerchantDeduct int `json:"merchantDeduct"` // 税费
} `json:"data"`
}
type WithdrawCallback struct {
MerchantId string `json:"merchantId"` // 商户号
OrderId string `json:"orderId"` // 系统生成订单号
MerchantOrderId string `json:"merchantOrderId"` // 商户订单号
Amount int `json:"amount"` // 代付金额
SuccessTime string `json:"successTime"` // 订单处理时间
Account string `json:"account"` // 收款方
PayState int `json:"payState"` // 订单状态,0:成功,1:失败,2:代付中
MerchantDeduct float64 `json:"merchantDeduct"` // 税费
PayMsg string `json:"payMsg"` // 结果说明
Utr string `json:"utr"`
Sign string `json:"sign"` // 签名
}
type QueryWithdrawReq struct {
MerchantId string `json:"merchantId"` // 商户号
MerchantOrderId string `json:"merchantOrderId"` // 商户订单号
Sign string `json:"sign"` // 签名
}
type QueryWithdrawResp struct {
Ret int `json:"ret"` // 返回状态码,200为成功
Msg string `json:"msg"` // 返回信息
Data struct {
MerchantId string `json:"merchantId"` // 商户号
OrderId string `json:"orderId"` // 系统生成订单号
MerchantOrderId string `json:"merchantOrderId"` // 商户订单号
Amount int `json:"amount"` // 代付金额
SuccessTime int `json:"successTime"` // 支付成功时间
Account string `json:"account"` // 收款方账户
PayState int `json:"payState"` // 订单状态 0:成功, 1:失败, 2:代付中
MerchantDeduct float64 `json:"merchantDeduct"` // 税费
} `json:"data"`
}