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.
209 lines
10 KiB
209 lines
10 KiB
|
2 months ago
|
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"`
|
||
|
|
}
|