· 7 years ago · Jan 11, 2019, 10:33 PM
1<?php
2
3if (!defined("WHMCS")) {
4 exit("This file cannot be accessed directly");
5}
6function webmoneyz_MetaData()
7{
8 return array("DisplayName" => "WebMoney (WMZ)", "APIVersion" => "1.1", "DisableLocalCredtCardInput" => true, "TokenisedStorage" => false);
9}
10function webmoneyz_config()
11{
12 $configarray = array("FriendlyName" => array("Type" => "System", "Value" => "WebMoney (WMZ)"), "purse" => array("FriendlyName" => "Merchant's purse", "Type" => "text", "Size" => "20"), "secret_key" => array("FriendlyName" => "Secret Key", "Type" => "text", "Size" => "20"));
13 return $configarray;
14}
15function webmoneyz_link($params)
16{
17 global $_LANG;
18 $lickey = Illuminate\Database\Capsule\Manager::table("tbladdonmodules")->where("module", "ru_addons")->where("setting", "ru_addons_key")->first();
19 if ($lickey) {
20 $keydata = $lickey->value;
21 $lockey = Illuminate\Database\Capsule\Manager::table("mod_rumodules")->where("name", "like", "localkey%")->first();
22 if ($lockey) {
23 $localkeydata = $lockey->value;
24 }
25 $results = obfuscated_0D282717080D041804382337220401173113110C152B01_($keydata, $localkeydata);
26 if ($results["status"] == "Active" && $results["supportstatus"] != "Expired") {
27 if ($results["localkey"]) {
28 $localkeydata = $results["localkey"];
29 Illuminate\Database\Capsule\Manager::table("mod_rumodules")->where("name", "like", "localkey%")->delete();
30 Illuminate\Database\Capsule\Manager::table("mod_rumodules")->insert(array("name" => "localkey" . rand(10, 99999), "value" => $localkeydata));
31 }
32 $form = function ($params) {
33 global $_LANG;
34 return "<form method=\"post\" action=\"https://merchant.webmoney.ru/lmi/payment.asp\">\r\n\t\t <input type=\"hidden\" name=\"LMI_PAYEE_PURSE\" value=\"" . $params["purse"] . "\" />\r\n\t\t <input type=\"hidden\" name=\"LMI_SIM_MODE\" value=\"\" />\r\n\t\t <input type=\"hidden\" name=\"LMI_PAYMENT_NO\" value=\"" . $params["invoiceid"] . "\">\r\n\t\t <input type=\"hidden\" name=\"LMI_PAYMENT_DESC_BASE64\" value=\"" . base64_encode($params["description"]) . "\" />\r\n\t\t <input type=\"hidden\" name=\"item_number\" value=\"" . $params["invoiceid"] . "\" />\r\n\t\t <input type=\"hidden\" name=\"LMI_PAYMENT_AMOUNT\" value=\"" . $params["amount"] . "\" />\r\n\t\t <input type=\"hidden\" name=\"LMI_FAIL_URL\" value=\"" . $params["systemurl"] . "/viewinvoice.php?id=" . $params["invoiceid"] . "&paymentfailed=true\" />\r\n\t\t <input type=\"hidden\" name=\"LMI_FAIL_METHOD\" value=\"1\" />\r\n\t\t <input type=\"hidden\" name=\"LMI_SUCCESS_URL\" value=\"" . $params["systemurl"] . "/viewinvoice.php?id=" . $params["invoiceid"] . "&paymentsuccess=true\" />\r\n\t\t <input type=\"hidden\" name=\"LMI_SUCCESS_METHOD\" value=\"1\" />\r\n\t\t <input type=\"hidden\" name=\"LMI_RESULT_URL\" value=\"" . $params["systemurl"] . "/modules/gateways/callback/webmoneyz.php\" />\r\n\t\t <input type=\"hidden\" name=\"transkey\" value=\"" . sha1($params["invoiceid"] . ":" . $params["amount"] . ":" . $params["purse"] . ":" . sha1($params["amount"])) . "\" />\r\n\t\t <input type=\"hidden\" name=\"P_METHOD\" value=\"WMT\" />\n\t\t <input type=\"hidden\" name=\"PP\" value=\"wmtransfer\" />\n\t\t <input type=\"submit\" value=\"" . $_LANG["invoicespaynow"] . "\" class=\"btn btn-success btn-sm\" />\n\t\t </form>";
35 };
36 $code = $form($params);
37 } else {
38 if ($results["supportstatus"] == "Expired") {
39 $code = "Expired Support and Updates";
40 return "<span class=\"label label-danger\">" . $code . "</span>";
41 }
42 if ($results["status"] == "Invalid") {
43 $code = "Invalid license";
44 return "<span class=\"label label-danger\">" . $code . "</span>";
45 }
46 if ($results["status"] == "Expired") {
47 $code = "Expired License";
48 return "<span class=\"label label-danger\">" . $code . "</span>";
49 }
50 if ($results["status"] == "Suspended") {
51 $code = "Suspended License";
52 return "<span class=\"label label-danger\">" . $code . "</span>";
53 }
54 }
55 return $code;
56 }
57 return "Modules is not active";
58}
59function obfuscated_0D282717080D041804382337220401173113110C152B01_($licensekey, $localkey = "")
60{
61 if (!isset($licensekey) || empty($licensekey)) {
62 $results["status"] = "Invalid";
63 $results["description"] = "Empty Key";
64 return $results;
65 }
66 $obfuscated_0D1F32111D080A311D1F080C2627301C185B1D5C402B01_ = "https://my.customersbilling.net/clientarea/";
67 $obfuscated_0D3127331E372715220A1C2F380F260E0909102D3E0F22_ = Illuminate\Database\Capsule\Manager::table("mod_rumodules")->where("name", "like", "hashsk%")->first();
68 if ($obfuscated_0D3127331E372715220A1C2F380F260E0909102D3E0F22_) {
69 $obfuscated_0D241D0829180E013F2228020E0C073D2A3C03322E1732_ = obfuscated_0D12312E08271A120F29101A29370D1E1001162B0D2F22_($obfuscated_0D3127331E372715220A1C2F380F260E0909102D3E0F22_->value);
70 if ($obfuscated_0D241D0829180E013F2228020E0C073D2A3C03322E1732_ == "Invalid") {
71 $obfuscated_0D241D0829180E013F2228020E0C073D2A3C03322E1732_ = obfuscated_0D12312E08271A120F29101A29370D1E1001162B0D2F22_(ru_addons_get_skey($licensekey));
72 }
73 } else {
74 $obfuscated_0D241D0829180E013F2228020E0C073D2A3C03322E1732_ = obfuscated_0D12312E08271A120F29101A29370D1E1001162B0D2F22_(ru_addons_get_skey($licensekey));
75 }
76 if (!isset($obfuscated_0D241D0829180E013F2228020E0C073D2A3C03322E1732_) || empty($obfuscated_0D241D0829180E013F2228020E0C073D2A3C03322E1732_) || $obfuscated_0D241D0829180E013F2228020E0C073D2A3C03322E1732_ == "Invalid") {
77 $results["status"] = "Invalid";
78 $results["description"] = "Empty Key";
79 return $results;
80 }
81 global $licensing;
82 if (isset($_SERVER["SERVER_ADDR"]) && !empty($_SERVER["SERVER_ADDR"])) {
83 $obfuscated_0D1D35240A27093E341E2709190D143138152224232511_ = $_SERVER["SERVER_ADDR"];
84 } else {
85 if (isset($_SERVER["LOCAL_ADDR"]) && !empty($_SERVER["LOCAL_ADDR"])) {
86 $obfuscated_0D1D35240A27093E341E2709190D143138152224232511_ = $_SERVER["LOCAL_ADDR"];
87 } else {
88 $obfuscated_0D1D35240A27093E341E2709190D143138152224232511_ = "127.0.0.1";
89 }
90 }
91 if (isset($_SERVER["SERVER_NAME"])) {
92 $obfuscated_0D230E38020B402F34011D250B242740290523070A3111_ = $_SERVER["SERVER_NAME"];
93 }
94 $obfuscated_0D2E1E0528252D5C083F1F14033116395C1E022D372301_ = time() . md5(mt_rand(1000000000, 9999999999.0) . $licensekey);
95 $checkdate = date("Ymd");
96 $obfuscated_0D0B29033D34153804371E2402142E242B341A07322C32_ = 3;
97 $obfuscated_0D1424343F3705100E0A081F010803173B2A3F35210E22_ = 5;
98 $obfuscated_0D361A395C30130E3E3D1217241E3617043B1D0B124022_ = false;
99 if ($localkey) {
100 $localkey = str_replace("\n", "", $localkey);
101 $obfuscated_0D4001262B3D0F051B2138120B091D2D2E3506122E0D22_ = substr($localkey, 0, strlen($localkey) - 32);
102 $obfuscated_0D230D373F10380D1738283C062523043D03362C1F1D32_ = substr($localkey, strlen($localkey) - 32);
103 if ($obfuscated_0D230D373F10380D1738283C062523043D03362C1F1D32_ == md5($obfuscated_0D4001262B3D0F051B2138120B091D2D2E3506122E0D22_ . $obfuscated_0D241D0829180E013F2228020E0C073D2A3C03322E1732_)) {
104 $obfuscated_0D4001262B3D0F051B2138120B091D2D2E3506122E0D22_ = strrev($obfuscated_0D4001262B3D0F051B2138120B091D2D2E3506122E0D22_);
105 $obfuscated_0D230D373F10380D1738283C062523043D03362C1F1D32_ = substr($obfuscated_0D4001262B3D0F051B2138120B091D2D2E3506122E0D22_, 0, 32);
106 $obfuscated_0D4001262B3D0F051B2138120B091D2D2E3506122E0D22_ = substr($obfuscated_0D4001262B3D0F051B2138120B091D2D2E3506122E0D22_, 32);
107 $obfuscated_0D4001262B3D0F051B2138120B091D2D2E3506122E0D22_ = base64_decode($obfuscated_0D4001262B3D0F051B2138120B091D2D2E3506122E0D22_);
108 $obfuscated_0D071B0C2B0636352C29050C1F1F360A043936343E1622_ = unserialize($obfuscated_0D4001262B3D0F051B2138120B091D2D2E3506122E0D22_);
109 $obfuscated_0D1A365C2B082D40011B160A2702155C2C013518183F01_ = $obfuscated_0D071B0C2B0636352C29050C1F1F360A043936343E1622_["checkdate"];
110 if ($obfuscated_0D230D373F10380D1738283C062523043D03362C1F1D32_ == md5($obfuscated_0D1A365C2B082D40011B160A2702155C2C013518183F01_ . $obfuscated_0D241D0829180E013F2228020E0C073D2A3C03322E1732_)) {
111 $obfuscated_0D3030365B382C141D062F0438123101193F0F01081401_ = date("Ymd", mktime(0, 0, 0, date("m"), date("d") - $obfuscated_0D0B29033D34153804371E2402142E242B341A07322C32_, date("Y")));
112 if ($obfuscated_0D3030365B382C141D062F0438123101193F0F01081401_ < $obfuscated_0D1A365C2B082D40011B160A2702155C2C013518183F01_) {
113 $obfuscated_0D361A395C30130E3E3D1217241E3617043B1D0B124022_ = true;
114 $results = $obfuscated_0D071B0C2B0636352C29050C1F1F360A043936343E1622_;
115 $obfuscated_0D3D181607222B400A2E271D382F2401231C342E122B22_ = explode(",", $results["validdomain"]);
116 if (!in_array($obfuscated_0D230E38020B402F34011D250B242740290523070A3111_, $obfuscated_0D3D181607222B400A2E271D382F2401231C342E122B22_)) {
117 $obfuscated_0D361A395C30130E3E3D1217241E3617043B1D0B124022_ = false;
118 $obfuscated_0D071B0C2B0636352C29050C1F1F360A043936343E1622_["status"] = "Invalid";
119 $results = array();
120 }
121 $obfuscated_0D1A0A1D1B2F2D5B15253203022C27031B3013282B3301_ = explode(",", $results["validip"]);
122 if (!in_array($obfuscated_0D1D35240A27093E341E2709190D143138152224232511_, $obfuscated_0D1A0A1D1B2F2D5B15253203022C27031B3013282B3301_)) {
123 $obfuscated_0D361A395C30130E3E3D1217241E3617043B1D0B124022_ = false;
124 $obfuscated_0D071B0C2B0636352C29050C1F1F360A043936343E1622_["status"] = "Invalid";
125 $results = array();
126 }
127 if ($results["validdirectory"] != dirname(dirname(dirname(__FILE__)))) {
128 $obfuscated_0D361A395C30130E3E3D1217241E3617043B1D0B124022_ = false;
129 $obfuscated_0D071B0C2B0636352C29050C1F1F360A043936343E1622_["status"] = "Invalid";
130 $results = array();
131 }
132 }
133 }
134 }
135 }
136 if (!$obfuscated_0D361A395C30130E3E3D1217241E3617043B1D0B124022_) {
137 $postfields["licensekey"] = $licensekey;
138 $postfields["domain"] = $obfuscated_0D230E38020B402F34011D250B242740290523070A3111_;
139 $postfields["ip"] = $obfuscated_0D1D35240A27093E341E2709190D143138152224232511_;
140 $postfields["dir"] = dirname(dirname(dirname(__FILE__)));
141 if (!function_exists("ru_addons_config")) {
142 include __DIR__ . "/../addons/ru_addons/ru_addons.php";
143 }
144 $obfuscated_0D3D2F3D311A1D0B302A01241A13312A1A0D2F12211301_ = ru_addons_config();
145 $obfuscated_0D291B2A251E171A31251B380A10222E1C2D07153D0432_ = array();
146 $obfuscated_0D291B2A251E171A31251B380A10222E1C2D07153D0432_["licensekey"] = $licensekey;
147 $obfuscated_0D291B2A251E171A31251B380A10222E1C2D07153D0432_["domain"] = $obfuscated_0D230E38020B402F34011D250B242740290523070A3111_;
148 $obfuscated_0D291B2A251E171A31251B380A10222E1C2D07153D0432_["ip"] = $obfuscated_0D1D35240A27093E341E2709190D143138152224232511_;
149 $obfuscated_0D291B2A251E171A31251B380A10222E1C2D07153D0432_["dir"] = dirname(dirname(dirname(__FILE__)));
150 $obfuscated_0D291B2A251E171A31251B380A10222E1C2D07153D0432_["version"] = $obfuscated_0D3D2F3D311A1D0B302A01241A13312A1A0D2F12211301_["version"];
151 $obfuscated_0D291B2A251E171A31251B380A10222E1C2D07153D0432_["releasedate"] = $obfuscated_0D3D2F3D311A1D0B302A01241A13312A1A0D2F12211301_["releasedate"];
152 $postfields["data"] = obfuscated_0D29110C361D0D1D312A010704280808170F27032A2D22_(serialize($obfuscated_0D291B2A251E171A31251B380A10222E1C2D07153D0432_));
153 if ($obfuscated_0D2E1E0528252D5C083F1F14033116395C1E022D372301_) {
154 $postfields["check_token"] = $obfuscated_0D2E1E0528252D5C083F1F14033116395C1E022D372301_;
155 }
156 if (function_exists("curl_exec")) {
157 $ch = curl_init();
158 curl_setopt($ch, CURLOPT_URL, $obfuscated_0D1F32111D080A311D1F080C2627301C185B1D5C402B01_ . "modules/servers/licensing/verify50.php");
159 curl_setopt($ch, CURLOPT_POST, 1);
160 curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
161 curl_setopt($ch, CURLOPT_TIMEOUT, 30);
162 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
163 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
164 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
165 $data = curl_exec($ch);
166 curl_close($ch);
167 } else {
168 $fp = fsockopen($obfuscated_0D1F32111D080A311D1F080C2627301C185B1D5C402B01_, 80, $obfuscated_0D2D1F5C07112114352F0A020E241C25031924180C1211_, $obfuscated_0D071A39130A1B2A0B2A141D18075C040B3716301D1111_, 5);
169 if ($fp) {
170 $querystring = "";
171 foreach ($postfields as $k => $obfuscated_0D371B30342116161B042B1E012F120E162B0326350101_) {
172 $querystring .= (string) $k . "=" . urlencode($obfuscated_0D371B30342116161B042B1E012F120E162B0326350101_) . "&";
173 }
174 $header = "POST " . $obfuscated_0D1F32111D080A311D1F080C2627301C185B1D5C402B01_ . "modules/servers/licensing/verify50.php HTTP/1.0\r\n";
175 $header .= "Host: " . $obfuscated_0D1F32111D080A311D1F080C2627301C185B1D5C402B01_ . "\r\n";
176 $header .= "Content-type: application/x-www-form-urlencoded\r\n";
177 $header .= "Content-length: " . @strlen($querystring) . "\r\n";
178 $header .= "Connection: close\r\n\r\n";
179 $header .= $querystring;
180 $data = "";
181 @stream_set_timeout($fp, 20);
182 @fputs($fp, $header);
183 $status = @socket_get_status($fp);
184 while (!@feof($fp) && $status) {
185 $data .= @fgets($fp, 1024);
186 $status = @socket_get_status($fp);
187 }
188 @fclose($fp);
189 }
190 }
191 if (!$data) {
192 $obfuscated_0D3030365B382C141D062F0438123101193F0F01081401_ = date("Ymd", mktime(0, 0, 0, date("m"), date("d") - ($obfuscated_0D0B29033D34153804371E2402142E242B341A07322C32_ + $obfuscated_0D1424343F3705100E0A081F010803173B2A3F35210E22_), date("Y")));
193 if ($obfuscated_0D3030365B382C141D062F0438123101193F0F01081401_ < $obfuscated_0D1A365C2B082D40011B160A2702155C2C013518183F01_) {
194 $results = $obfuscated_0D071B0C2B0636352C29050C1F1F360A043936343E1622_;
195 } else {
196 $results["status"] = "Invalid";
197 $results["description"] = "Remote Check Failed";
198 return $results;
199 }
200 } else {
201 preg_match_all("/<(.*?)>([^<]+)<\\/\\1>/i", $data, $obfuscated_0D2A1C13312336091B1D06021C0C4010332B0E210A2111_);
202 $results = array();
203 foreach ($obfuscated_0D2A1C13312336091B1D06021C0C4010332B0E210A2111_[1] as $k => $obfuscated_0D371B30342116161B042B1E012F120E162B0326350101_) {
204 $results[$obfuscated_0D371B30342116161B042B1E012F120E162B0326350101_] = $obfuscated_0D2A1C13312336091B1D06021C0C4010332B0E210A2111_[2][$k];
205 }
206 }
207 if ($results["md5hash"] && $results["md5hash"] != md5($obfuscated_0D241D0829180E013F2228020E0C073D2A3C03322E1732_ . $obfuscated_0D2E1E0528252D5C083F1F14033116395C1E022D372301_)) {
208 $results["status"] = "Invalid";
209 $results["description"] = "MD5 Checksum Verification Failed";
210 return $results;
211 }
212 if ($results["status"] == "Active") {
213 if ($results["supportstatus"] == "Expired") {
214 $results["msg"] = "No support and updates";
215 Illuminate\Database\Capsule\Manager::table("mod_rumodules")->where("name", "like", "localkey%")->delete();
216 Illuminate\Database\Capsule\Manager::table("mod_rumodules")->where("name", "like", "hashsk%")->delete();
217 Illuminate\Database\Capsule\Manager::table("mod_rumodules")->insert(array("name" => "hashsk" . rand(1000, 99999), "value" => obfuscated_0D29110C361D0D1D312A010704280808170F27032A2D22_("Invalid")));
218 } else {
219 $results["checkdate"] = $checkdate;
220 $obfuscated_0D312D2A070F5C2839261E26371B3907171812251C1501_ = serialize($results);
221 $obfuscated_0D312D2A070F5C2839261E26371B3907171812251C1501_ = base64_encode($obfuscated_0D312D2A070F5C2839261E26371B3907171812251C1501_);
222 $obfuscated_0D312D2A070F5C2839261E26371B3907171812251C1501_ = md5($checkdate . $obfuscated_0D241D0829180E013F2228020E0C073D2A3C03322E1732_) . $obfuscated_0D312D2A070F5C2839261E26371B3907171812251C1501_;
223 $obfuscated_0D312D2A070F5C2839261E26371B3907171812251C1501_ = strrev($obfuscated_0D312D2A070F5C2839261E26371B3907171812251C1501_);
224 $obfuscated_0D312D2A070F5C2839261E26371B3907171812251C1501_ = $obfuscated_0D312D2A070F5C2839261E26371B3907171812251C1501_ . md5($obfuscated_0D312D2A070F5C2839261E26371B3907171812251C1501_ . $obfuscated_0D241D0829180E013F2228020E0C073D2A3C03322E1732_);
225 $obfuscated_0D312D2A070F5C2839261E26371B3907171812251C1501_ = wordwrap($obfuscated_0D312D2A070F5C2839261E26371B3907171812251C1501_, 80, "\n", true);
226 $results["localkey"] = $obfuscated_0D312D2A070F5C2839261E26371B3907171812251C1501_;
227 }
228 } else {
229 if ($results["status"] == "Expired") {
230 Illuminate\Database\Capsule\Manager::table("mod_rumodules")->where("name", "like", "localkey%")->delete();
231 Illuminate\Database\Capsule\Manager::table("mod_rumodules")->where("name", "like", "hashsk%")->delete();
232 Illuminate\Database\Capsule\Manager::table("mod_rumodules")->insert(array("name" => "hashsk" . rand(1000, 99999), "value" => obfuscated_0D29110C361D0D1D312A010704280808170F27032A2D22_("Invalid")));
233 }
234 }
235 $results["remotecheck"] = true;
236 }
237 unset($postfields);
238 unset($data);
239 unset($obfuscated_0D2A1C13312336091B1D06021C0C4010332B0E210A2111_);
240 unset($obfuscated_0D1F32111D080A311D1F080C2627301C185B1D5C402B01_);
241 unset($obfuscated_0D241D0829180E013F2228020E0C073D2A3C03322E1732_);
242 unset($checkdate);
243 unset($obfuscated_0D1D35240A27093E341E2709190D143138152224232511_);
244 unset($obfuscated_0D0B29033D34153804371E2402142E242B341A07322C32_);
245 unset($obfuscated_0D1424343F3705100E0A081F010803173B2A3F35210E22_);
246 unset($obfuscated_0D230D373F10380D1738283C062523043D03362C1F1D32_);
247 return $results;
248}
249
250?>