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

169 lines
11 KiB

package hongxinpay
const (
baseURL = "https://www.hongxin.online"
payURL = "/sapi/payment/common/payin"
queryPayURL = "/sapi/payment/common/getOrder"
withdrawURL = "/sapi/payment/common/payout"
queryWithdrawURL = "/sapi/payment/common/getOrder"
// appID = "309582512"
mid = "whale"
)
var privateKey = []byte(`-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAowtA/7/Jwcd2yHCX8QAnobLArXyVSWNNTK1AObMCh2XJ7Zql
1iOn4eAZ8ILH+7KNczMaQrA6PZZIKgnOUE8pgY911165gRWvT/XQpeMXvbFJu+aD
ew8Qwfx6jnf7GRYXBKw8HMuQv55qu+AE5kEg+aK9AlR7VEW+RI6oAXVSpgfF8NbU
gExha80PbS77d6RY64p+o0A0XGTsn/mbTJel590qZz06ODJQ9f+49sN3yPSVRQmv
4AgUO8kTHRGx2ZdPFwjyrctoKaj2BEP1dSKLw2kDO4lU/3Hj9hkogSwLuez1ZuXH
AaMn4URV+ZI1fZ05ewWJ8pjtR+PfyTwqOoCXtwIDAQABAoIBAAdftuzaK7HL559h
GD4aF7DEeNpfzBCpoRFatJDne7HL9Ln+SInKywj4LbQm9gx4ItWW9hUWC0xFw7XD
A8W2DtaBOn8nFZS0+lzPbURTZPt7TS5mWoPyRnu/g3t2CbE0wo2/jGhw/HbuHz2o
ABC52Vfw+ENmtr00+kn3ebm3KKnBlZY2/26rGzNpJmm9sUPpF+swTMLFv9iv4IRO
J3QcClGWbQph/qQLJocDNvcdRNbMSQvI6CnnR6hBHRLh1jRiLFGx7A2oPcIxLb8l
gKVkoPBWnoSSuTEJ7TIPeFtaaI21jw+HvlQiHKitTdPAExcR//hXI42WPEw7cK8a
97p0uaECgYEA6oiUvbPu171Olb9CaanK1Hn9dNYNttA+Iwg4wxykMfIQvyqKd4Iy
om0kgZfevEfhaiBBd0CUK6rFz2JfwfhGRij0LitmpM/1fW1Hh9gIUEvg1tDomfXa
rI3GCg06aGr/uVstbh/yR3jKDtW82sLxxiMsKHRVHy62rAfBF5VyTXsCgYEAsfeU
3J0pNYNHYvk6u9Bo5+rLkwlwc1Fxpwd1NJSHdCo/PIcPQrUnMJfoLHWsxNOMGYSo
GJiXW6a2G6dxPRNg3cGqjfXCF8hYnYcoqtvem8Wl+8YSlhd8a+vlDD6AVC71zhbg
9AMqEkL/EjDMIGrFGVEEOrykYF5LhnNuvH9cA/UCgYBu3rQZ3aaJ/CbbKXf2xVpq
CWUkx0/iXR0SqH9U1QRVzA3YoP6mMjlHiXrZfHbB4OURqz/nZPLmlas/N0z3QCvQ
XOnZrZCvVtPBQFixQhHkC4q1YjqjFZMTQU4eUFSNKg/Liuu2BIoe+V3jl2zYqZFr
zhLA6QWYYRffySahxHctYwKBgFiqG50qI5zIkelKeCuYMpvQy6mu2zpoyjHIMmmG
0lFatvSl6UF31VWNaRu1aOUK7FLOV50hcM81qKbwbidanzj8QsfFN/T3WMbqzqUJ
M8fx2bctQJdMji2Kciv+e5r1ZntNxLdtWCmO/VuHujswVpA9X9kPoOluMTyECBib
bzF9AoGAKV4TOTQhwoA9sXDQtaUQqCjKfUjz8g1Hqp7rUWh2CMgvR3af7gVQTMwZ
/V8DLv79cKyHtPpx/iVy6QULpeEzwFkZFEBM6kz6L3bDvnt7o/Js4duF0phZNXqx
pfPIWWzXf20LF9m1Dsr1YAAc5LcWZgrEKBkZx1RdAYF1YHs1Vw4=
-----END RSA PRIVATE KEY-----`)
var privateKeyCS8 = []byte(`-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCjC0D/v8nBx3bIcJfxACehssCtfJVJY01MrUA5swKHZcntmqXWI6fh4Bnwgsf7so1zMxpCsDo9lkgqCc5QTymBj3XXXrmBFa9P9dCl4xe9sUm75oN7DxDB/HqOd/sZFhcErDwcy5C/nmq74ATmQSD5or0CVHtURb5EjqgBdVKmB8Xw1tSATGFrzQ9tLvt3pFjrin6jQDRcZOyf+ZtMl6Xn3SpnPTo4MlD1/7j2w3fI9JVFCa/gCBQ7yRMdEbHZl08XCPKty2gpqPYEQ/V1IovDaQM7iVT/ceP2GSiBLAu57PVm5ccBoyfhRFX5kjV9nTl7BYnymO1H49/JPCo6gJe3AgMBAAECggEAB1+27Norscvnn2EYPhoXsMR42l/MEKmhEVq0kOd7scv0uf5IicrLCPgttCb2DHgi1Zb2FRYLTEXDtcMDxbYO1oE6fycVlLT6XM9tRFNk+3tNLmZag/JGe7+De3YJsTTCjb+MaHD8du4fPagAELnZV/D4Q2a2vTT6Sfd5ubcoqcGVljb/bqsbM2kmab2xQ+kX6zBMwsW/2K/ghE4ndBwKUZZtCmH+pAsmhwM29x1E1sxJC8joKedHqEEdEuHWNGIsUbHsDag9wjEtvyWApWSg8FaehJK5MQntMg94W1pojbWPD4e+VCIcqK1N08ATFxH/+FcjjZY8TDtwrxr3unS5oQKBgQDqiJS9s+7XvU6Vv0JpqcrUef101g220D4jCDjDHKQx8hC/Kop3gjKibSSBl968R+FqIEF3QJQrqsXPYl/B+EZGKPQuK2akz/V9bUeH2AhQS+DW0OiZ9dqsjcYKDTpoav+5Wy1uH/JHeMoO1bzawvHGIywodFUfLrasB8EXlXJNewKBgQCx95TcnSk1g0di+Tq70Gjn6suTCXBzUXGnB3U0lId0Kj88hw9CtScwl+gsdazE04wZhKgYmJdbprYbp3E9E2DdwaqN9cIXyFidhyiq296bxaX7xhKWF3xr6+UMPoBULvXOFuD0AyoSQv8SMMwgasUZUQQ6vKRgXkuGc268f1wD9QKBgG7etBndpon8Jtspd/bFWmoJZSTHT+JdHRKof1TVBFXMDdig/qYyOUeJetl8dsHg5RGrP+dk8uaVqz83TPdAK9Bc6dmtkK9W08FAWLFCEeQLirViOqMVkxNBTh5QVI0qD8uK67YEih75XeOXbNipkWvOEsDpBZhhF9/JJqHEdy1jAoGAWKobnSojnMiR6Up4K5gym9DLqa7bOmjKMcgyaYbSUVq29KXpQXfVVY1pG7Vo5QrsUs5XnSFwzzWopvBuJ1qfOPxCx8U39PdYxurOpQkzx/HZty1Al0yOLYpyK/57mvVme03Et21YKY79W4e6OzBWkD1f2Q+g6W4xPIQIGJtvMX0CgYApXhM5NCHCgD2xcNC1pRCoKMp9SPPyDUeqnutRaHYIyC9Hdp/uBVBMzBn9XwMu/v1wrIe0+nH+JXLpBQul4TPAWRkUQEzqTPovdsO+e3uj8mzh24XSmFk1erGl88hZbNd/bQsX2bUOyvVgABzktxZmCsQoGRnHVF0BgXVgezVXDg==
-----END PRIVATE KEY-----`)
var publicKey = []byte(`-----BEGIN RSA PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAohh2ldSLRmZNU/v/i11prEHU2m7cmDgloHa4Hu1rF6F8BexKWqqeMRw96dB+f7+la12WfND5e3eQWEqJk8ufjHMWudDjQXlon5cdu5hqB8rNiaBeNete4VQ5PRZmggrKH/UQCoVVtN4RO4kEsnOS4nnecnl+euvyKN7Qrn8APp99v0o+usNUWd8gZ+o+K+WT5Q+sdIMbdtDmIxI8AmKr0mlRrCPuzvG+99CWWBoDKuonU/8BG4ADbl+6KmZb7fWbkdlIHrWEQyYYNOIgeBoMJ41KEJIJGwwMkbw8OkF4t20gs4LTjixK5TUSAjbe9L2HAA/X9GbAjS1Owo+AfXNDFwIDAQAB
-----END RSA PUBLIC KEY-----`)
var myPublicKey = []byte(`-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAowtA/7/Jwcd2yHCX8QAnobLArXyVSWNNTK1AObMCh2XJ7Zql1iOn4eAZ8ILH+7KNczMaQrA6PZZIKgnOUE8pgY911165gRWvT/XQpeMXvbFJu+aDew8Qwfx6jnf7GRYXBKw8HMuQv55qu+AE5kEg+aK9AlR7VEW+RI6oAXVSpgfF8NbUgExha80PbS77d6RY64p+o0A0XGTsn/mbTJel590qZz06ODJQ9f+49sN3yPSVRQmv4AgUO8kTHRGx2ZdPFwjyrctoKaj2BEP1dSKLw2kDO4lU/3Hj9hkogSwLuez1ZuXHAaMn4URV+ZI1fZ05ewWJ8pjtR+PfyTwqOoCXtwIDAQAB
-----END PUBLIC KEY-----`)
type PayReq struct {
MerchantId string `json:"merchantId"` // 商户号
MerchantOrderNum string `json:"merchantOrderNum"` // 商户订单号
Amount string `json:"amount"` // 订单金额
CallBackUrl string `json:"callBackUrl"` // 异步回调地址
ReturnUrl string `json:"returnUrl"` // 支付完成返回地址(原生必填)
AccountName string `json:"accountName"` // 账户名(持卡人名称,原生必填)
Phone string `json:"phone"` // 手机号(原生必填)
ProductDesc string `json:"productDesc"` // 商品描述(原生必填)
SignType string `json:"signType"` // 签名方式:如 RSA
Sign string `json:"sign"` // 签名
}
type PayResp struct {
Code string `json:"code"` // 返回code: SUCCESS / FAIL
Msg string `json:"msg"` // 返回消息
MerchantOrderNum string `json:"merchantOrderNum"` // 商户订单号
PlatformOrderNum string `json:"platformOrderNum"` // 平台订单号
PaymentLink string `json:"paymentLink"` // 支付链接
SignType string `json:"signType"` // 签名方式
Sign string `json:"sign"` // 签名
Amount string `json:"amount"` // 订单金额
}
/*
tradeStatus
CREATE: Create a payment link
TIMEOUT: TIMEOUT,
FAIL: Payment failed
SUCCESS: Payment successful
*/
type PayCallbackReq struct {
Code string `json:"code"` // 返回code: SUCCESS / FAIL
Msg string `json:"msg"` // 返回消息
MerchantOrderNum string `json:"merchantOrderNum"` // 商户订单号
PlatformOrderNum string `json:"platformOrderNum"` // 平台订单号
SignType string `json:"signType"` // 签名方式(如:RSA)
Sign string `json:"sign"` // 签名
Amount string `json:"amount"` // 玩家实际充值金额
RealAmount string `json:"realAmount"` // 扣除手续费后系统到账金额
}
type QueryPayReq struct {
MerchantId string `json:"merchantId"` // 商户号
Type string `json:"type,omitempty"` // 0-代收;1-代付;不传默认0
MerchantOrderNum string `json:"merchantOrderNum"` // 商户订单号
PlatformOrderNum string `json:"platformOrderNum"` // 平台订单号
SignType string `json:"signType"` // 签名类型(如:RSA)
Sign string `json:"sign"` // 签名
}
type QueryPayResp struct {
Code int `json:"code"` // 返回code【0-成功】【-1失败】
Msg string `json:"msg"` // 返回消息
MerchantOrderNum string `json:"merchantOrderNum"` // 商户订单号
PlatformOrderNum string `json:"platformOrderNum"` // 平台订单号
Amount string `json:"amount"` // 玩家实际支付金额
Fee string `json:"fee"` // 扣除的手续费
Status int `json:"status"` // 订单状态:0-支付中;1-支付成功;2-支付失败
UTR string `json:"utr"` // UTR 交易号(如适用)
}
// 定义主请求结构体
type WithdrawReq struct {
MerchantId string `json:"merchantId"` // 商户号
MerchantOrderNum string `json:"merchantOrderNum"` // 商户订单号
Amount string `json:"amount"` // 金额(最多两位小数)
CallBackUrl string `json:"callBackUrl"` // 异步回调地址
AccountName string `json:"accountName"` // 账户名(持卡人名称)
BankName string `json:"bankName"` // 银行名称
AccountNumber string `json:"accountNumber"` // 银行卡号
IfscCode string `json:"ifscCode"` // IFSC Code(印度银行识别码)
Phone string `json:"phone"` // 手机号
SignType string `json:"signType"` // 签名方式(如 RSA)
Sign string `json:"sign"` // 签名
}
type WithdrawResp struct {
Code string `json:"code"` // 返回码:SUCCESS 或 FAIL
Msg string `json:"msg"` // 返回消息
MerchantOrderNum string `json:"merchantOrderNum"` // 商户订单号
PlatformOrderNum string `json:"platformOrderNum"` // 平台订单号
SignType string `json:"signType"` // 签名方式
Sign string `json:"sign"` // 签名
Amount string `json:"amount"` // 原始订单金额
}
type WithdrawCallback struct {
Code string `json:"code"` // 返回码:SUCCESS 或 FAIL
Msg string `json:"msg"` // 返回消息
MerchantOrderNum string `json:"merchantOrderNum"` // 商户订单号
PlatformOrderNum string `json:"platformOrderNum"` // 平台订单号
SignType string `json:"signType"` // 签名方式
Sign string `json:"sign"` // 签名
Amount string `json:"amount"` // 玩家实际充值金额
RealAmount string `json:"realAmount"` // 扣除手续费后,系统上分金额
UTR string `json:"utr"` // UTR 码(唯一交易参考码)
}
type QueryWithdrawReq struct {
MerchantId string `json:"merchantId"` // 商户号
Type string `json:"type,omitempty"` // 0-代收;1-代付;不传默认0
MerchantOrderNum string `json:"merchantOrderNum"` // 商户订单号
PlatformOrderNum string `json:"platformOrderNum"` // 平台订单号
SignType string `json:"signType"` // 签名类型(如:RSA)
Sign string `json:"sign"` // 签名
}
type QueryWithdrawResp struct {
Code int `json:"code"` // 返回code【0-成功】【-1失败】
Msg string `json:"msg"` // 返回消息
MerchantOrderNum string `json:"merchantOrderNum"` // 商户订单号
PlatformOrderNum string `json:"platformOrderNum"` // 平台订单号
Amount string `json:"amount"` // 玩家实际支付金额
Fee string `json:"fee"` // 扣除的手续费
Status int `json:"status"` // 订单状态:0-支付中;1-支付成功;2-支付失败
UTR string `json:"utr"` // UTR 交易号(如适用)
}