· 5 years ago · Sep 20, 2020, 04:02 PM
1<?
2
3// Template Name: Retorno API Servcob
4
5if(!$_POST) {
6 echo "Acesso negado!";
7 exit;
8}
9
10if( site_url() == "http://localhost/cameranew" ) {
11 $token_skmb = "123123123123";
12} else {
13 $token_skmb = "123123123123";
14}
15$token_servcob = "XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX";
16$site_url = site_url().'/';
17$now_date = date('Y-m-d');
18//$now_date = date("Y-m-d", strtotime('-10 days', strtotime($now_date)));
19$dev_test = false;
20$_POST["idReferencia"] = ($_POST["idReferencia"] == "theporndud") ? "theporndude" : $_POST["idReferencia"];
21
22// ALTERAÇÕES NO PLUGIN MEMBERSHIP:
23// address_city = payment_method <- forma de pagamento / boleto ou cartao
24// address_state = card_flag <- bandeira do cartao
25// address_zipcode = data_expiracao <- data expiração servcob
26// country = renovacao (servcob) <- nova assinatura ou renovação / 0 ou 1
27// home_page = id_payment <- id do pagameanto servcob
28// company_name = afiliado <- afiliado
29
30function insertLog() {
31
32 global $wpdb;
33 return $wpdb->insert('servcob_returns', array(
34 'id_servcob' => $_POST["id"],
35 'email' => $_POST["email"],
36 'senha' => $_POST["senha"],
37 'nome' => $_POST["nome"],
38 'ipagid' => $_POST["ipagid"],
39 'op' => $_POST["op"],
40 'renovacao' => $_POST["renovacao"],
41 'mailing' => $_POST["mailing"],
42 'expira' => $_POST["expira"],
43 'codPlano' => $_POST["codPlano"],
44 'plano' => $_POST["plano"],
45 'idReferencia' => $_POST["idReferencia"],
46 'tipopagamento' => $_POST["tipopagamento"],
47 'meiopagamento' => $_POST["meiopagamento"],
48 'valor' => $_POST["valor"],
49 ));
50
51}
52
53function processData() {
54
55 global $token_skmb;
56 global $token_servcob;
57 global $site_url;
58 global $now_date;
59 global $dev_test;
60
61 $data = array();
62
63 // SERVCOB
64 $data["token"] = $_POST["id"];
65 $data["op_cod"] = $_POST["ipagid"];
66 $data["expire_date"] = $_POST["expira"];
67 $data["payment_method"] = $_POST["meiopagamento"];
68 $data["card_flag"] = $_POST["tipopagamento"];
69 $data["affiliate"] = $_POST["idReferencia"];
70 $data["plan_id"] = $_POST["codPlano"];
71 $data["plan_name"] = $_POST["plano"];
72 $data["plan_price"] = $_POST["valor"];
73 $data["renewal"] = $_POST["renovacao"];
74 $data["email"] = $_POST["email"];
75 $data["password"] = $_POST["senha"];
76 $data["name"] = strstr($_POST["email"], '@', true);
77 // SERVCOB
78
79 $data["dev_test"] = $dev_test;
80 $data["token_skmb"] = $token_skmb;
81 $data["token_servcob"] = $token_servcob;
82 $data["site_url"] = $site_url;
83 $data["now_date"] = $now_date;
84
85 return $data;
86
87}
88
89function setPlan() {
90
91 $data = processData();
92
93 switch ($data["plan_id"]) {
94 case '1412':
95 $planName = "Plano Mensal";
96 $idPlanWp = "3";
97 $planPrice = "R$29,90";
98 break;
99 case '1398':
100 $planName = "Plano Bimestral";
101 $idPlanWp = "4";
102 $planPrice = "R$39,90";
103 break;
104 case '1399':
105 $planName = "Plano Trimestral";
106 $idPlanWp = "6";
107 $planPrice = "R$49,90";
108 break;
109 case '1444':
110 $planName = "1 Semana de Acesso";
111 $idPlanWp = "9";
112 $planPrice = "R$9,90";
113 break;
114 case '1443':
115 $planName = "Plano Anual";
116 $idPlanWp = "8";
117 $planPrice = "R$119,90";
118 break;
119 case '1430':
120 $planName = "Plano Câmera Retrô";
121 $idPlanWp = "14";
122 $planPrice = "R$14,99";
123 break;
124 case '1445':
125 $planName = "Plano Mensal Promocional";
126 $idPlanWp = "15";
127 $planPrice = "R$14,95";
128 break;
129 default:
130 $planName = "Plano Inválido";
131 $idPlanWp = "12";
132 $planPrice = "R$00,00";
133 break;
134 }
135
136 $plan = array();
137 $plan["id"] = $idPlanWp;
138 $plan["name"] = $planName;
139 $plan["price"] = $planPrice;
140
141 return $plan;
142
143}
144
145function checkSecurity() {
146 $data = processData();
147 if( isset($data["token"]) && $data["token"] == $data["token_servcob"] && isset($data["email"]) ) {
148 return true;
149 } else {
150 return false;
151 }
152}
153
154function checkByEmail() {
155 $data = processData();
156 $skmb_user = skmbMemberUtils::get_user_by_email($data["email"]);
157 return $skmb_user;
158}
159
160// function insetPayments() {
161
162// $formaPagamento['cartao'] = "Cartão";
163// $formaPagamento['boleto'] = "Boleto";
164// $formPagamento = $formaPagamento[$_POST["meiopagamento"]];
165
166// $wpdb->insert('cc_skmb_payments_tbl', array(
167// 'email' => $_POST["email"],
168// 'first_name' => $_POST["nome"],
169// 'last_name' => ' ',
170// 'member_id' => $skmb_user->member_id,
171// 'membership_level' => $nomePlano,
172// 'txn_date' => $now_date,
173// 'txn_id' => $_POST["ipagid"],
174// 'subscr_id' => $formPagamento,
175// 'reference' => ($_POST["idReferencia"] == "theporndud") ? "theporndude" : $_POST["idReferencia"],
176// 'payment_amount' => $_POST["valor"],
177// 'gateway' => 'Servcob',
178// 'status' => '1',
179// 'ip_address' => ' '
180// ));
181
182// }
183
184function updateUser() {
185
186 $data = processData();
187 $user = checkByEmail();
188
189 $post_array = array(
190 'skmb_api_action' => 'update',
191 'key' => $data["token_skmb"],
192 'member_id' => $user->member_id,
193 'account_state' => 'active',
194 'payment_method' => $data["payment_method"],
195 'card_flag' => $data["card_flag"],
196 'data_expiracao' => $data["expire_date"],
197 'country' => ($data["renewal"] == 0) ? "Nova Assinatura" : "Renovação",
198 'id_payment' => $data["op_cod"],
199 // 'afiliado' => $data["affiliate"],
200 'subscription_starts' => $data["now_date"],
201 );
202
203 $ch = curl_init();
204 curl_setopt($ch, CURLOPT_URL, $data["site_url"]);
205 curl_setopt($ch, CURLOPT_POST, 1);
206 curl_setopt($ch, CURLOPT_USERAGENT,'curl');
207 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_array);
208 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
209 $response = curl_exec($ch);
210 curl_close($ch);
211 $result = json_decode($response,true);
212
213 if($result !== NULL) {
214 if($data["dev_test"]) {
215 echo "<pre>";
216 print_r($result);
217 echo "<br>";
218 echo "Usuário id: ". $user->member_id ." ||| email: ". $data["email"] ." ||| Atualizado!";
219 echo "</pre>";
220 } else {
221 return true;
222 }
223 } else {
224 if($data["dev_test"]) {
225 echo "<pre>";
226 print_r($result);
227 echo "<br>";
228 echo "Erro ao atualizar!";
229 echo "</pre>";
230 } else {
231 return false;
232 }
233 }
234
235}
236
237function insertUser() {
238
239 $data = processData();
240 $plan = setPlan();
241
242 $post_array = array(
243 'skmb_api_action' => 'create',
244 'key' => $data["token_skmb"],
245 'user_name' => $data["email"],
246 'first_name' => $data["name"],
247 'last_name' => ' ',
248 'password' => $data["password"],
249 'member_since' => $data["now_date"],
250 'membership_level' => $plan["id"],
251 'account_state' => 'active',
252 'email' => $data["email"],
253 'payment_method' => $data["payment_method"],
254 'card_flag' => $data["card_flag"],
255 'data_expiracao' => $data["expire_date"],
256 'country' => ($data["renewal"] == 0) ? "Nova Assinatura" : "Renovação",
257 'id_payment' => $data["op_cod"],
258 'afiliado' => $data["affiliate"],
259 'subscription_starts' => $data["now_date"],
260 );
261
262 $ch = curl_init();
263 curl_setopt($ch, CURLOPT_URL, $data["site_url"]);
264 curl_setopt($ch, CURLOPT_POST, 1);
265 curl_setopt($ch, CURLOPT_USERAGENT,'curl');
266 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_array);
267 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
268 $response = curl_exec($ch);
269 curl_close($ch);
270 $result = json_decode($response,true);
271
272 if($result!==NULL) {
273 if($data["dev_test"]) {
274 echo "<pre>";
275 print_r($result);
276 echo "<br>";
277 echo "Usuário id: ". $result["member"]['member_id'] ." ||| email: ". $result["member"]['email'] ." ||| Cadastrado!";
278 echo "</pre>";
279 } else {
280 return true;
281 }
282 } else {
283 if($data["dev_test"]) {
284 echo "<pre>";
285 print_r($result);
286 echo "<br>";
287 echo "Erro ao cadastrar!";
288 echo "</pre>";
289 } else {
290 return false;
291 }
292 }
293
294}
295
296function sendEmail() {
297
298 $data = processData();
299 $plan = setPlan();
300
301 $to = $data['email'];
302 $pass = $data['password'];
303 $idpgto = $data['op_cod'];
304 $message = "";
305 $message .= "Prezado(a) assinante,\r\n\r\n";
306 $message .= "Seu pagamento referente à assinatura do Câmera Caseira foi APROVADO e seu acesso LIBERADO!\r\n\r\n";
307 $message .= "Os dados de acesso você já escolheu quando preencheu o formulário de pagamento, mas segue abaixo novamente para relembrar:\r\n\r\n";
308 $message .= "E-mail: $to\r\n";
309 $message .= "Senha: $pass\r\n\r\n";
310 $message .= "Plano: ".$plan['name']."\r\n";
311 $message .= "Valor: ".$plan['price']."\r\n\r\n";
312 if( $data["payment_method"] == "cartao" ) {
313 $message .= "Pagamento: Cartão\r\n";
314 $message .= "ATENÇÃO: Na sua fatura virá escrito apenas \"www*MOIP\".\r\n\r\n";
315 } else {
316 $message .= "Pagamento: Boleto\r\n\r\n";
317 }
318 $message .= "- - - - - - - - - - - - - - - - - - - -\r\n\r\n";
319 $message .= "Adicione este e-mail ou nosso domínio assinantes.net à sua lista de remetentes confiáveis.\r\n";
320 $message .= "Caso tenha qualquer dúvida ou precise de suporte, por favor, envie e-mail para suporte@assinantes.net\r\n";
321 $message .= "Para problemas ou suporte em relação ao pagamento, informe o número do pedido: $idpgto\r\n\r\n";
322 $message .= "Atenciosamente,\r\n";
323 $message .= "Assinantes.net\r\n";
324
325 //php mailer variables
326 $from = SMTP_FROM;
327 $support = "suporte@assinantes.net";
328 $subject = "Assinatura aprovada - Acesso liberado";
329 $headers = 'Reply-To: ' . $support . "\r\n";
330
331 //Here put your Validation and send mail
332 $sent = wp_mail($to, $subject, strip_tags($message), $headers);
333 if($sent) {
334 if($data["dev_test"]) {
335 echo "<pre>";
336 print_r($sent);
337 echo "<br>";
338 echo "E-mail enviado com sucesso!";
339 echo "</pre>";
340 } else {
341 return true;
342 }
343 }
344 else {
345 if($data["dev_test"]) {
346 echo "<pre>";
347 print_r($sent);
348 echo "<br>";
349 echo "Erro ao enviar e-mail!";
350 echo "</pre>";
351 } else {
352 return false;
353 }
354 }
355
356}
357
358// PROCCESS
359if($dev_test) {
360 echo "<br> - - - - - - - <br>";
361 $params = "TODOS OS VALORES RETORNADOS DO POST:";
362 foreach($_POST as $key => $value) {
363 $params .= '<br>' . $key . '=' . $value;
364 }
365 echo "<pre>";
366 print_r($params);
367 echo "</pre>";
368}
369
370if( checkSecurity() ) {
371 if( checkByEmail() ) {
372 if( updateUser() ) {
373 echo "1";
374 }
375 } else {
376 if( insertUser() ) {
377 echo "1";
378 }
379 }
380} else {
381 if($dev_test) {
382 echo "Falha na autenticação!";
383 } else {
384 echo "0";
385 }
386}
387// PROCCESS
388