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

207 lines
11 KiB

package tkpay
const (
baseURL = "https://seabird.world"
payURL = "/api/order/pay/create"
queryPayURL = "/api/order/pay/query"
withdrawURL = "/api/order/withdraw/create/v2"
queryWithdrawURL = "/api/order/withdraw/query"
mid = "202588027"
key = "142ebb6649bc456ab1bc1a02c0e2e5de"
// mid = "202366100"
// key = "c385fe7029344aef826d8112625b2625x"
)
var privateKey = []byte(`-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAqSbw9rY58HuqDZ0tyY2xCwQfRiXUI3EasGAMhLbQiMAMBGSZ
QjcKUXHAnTe2YKJHD/Tn7vQpQtB6/ktuECH60lSVkEph+e6uXgE4nWbRkYur5pko
sEHG/fTE+Upo0E9ID1BgElFQ/3gR9iUgOuEiy2EoyJWNyyCrT6OZB/nKSrl7M7EW
Fr6X84NYZWp1pzKcf8cQIxwzuw9yF3Kwa9L43ANgJItrEqZ4zxeJk0/qJEC20UaE
2AmCTkl/HfY6B6j8mNeHSPSyayVcoDitWHiNeUKE3QL2sXog7G+7pljYFZz6M259
w2r/zm8VkD5XJt3BGtjdZtIN0Ckf3C+ygOMY/wIDAQABAoIBABvsODnZwf2/REak
DDNp5vBlGU6InxjMqnW0HUzpKspwPWuaOaxzDop8RyoM0Nfp4eYx7PmGp6sGZE9H
H1+dZFzFJr1fcgYCjxkohXKCTxUCI/nYjZ1u9kzk04E9dcjxVXllsL5FWyQY64og
/c2KbaZ6HvPhsDr4ZR8r5+6nnuuvpl6R6D5qLq6M+V2N9UnCgS7MvLHDoXBFYY3T
C3KAlRdTJKvYqwVy8Dfe7Kmjix8AHuUHbDOZME+KwSsleAYlSbcmBJND3kKIseCT
qWLOZV5n+XTL6/Y9HQvzXBbLd845iDf6MgLF4LAZkjxSAQU9pPWFEsJ/Cdg5HvPi
/AhsMl0CgYEA7mXbfaN5GJ/Bbkkw745ljYWp98q5nQlVH/NHS8FXO1uTpwtrsqMX
NCIkMN/W0RgeZCuBE42BRhCQrwDAoXtm9IoV8DDWVT26Uf9PfePMI19sqzG3Mld6
i+VRp+L5jV0gOy6x1WG4ifNAPicu/vUCr3m9Bczy6QuCxyPwtPvBdqsCgYEAtaQ3
VCymhqIye2/awazy/e6spdnZt1D2KEa6K5zpbbxAWXa0JpvVmmNa0BqapWSCommc
qlq4amoQrl9tb9s59CuVkkitQODqinBRUOeHIQWbZ86v50ZMB/VTMzg+R4WFSjeF
J/NVsJm8gUFfAqWHfF64kY5ydmNY/9Quken6dv0CgYEAxWUPlfta1LnLFz+BRooY
qlMnxmZUxKOqmXb97MsdKKgOHT3GojaKiv9OCi39mEqpN3YSPZdomBQ1SMKNvegI
+qivu58kiZZABY8qSenp6MwllabnssZeUSHDOAknaxbWDkr+stlkTM1ev1gAgNls
rNFXY0stQyvl0HCA6cqfiVsCgYAPbqREwoZjaeRgGGC9k7QRXvXMIXYd3QMM6PVo
PyyV5iiRcURdA2BifY55n8kDxEZVBiQJVSvV3q0MI49osXd7Bzjt9L7DhFho6qH9
/a29YHyTlTvcqlxLUMyAzYZ9DRsF8zGc80+UcXtSf/tSfj3Ek0ebFj8jT81/7scG
HprpAQKBgFtIDm8Y09pGBw+u+ymFU1iNeDaBYzGhlWTz/PXia0Up14ztK2y8MA7p
vtMdzYtzp/UC3F3MVu3ui8LPB8NQnUkGG4iYEV1wnIn0OQ5DVC1847w/WQY/WKyY
fRi98UBfVpwjH4tu9ytZBOsjqnwFkJAog+UxMMAUNZZo20gwyft1
-----END RSA PRIVATE KEY-----`)
var privateKeyCS8 = []byte(`-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCpJvD2tjnwe6oN
nS3JjbELBB9GJdQjcRqwYAyEttCIwAwEZJlCNwpRccCdN7ZgokcP9Ofu9ClC0Hr+
S24QIfrSVJWQSmH57q5eATidZtGRi6vmmSiwQcb99MT5SmjQT0gPUGASUVD/eBH2
JSA64SLLYSjIlY3LIKtPo5kH+cpKuXszsRYWvpfzg1hlanWnMpx/xxAjHDO7D3IX
crBr0vjcA2Aki2sSpnjPF4mTT+okQLbRRoTYCYJOSX8d9joHqPyY14dI9LJrJVyg
OK1YeI15QoTdAvaxeiDsb7umWNgVnPozbn3Dav/ObxWQPlcm3cEa2N1m0g3QKR/c
L7KA4xj/AgMBAAECggEAG+w4OdnB/b9ERqQMM2nm8GUZToifGMyqdbQdTOkqynA9
a5o5rHMOinxHKgzQ1+nh5jHs+YanqwZkT0cfX51kXMUmvV9yBgKPGSiFcoJPFQIj
+diNnW72TOTTgT11yPFVeWWwvkVbJBjriiD9zYptpnoe8+GwOvhlHyvn7qee66+m
XpHoPmouroz5XY31ScKBLsy8scOhcEVhjdMLcoCVF1Mkq9irBXLwN97sqaOLHwAe
5QdsM5kwT4rBKyV4BiVJtyYEk0PeQoix4JOpYs5lXmf5dMvr9j0dC/NcFst3zjmI
N/oyAsXgsBmSPFIBBT2k9YUSwn8J2Dke8+L8CGwyXQKBgQDuZdt9o3kYn8FuSTDv
jmWNhan3yrmdCVUf80dLwVc7W5OnC2uyoxc0IiQw39bRGB5kK4ETjYFGEJCvAMCh
e2b0ihXwMNZVPbpR/09948wjX2yrMbcyV3qL5VGn4vmNXSA7LrHVYbiJ80A+Jy7+
9QKveb0FzPLpC4LHI/C0+8F2qwKBgQC1pDdULKaGojJ7b9rBrPL97qyl2dm3UPYo
RrornOltvEBZdrQmm9WaY1rQGpqlZIKiaZyqWrhqahCuX21v2zn0K5WSSK1A4OqK
cFFQ54chBZtnzq/nRkwH9VMzOD5HhYVKN4Un81WwmbyBQV8CpYd8XriRjnJ2Y1j/
1C6R6fp2/QKBgQDFZQ+V+1rUucsXP4FGihiqUyfGZlTEo6qZdv3syx0oqA4dPcai
NoqK/04KLf2YSqk3dhI9l2iYFDVIwo296Aj6qK+7nySJlkAFjypJ6enozCWVpuey
xl5RIcM4CSdrFtYOSv6y2WRMzV6/WACA2Wys0VdjSy1DK+XQcIDpyp+JWwKBgA9u
pETChmNp5GAYYL2TtBFe9cwhdh3dAwzo9Wg/LJXmKJFxRF0DYGJ9jnmfyQPERlUG
JAlVK9XerQwjj2ixd3sHOO30vsOEWGjqof39rb1gfJOVO9yqXEtQzIDNhn0NGwXz
MZzzT5Rxe1J/+1J+PcSTR5sWPyNPzX/uxwYemukBAoGAW0gObxjT2kYHD677KYVT
WI14NoFjMaGVZPP89eJrRSnXjO0rbLwwDum+0x3Ni3On9QLcXcxW7e6Lws8Hw1Cd
SQYbiJgRXXCcifQ5DkNULXzjvD9ZBj9YrJh9GL3xQF9WnCMfi273K1kE6yOqfAWQ
kCiD5TEwwBQ1lmjbSDDJ+3U=
-----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 myPublicKeyBase = `MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqSbw9rY58HuqDZ0tyY2xCwQfRiXUI3EasGAMhLbQiMAMBGSZQjcKUXHAnTe2YKJHD/Tn7vQpQtB6/ktuECH60lSVkEph+e6uXgE4nWbRkYur5pkosEHG/fTE+Upo0E9ID1BgElFQ/3gR9iUgOuEiy2EoyJWNyyCrT6OZB/nKSrl7M7EWFr6X84NYZWp1pzKcf8cQIxwzuw9yF3Kwa9L43ANgJItrEqZ4zxeJk0/qJEC20UaE2AmCTkl/HfY6B6j8mNeHSPSyayVcoDitWHiNeUKE3QL2sXog7G+7pljYFZz6M259w2r/zm8VkD5XJt3BGtjdZtIN0Ckf3C+ygOMY/wIDAQAB`
var myPublicKey = []byte(`-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqSbw9rY58HuqDZ0tyY2x
CwQfRiXUI3EasGAMhLbQiMAMBGSZQjcKUXHAnTe2YKJHD/Tn7vQpQtB6/ktuECH6
0lSVkEph+e6uXgE4nWbRkYur5pkosEHG/fTE+Upo0E9ID1BgElFQ/3gR9iUgOuEi
y2EoyJWNyyCrT6OZB/nKSrl7M7EWFr6X84NYZWp1pzKcf8cQIxwzuw9yF3Kwa9L4
3ANgJItrEqZ4zxeJk0/qJEC20UaE2AmCTkl/HfY6B6j8mNeHSPSyayVcoDitWHiN
eUKE3QL2sXog7G+7pljYFZz6M259w2r/zm8VkD5XJt3BGtjdZtIN0Ckf3C+ygOMY
/wIDAQAB
-----END PUBLIC KEY-----`)
type PayReq struct {
MerchantID string `json:"merchant_id"` // 商户编号id
OrderID string `json:"order_id"` // 商户订单号,订单唯一
PayType string `json:"pay_type"` // 默认:1
NotifyUrl string `json:"notify_url"` // 商户接受回调通知地址
ReturnUrl string `json:"return_url"` // 订单成功收银台跳转地址
Sign string `json:"sign"` // 验签值
Amount int64 `json:"amount"` // 订单金额,单位(分)
Currency string `json:"currency"` // 货币类型,默认 INR
Name string `json:"name"` // 姓名,强烈建议真实
Phone string `json:"phone"` // 手机号,强烈建议真实
Email string `json:"email"` // 邮箱,强烈建议真实
}
type PayResp struct {
Code int `json:"code"` // 响应代码
Data struct {
Amount int64 `json:"amount"` // 订单金额(单位:分)
Fee int64 `json:"fee"` // 手续费(单位:分)
ID int64 `json:"id"` // 订单 ID
MerchantID string `json:"merchant_id"` // 商户 ID
OrderID string `json:"order_id"` // 商户订单号
PayUrl string `json:"pay_url"` // 支付链接
} `json:"data"` // 响应数据
Message string `json:"message"` // 响应消息
}
type PayCallbackReq struct {
Code int `json:"code"` // 成功:200 失败:400
Message string `json:"message"` // 成功:SUCCESS 失败:FAILED
Data struct {
ID string `json:"id"` // 平台订单编号id
MerchantID string `json:"merchant_id"` // 商户编号id
Amount string `json:"amount"` // 金额(分)
Fee string `json:"fee"` // 手续费(分)
Sign string `json:"sign"` // 验签值,只有data中的参数参与验签
OrderID string `json:"order_id"` // 商户订单编号id
Currency string `json:"currency"` // 货币
OperatorNum string `json:"operator_num"` // 操作员编号
UTR string `json:"utr"` // 交易流水号
} `json:"data"` // 回调通知数据
}
type WithdrawReq struct {
MerchantID string `json:"merchant_id"` // 商户编号id
OrderID string `json:"order_id"` // 商户订单号,订单唯一
Amount int64 `json:"amount"` // 订单金额,单位(分)
WithdrawType string `json:"withdraw_type"` // 提现类型:1=银行转账,2=UPI转账
NotifyUrl string `json:"notify_url"` // 商户接受回调通知地址
Name string `json:"name"` // 姓名
Phone string `json:"phone"` // 手机号
Email string `json:"email"` // 邮箱
BankCode string `json:"bank_code"` // 银行IFSC,UPI代付可以随便填
Currency string `json:"currency"` // 货币类型,默认为 INR
Sign string `json:"sign"` // 验签值
Account string `json:"account"` // 银行账号或者UPI账号
}
type WithdrawResp struct {
Code int `json:"code"` // 状态码,200 表示提单成功,400 表示提单失败
Message string `json:"message"` // 状态信息,"SUCCESS" 表示成功,"FAIL" 表示失败
Data struct {
ID int `json:"id"` // 平台订单号
MerID string `json:"merId"` // 商户号
OrderID string `json:"orderId"` // 商户订单号
Amount int `json:"amount"` // 金额
Fee int `json:"fee"` // 手续费
} `json:"data"` // 数据字段
}
type WithdrawCallbackReq struct {
Code int `json:"code"` // 成功:200 失败:400
Message string `json:"message"` // 成功:SUCCESS 失败:FAILED
Data struct {
ID string `json:"id"` // 平台订单编号id
PlatformOrderID string `json:"platform_order_id"` // 平台订单编号id
MerchantID string `json:"merchant_id"` // 商户编号id
OrderID string `json:"order_id"` // 商户订单编号id
Amount string `json:"amount"` // 金额(分)
Fee string `json:"fee"` // 手续费(分)
Sign string `json:"sign"` // 验签值,只有data中的参数参与验签
Currency string `json:"currency"` // 货币
UTR string `json:"utr"` // 交易流水号
} `json:"data"` // 回调通知数据
}
type QueryWithdrawReq struct {
MerchantID string `json:"merchant_id"` // 商户编号id,联系运营人员获取
OrderID string `json:"order_id"` // 商户需要查询的订单号
Sign string `json:"sign"` // 验签值
}
type QueryWithdrawResp struct {
Code int `json:"code"` // 成功:200,失败:其他
Message string `json:"message"` // 响应消息,成功:SUCCESS,失败:FAILED
Data struct {
ID string `json:"id"` // 平台单号
MerchantID string `json:"merchant_id"` // 商户编号
OrderID string `json:"order_id"` // 商户订单号
Status int `json:"status"` // 订单状态:2=成功,-2=失败,1=处理中
UTR string `json:"utr,omitempty"` // 成功订单 utr
} `json:"data"` // 回调通知数据
}
type QueryPayReq struct {
MerchantID string `json:"merchant_id"` // 商户编号id,联系运营人员获取
OrderID string `json:"order_id"` // 商户需要查询的订单号
Sign string `json:"sign"` // 验签值
}
type QueryPayResp struct {
Code int `json:"code"` // 成功:200,失败:其他
Message string `json:"message"` // 响应消息,成功:SUCCESS,失败:FAILED
Data struct {
ID string `json:"id"` // 平台单号
MerchantID string `json:"merchant_id"` // 商户编号
OrderID string `json:"order_id"` // 商户订单号
Status int `json:"status"` // 订单状态:1=成功,0=处理中
} `json:"data"` // 回调通知数据
}