|
|
|
|
package moonpay2
|
|
|
|
|
|
|
|
|
|
const (
|
|
|
|
|
payURL = "https://api.newbhh.com/v1/pay/payin"
|
|
|
|
|
withdrawURL = "https://api.newbhh.com/v1/payout/withdraw"
|
|
|
|
|
queryWithdrawURL = "https://api.newbhh.com/v1/pay/check_payout_order"
|
|
|
|
|
queryPayURL = "https://api.newbhh.com/v1/pay/check_payin_order"
|
|
|
|
|
signKey = "0b513f511e35dd5c3e1f6a8cdbc8db04"
|
|
|
|
|
mid = "190"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var privateKeyPkCs8 = []byte(`-----BEGIN RSA PRIVATE KEY-----
|
|
|
|
|
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAJpzh86YFNMBwgJehf9zOukX+4h1qvwEq2l0Vh3YQzwhGnT7xBSMG6uhXafnSSUvAa0MSFnZfvz37WsavL8d5BgI0+7mZT/CHGL6jKJul5go3thQAuNW3odBfhCy+zOMV7BSt6PgY580cuNesMCYGQGPodMI+a6nQ6jMWp+xMeW9AgMBAAECgYBZ3tupFMkZNq6jHkkuKOigdToBXyaM2lK7W9w4JXyJ4mE4rL6djiETryOF7YicQEvjW4BF985yd/kIF1i4hDYR9C0UR3V+gh++1h0ko1KpzgMlGxef2BNhYjFxy7gKat2uYic91+PeHaqfYkR50FK8cgHEeoYP+r0+19nJrtx56QJBAOaa2wdSo16xUz8MQqNkQ8rskE0ADAbDnOnN5yOY7QSFBV/Yc8JQr0tTUbgTf2xEVtPD3mJqqnlDAjb5KK1zwhsCQQCrdcZpRYKnEmMxBbgz+/32xaUHIMn4GccdW8qTCXWY4xtNKp39tHuZ9OgLGRJck/yyWKfdCgL6uBj7Y8pxCDUHAkEAnr4W7JGMeJDk10/fR46rxDLYmsjffoCFscTVygFpl2TicDoWZbsZEGdIp8h0PNlGU/xPR7xZoaPpEGKwB8bZ5QJAX00wQlUjgM+kmJvwPdzD1YUX7DVabW+OkA/0MfQhDCC3jRWyCVFnHjTVQU3nOdP7sfm7HA4zh74KDLjzzg3cwwJBAOaCNF7gkvFTdcJgnplBqSlJjPJuGcKcoD6obVD1iSLFa70y9OrAErFLeOrME5bkWuD7FKjajytV7vXmGfQLtAM=-----END RSA PRIVATE KEY-----`)
|
|
|
|
|
var privateKey = []byte(`-----BEGIN RSA PRIVATE KEY-----
|
|
|
|
|
MIICXQIBAAKBgQCac4fOmBTTAcICXoX/czrpF/uIdar8BKtpdFYd2EM8IRp0+8QU
|
|
|
|
|
jBuroV2n50klLwGtDEhZ2X789+1rGry/HeQYCNPu5mU/whxi+oyibpeYKN7YUALj
|
|
|
|
|
Vt6HQX4QsvszjFewUrej4GOfNHLjXrDAmBkBj6HTCPmup0OozFqfsTHlvQIDAQAB
|
|
|
|
|
AoGAWd7bqRTJGTauox5JLijooHU6AV8mjNpSu1vcOCV8ieJhOKy+nY4hE68jhe2I
|
|
|
|
|
nEBL41uARffOcnf5CBdYuIQ2EfQtFEd1foIfvtYdJKNSqc4DJRsXn9gTYWIxccu4
|
|
|
|
|
CmrdrmInPdfj3h2qn2JEedBSvHIBxHqGD/q9PtfZya7ceekCQQDmmtsHUqNesVM/
|
|
|
|
|
DEKjZEPK7JBNAAwGw5zpzecjmO0EhQVf2HPCUK9LU1G4E39sRFbTw95iaqp5QwI2
|
|
|
|
|
+Sitc8IbAkEAq3XGaUWCpxJjMQW4M/v99sWlByDJ+BnHHVvKkwl1mOMbTSqd/bR7
|
|
|
|
|
mfToCxkSXJP8slin3QoC+rgY+2PKcQg1BwJBAJ6+FuyRjHiQ5NdP30eOq8Qy2JrI
|
|
|
|
|
336AhbHE1coBaZdk4nA6FmW7GRBnSKfIdDzZRlP8T0e8WaGj6RBisAfG2eUCQF9N
|
|
|
|
|
MEJVI4DPpJib8D3cw9WFF+w1Wm1vjpAP9DH0IQwgt40VsglRZx401UFN5znT+7H5
|
|
|
|
|
uxwOM4e+Cgy4884N3MMCQQDmgjRe4JLxU3XCYJ6ZQakpSYzybhnCnKA+qG1Q9Yki
|
|
|
|
|
xWu9MvTqwBKxS3jqzBOW5Frg+xSo2o8rVe715hn0C7QD
|
|
|
|
|
-----END RSA PRIVATE KEY-----
|
|
|
|
|
`)
|
|
|
|
|
var publicKey = []byte(`-----BEGIN PUBLIC KEY-----
|
|
|
|
|
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpsjT2KM439eEZteEsejLVS8phCvPbFb93UvS6KdAPt+381Bvdbff3AejQs5n3+089DnG5e8n53udNxftd+OEnSO3bMmYX/ylN9ul0oXpybUM1wXAfzfXmWeb5rIelSgxy8RoGQGP9o/iOr3n+eFJdvzoYTZvGDrcEjPGIZP9N4wIDAQAB
|
|
|
|
|
-----END PUBLIC KEY-----`)
|
|
|
|
|
var myPublicKey = []byte(`-----BEGIN PUBLIC KEY-----
|
|
|
|
|
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCac4fOmBTTAcICXoX/czrpF/uIdar8BKtpdFYd2EM8IRp0+8QUjBuroV2n50klLwGtDEhZ2X789+1rGry/HeQYCNPu5mU/whxi+oyibpeYKN7YUALjVt6HQX4QsvszjFewUrej4GOfNHLjXrDAmBkBj6HTCPmup0OozFqfsTHlvQIDAQAB
|
|
|
|
|
-----END PUBLIC KEY-----`)
|
|
|
|
|
|
|
|
|
|
type PayReq struct {
|
|
|
|
|
MerchantID string `json:"merchant_id"`
|
|
|
|
|
OrderNumber string `json:"order_number"`
|
|
|
|
|
OrderAmount string `json:"order_amount"`
|
|
|
|
|
Email string `json:"email"`
|
|
|
|
|
Name string `json:"name"`
|
|
|
|
|
Phone string `json:"phone"`
|
|
|
|
|
Deeplink string `json:"deeplink"`
|
|
|
|
|
NotifyURL string `json:"notify_url"`
|
|
|
|
|
Sign string `json:"sign"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type PayResp struct {
|
|
|
|
|
Code int `json:"code"` // code=100时 为响应成功
|
|
|
|
|
Data struct {
|
|
|
|
|
PayURL string `json:"pay_url"`
|
|
|
|
|
PlatNumber string `json:"plat_number"`
|
|
|
|
|
OrderNumber string `json:"order_number"`
|
|
|
|
|
OrderAmount string `json:"order_amount"`
|
|
|
|
|
} `json:"data"`
|
|
|
|
|
Msg string `json:"msg"`
|
|
|
|
|
Time int64 `json:"time"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type PayCallbackReq struct {
|
|
|
|
|
Status int `json:"status"` // 状态1=处理中,3=失败,4=成功
|
|
|
|
|
Message string `json:"message"`
|
|
|
|
|
Money string `json:"money"`
|
|
|
|
|
PlatNumber string `json:"plat_number"`
|
|
|
|
|
OrderNumber string `json:"order_number"`
|
|
|
|
|
Sign string `json:"sign"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type QueryPayReq struct {
|
|
|
|
|
MerchantID string `json:"merchant_id"`
|
|
|
|
|
OrderList []string `json:"order_list"`
|
|
|
|
|
Sign string `json:"sign"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type QueryPayResp struct {
|
|
|
|
|
Code int `json:"code"`
|
|
|
|
|
Data []QueryPayData `json:"data"`
|
|
|
|
|
Msg string `json:"msg"`
|
|
|
|
|
Time int64 `json:"time"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type QueryPayData struct {
|
|
|
|
|
Status int `json:"status"` // 状态:0是待处理,1=处理中,3=失败,4=成功(代付订单状态以此为准吗,切勿以code值做订单状态判断)
|
|
|
|
|
OrderNumber string `json:"order_number"`
|
|
|
|
|
Utr string `json:"utr"`
|
|
|
|
|
OrderAmount string `json:"order_amount"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type WithdrawReq struct {
|
|
|
|
|
MerchantID string `json:"merchant_id"`
|
|
|
|
|
OrderNumber string `json:"order_number"`
|
|
|
|
|
OrderAmount string `json:"order_amount"`
|
|
|
|
|
Type string `json:"type"`
|
|
|
|
|
VPA string `json:"vpa"`
|
|
|
|
|
Email string `json:"email"`
|
|
|
|
|
Account string `json:"account"`
|
|
|
|
|
Name string `json:"name"`
|
|
|
|
|
IFSC string `json:"ifsc"`
|
|
|
|
|
Phone string `json:"phone"`
|
|
|
|
|
NotifyURL string `json:"notify_url"`
|
|
|
|
|
Sign string `json:"sign"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type WithdrawResp struct {
|
|
|
|
|
Code int `json:"code"` // code=100即为成功;其他值为失败(若万一出现无返回值的情况,请将您的订单状态转换为处理中,以免引起不必要的损失)
|
|
|
|
|
Data interface{} `json:"data"`
|
|
|
|
|
Msg string `json:"msg"`
|
|
|
|
|
Time int `json:"time"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type WithdrawData struct {
|
|
|
|
|
Status int `json:"status"`
|
|
|
|
|
PlatNumber string `json:"plat_number"`
|
|
|
|
|
OrderNumber string `json:"order_number"`
|
|
|
|
|
OrderAmount string `json:"order_amount"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type WithdrawCallbackReq struct {
|
|
|
|
|
Status int `json:"status"`
|
|
|
|
|
Message string `json:"message"`
|
|
|
|
|
Money string `json:"money"`
|
|
|
|
|
PlatNumber string `json:"plat_number"`
|
|
|
|
|
OrderNumber string `json:"order_number"`
|
|
|
|
|
Sign string `json:"sign"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type QueryWithdrawReq struct {
|
|
|
|
|
MerchantID string `json:"merchant_id"`
|
|
|
|
|
OrderList []string `json:"order_list"`
|
|
|
|
|
Sign string `json:"sign"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type QueryWithdrawResp struct {
|
|
|
|
|
Code int `json:"code"`
|
|
|
|
|
Data []QueryWithdrawData `json:"data"`
|
|
|
|
|
Msg string `json:"msg"`
|
|
|
|
|
Time int64 `json:"time"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type QueryWithdrawData struct {
|
|
|
|
|
Status int `json:"status"` // 状态:0是待处理,1=处理中,2=拒绝,3=失败,4=成功,5=撤销(代付订单状态以此为准吗,切勿以code值做订单状态判断)
|
|
|
|
|
OrderNumber string `json:"order_number"`
|
|
|
|
|
Utr string `json:"utr"`
|
|
|
|
|
OrderAmount string `json:"order_amount"`
|
|
|
|
|
}
|