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.
147 lines
7.9 KiB
147 lines
7.9 KiB
package luckinpay |
|
|
|
const ( |
|
payURL = "https://api.luckyinpay.online/api/pay/createPayinOrder" |
|
withdrawURL = "https://api.luckyinpay.online/api/pay/createPayoutOrder" |
|
mid = "M1704341111" |
|
key = "O4HWRE7LH3HFDU6YTZJJKW7AGCIEICBR2KT1BR8JJVSNBBVUGLV6RA8ECGR82RMLDAOW8SUZW5YHPARCZQVRQE8MS8GGNWQ3PCIDKNIIIS7MOT8AEKESTMCUTRVZYQW7" |
|
) |
|
|
|
var privateKeyPkCs8 = []byte(`-----BEGIN RSA PRIVATE KEY----- |
|
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCdQYMybS8v6qy9uqTycOH2mRK4aLh4Pzvv530u5eBwY42I+bZO63fUXkXBnecPMgVnlcovPMpPtKa6ocQSAgW2vYmxO+gX0MKPPHcv7UfdmgtC8nUtNoJTfvNOgmElZD64lSJqSGSp2bEE1s6BLH9rLFAr61FzHCHvJFHBlycabXLbByDpLgU/aIDSc0Q8fvSUoS5TacUPSoyAnFZw6k4yX8IAgPZXO3I99CcjsgFjR0b5dXUDaGY4luU13Rg5s7n3iE6mDakiAQ8DJYQNc+I10EgFvoxuviWndiW3zoa1+VLGPsiif7E6X8nfqgOPaexd3E0H7JmUd6JRD0ge8HtXAgMBAAECggEAaI0J4Rjeaokn1+yjhdyvHviejaRyIOBJxTKu8+M52P8XNp5vKwE6ZiNXVWbaHCwxk7Du/4D3MQ72Wtb6OM7HZbuWNBOUN2FAOWMGCwNC6H5mRlhUt36qH0EkGmpslCOV37qnauo+ov5sxr7aBN/Ex0hq9Qg62sE1fn0zLfaEtPhMRqbHHJ9+Jfz7J2Fp69nSxpMfs0h/gOg2Eu2eX+tkgK6G99UJgN+D60XEWqofeUtTu/FVVrKYBLXY1Lzb0nv9XpYXtN4MJa+Xdct2FtHMDUgebCzlVZN/sVlLoSqm+nxdGJD6IbZB0GghW+YZMnimDZ47o+KD7CRXk3fjcvBnYQKBgQDUxvcyfmlcxQdwvOqxXcVW1YvgPSQTFpOc8LEZGwjzs+NjfAbS7tJE7mLImZwon8wHMzuZ2LGwSN+CdpgXiUlTAbcwkyKE9BT4X0GHwp/WD0MPl82EQR6M2bN/71zg+PQc4Sh03JgSC57YGIqVkT55OLlIF3xyriKuApZWMCuVgwKBgQC9M0cOGbJhnOJcRfdl+ZyxslubjocDNRdYH+nSZTddqpR7z04o00/6miCuvzURQ6QorULlh9+WSMB+xOBd4DHn5Zqmw4VN2UujW6dgUvXfXMqtmvldtWK+lsLsge0xbHAq5Ap9fuGnvrYfmvGGbk6m1a1XOnpmUHBVxIXUhBLunQKBgQCZ33Ew4N4NKqdgzh3jOm7VhwTqmwyViUQiwKUyBK0KoFKWxUCiFfeVxddGPmABuN3xbwlxDpYhZ/HLBTyj+LJABwOVazIRd/oaS7i2FvdD9DGI+zyyoe0X6u+2W0GNqDvRDrsVF9oZYrHykHzYAPtu6qiDDAkBXhDSSiiyF4/NRQKBgB59IekqyO0j+/JEsB51wAN+q3aA3E7vAkkIM4TdHLPyZiUhfgXkL5JBvhyK4YFbtht7+DjG0YgFR0fmcAWQuFoXTPmsrlGiP6cegPVryQVqjZq2S5MHRNdTsiussE1znQu8XdhlVvXSLMUhEeTI59HIwzs4SDsuoTuhBLP/aJGdAoGBAJ8ZCNGThSVcQijk1J1Sw0ZelGe2tsgb+2rTl8kiLDOQOgnGKaErGGAyzZBmESqq677vXwbQ+Xn7HWz6HnC+WVoAhxZCLTKXs4YdiMzOiCKeDNWky899OK3qG/6E9CqaO2Pn5F1xlYKVxIUfkwt7aQedFEIcSVN6op2V+JK4fEFX |
|
-----END RSA PRIVATE KEY-----`) |
|
var privateKey = []byte(`-----BEGIN RSA PRIVATE KEY----- |
|
MIIEpAIBAAKCAQEAnUGDMm0vL+qsvbqk8nDh9pkSuGi4eD877+d9LuXgcGONiPm2 |
|
Tut31F5FwZ3nDzIFZ5XKLzzKT7SmuqHEEgIFtr2JsTvoF9DCjzx3L+1H3ZoLQvJ1 |
|
LTaCU37zToJhJWQ+uJUiakhkqdmxBNbOgSx/ayxQK+tRcxwh7yRRwZcnGm1y2wcg |
|
6S4FP2iA0nNEPH70lKEuU2nFD0qMgJxWcOpOMl/CAID2VztyPfQnI7IBY0dG+XV1 |
|
A2hmOJblNd0YObO594hOpg2pIgEPAyWEDXPiNdBIBb6Mbr4lp3Ylt86GtflSxj7I |
|
on+xOl/J36oDj2nsXdxNB+yZlHeiUQ9IHvB7VwIDAQABAoIBAGiNCeEY3mqJJ9fs |
|
o4Xcrx74no2kciDgScUyrvPjOdj/FzaebysBOmYjV1Vm2hwsMZOw7v+A9zEO9lrW |
|
+jjOx2W7ljQTlDdhQDljBgsDQuh+ZkZYVLd+qh9BJBpqbJQjld+6p2rqPqL+bMa+ |
|
2gTfxMdIavUIOtrBNX59My32hLT4TEamxxyffiX8+ydhaevZ0saTH7NIf4DoNhLt |
|
nl/rZICuhvfVCYDfg+tFxFqqH3lLU7vxVVaymAS12NS829J7/V6WF7TeDCWvl3XL |
|
dhbRzA1IHmws5VWTf7FZS6Eqpvp8XRiQ+iG2QdBoIVvmGTJ4pg2eO6Pig+wkV5N3 |
|
43LwZ2ECgYEA1Mb3Mn5pXMUHcLzqsV3FVtWL4D0kExaTnPCxGRsI87PjY3wG0u7S |
|
RO5iyJmcKJ/MBzM7mdixsEjfgnaYF4lJUwG3MJMihPQU+F9Bh8Kf1g9DD5fNhEEe |
|
jNmzf+9c4Pj0HOEodNyYEgue2BiKlZE+eTi5SBd8cq4irgKWVjArlYMCgYEAvTNH |
|
DhmyYZziXEX3ZfmcsbJbm46HAzUXWB/p0mU3XaqUe89OKNNP+pogrr81EUOkKK1C |
|
5YfflkjAfsTgXeAx5+WapsOFTdlLo1unYFL131zKrZr5XbVivpbC7IHtMWxwKuQK |
|
fX7hp762H5rxhm5OptWtVzp6ZlBwVcSF1IQS7p0CgYEAmd9xMODeDSqnYM4d4zpu |
|
1YcE6psMlYlEIsClMgStCqBSlsVAohX3lcXXRj5gAbjd8W8JcQ6WIWfxywU8o/iy |
|
QAcDlWsyEXf6Gku4thb3Q/QxiPs8sqHtF+rvtltBjag70Q67FRfaGWKx8pB82AD7 |
|
buqogwwJAV4Q0kooshePzUUCgYAefSHpKsjtI/vyRLAedcADfqt2gNxO7wJJCDOE |
|
3Ryz8mYlIX4F5C+SQb4ciuGBW7Ybe/g4xtGIBUdH5nAFkLhaF0z5rK5Roj+nHoD1 |
|
a8kFao2atkuTB0TXU7IrrLBNc50LvF3YZVb10izFIRHkyOfRyMM7OEg7LqE7oQSz |
|
/2iRnQKBgQCfGQjRk4UlXEIo5NSdUsNGXpRntrbIG/tq05fJIiwzkDoJximhKxhg |
|
Ms2QZhEqquu+718G0Pl5+x1s+h5wvllaAIcWQi0yl7OGHYjMzogingzVpMvPfTit |
|
6hv+hPQqmjtj5+RdcZWClcSFH5MLe2kHnRRCHElTeqKdlfiSuHxBVw== |
|
-----END RSA PRIVATE KEY-----`) |
|
var publicKey = []byte(`-----BEGIN PUBLIC KEY----- |
|
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAh/nLyajLky2rGA1rKJD/CYi0BK1onauzcjbDTth9tGeypwZoFLHIlJw3vY1KMIkayBwCVYZK+9X7FpoIcBwcd3mfzFpQA0WIE7gDH+qdtlx/NVKpSyp/6c7l+iKEwxvt8fHbrN/QHMh9xehroS/f8cKxEA8/dC/DAmQQ284ydJ81Ft8pUksWEyL4s3cqbMZSQsbam86U5aU55qWvPvMGqHx/5tfr9dyQ1Pytvr1H9oRPvVXmFRSLofY8GlYapbchSsViyGfAWERs3hYQvAOGB62TEKJfeYTiQyd7/Akn0XCS1S2kS4KllRqq1pIU0XKVjFqXuLf69z05fGZDkytAawIDAQAB |
|
-----END PUBLIC KEY----- |
|
`) |
|
var myPublicKey = []byte(`-----BEGIN PUBLIC KEY----- |
|
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnUGDMm0vL+qsvbqk8nDh9pkSuGi4eD877+d9LuXgcGONiPm2Tut31F5FwZ3nDzIFZ5XKLzzKT7SmuqHEEgIFtr2JsTvoF9DCjzx3L+1H3ZoLQvJ1LTaCU37zToJhJWQ+uJUiakhkqdmxBNbOgSx/ayxQK+tRcxwh7yRRwZcnGm1y2wcg6S4FP2iA0nNEPH70lKEuU2nFD0qMgJxWcOpOMl/CAID2VztyPfQnI7IBY0dG+XV1A2hmOJblNd0YObO594hOpg2pIgEPAyWEDXPiNdBIBb6Mbr4lp3Ylt86GtflSxj7Ion+xOl/J36oDj2nsXdxNB+yZlHeiUQ9IHvB7VwIDAQAB |
|
-----END PUBLIC KEY-----`) |
|
|
|
// var ( |
|
// whiteIPs = []string{"52.67.100.247", "15.228.167.245", "54.207.16.136"} |
|
// ) |
|
|
|
type PayReq struct { |
|
MchNo string `json:"mchNo"` |
|
MchOrderNo string `json:"mchOrderNo"` |
|
Currency string `json:"currency"` |
|
PayAmount string `json:"payAmount"` |
|
AccountName string `json:"accountName"` |
|
AccountEmail string `json:"accountEmail"` |
|
AccountPhone string `json:"accountPhone"` |
|
CustomerIP string `json:"customerIp"` |
|
NotifyUrl string `json:"notifyUrl"` |
|
SuccessPageUrl string `json:"successPageUrl"` |
|
Summary string `json:"summary,omitempty"` |
|
ReqTime string `json:"reqTime"` |
|
Sign string `json:"sign"` |
|
} |
|
|
|
type PayResp struct { |
|
Code string `json:"code"` |
|
Message string `json:"message"` |
|
Sign string `json:"sign"` |
|
Data PaymentData `json:"data"` |
|
} |
|
|
|
// PaymentData 包含在支付响应中的数据体定义 |
|
type PaymentData struct { |
|
PayOrderNo string `json:"payOrderNo"` |
|
MchOrderNo string `json:"mchOrderNo"` |
|
MchNo string `json:"mchNo"` |
|
Currency string `json:"currency"` |
|
PayAmount string `json:"payAmount"` |
|
PayInitiateTime string `json:"payInitiateTime"` |
|
PayData string `json:"payData"` |
|
PayReference string `json:"payReference,omitempty"` |
|
PayState int `json:"payState"` |
|
} |
|
|
|
type PayCallbackReq struct { |
|
PayOrderNo string `json:"payOrderNo"` |
|
MchOrderNo string `json:"mchOrderNo"` |
|
MchNo string `json:"mchNo"` |
|
Currency string `json:"currency"` |
|
PayAmount string `json:"payAmount"` |
|
PayState int `json:"payState"` |
|
PayInitiateTime string `json:"payInitiateTime"` |
|
PayFinishTime string `json:"payFinishTime"` |
|
ErrMsg string `json:"errMsg,omitempty"` |
|
Sign string `json:"sign"` |
|
} |
|
|
|
type WithdrawReq struct { |
|
MchNo string `json:"mchNo"` |
|
MchOrderNo string `json:"mchOrderNo"` |
|
Currency string `json:"currency"` |
|
PayAmount string `json:"payAmount"` |
|
AccountType string `json:"accountType"` |
|
AccountCode string `json:"accountCode"` |
|
AccountNo string `json:"accountNo"` |
|
AccountName string `json:"accountName"` |
|
AccountEmail string `json:"accountEmail"` |
|
AccountPhone string `json:"accountPhone"` |
|
CustomerIP string `json:"customerIp"` |
|
NotifyUrl string `json:"notifyUrl"` |
|
Summary string `json:"summary,omitempty"` |
|
ReqTime string `json:"reqTime"` |
|
Sign string `json:"sign"` |
|
} |
|
|
|
type WithdrawResp struct { |
|
Code string `json:"code"` |
|
Message string `json:"message"` |
|
Sign string `json:"sign"` |
|
Data PayoutData `json:"data"` |
|
} |
|
|
|
type PayoutData struct { |
|
PayOrderNo string `json:"payOrderNo"` |
|
MchOrderNo string `json:"mchOrderNo"` |
|
MchNo string `json:"mchNo"` |
|
Currency string `json:"currency"` |
|
PayAmount string `json:"payAmount"` |
|
PayInitiateTime string `json:"payInitiateTime"` |
|
PayState int `json:"payState"` |
|
} |
|
|
|
type WithdrawCallbackReq struct { |
|
PayOrderNo string `json:"payOrderNo"` |
|
MchOrderNo string `json:"mchOrderNo"` |
|
MchNo string `json:"mchNo"` |
|
Currency string `json:"currency"` |
|
PayAmount string `json:"payAmount"` |
|
PayState int `json:"payState"` |
|
PayInitiateTime string `json:"payInitiateTime"` |
|
PayFinishTime string `json:"payFinishTime"` |
|
ErrMsg string `json:"errMsg,omitempty"` |
|
Sign string `json:"sign"` |
|
}
|
|
|