-
Notifications
You must be signed in to change notification settings - Fork 3
/
full-handler.php
62 lines (51 loc) · 2.08 KB
/
full-handler.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
//Incluindo o arquivo que contém a função isIPNValid
require 'isIPNValid.php';
//Incluindo o arquivo que contém a função logIPN
require 'logIPN.php';
//Incluindo o arquivo que contém a função storeCustomer
require 'storeCustomer.php';
//Incluindo o arquivo que contém a função storeTransaction
require 'storeTransaction.php';
//Email da conta do vendedor, que será utilizada para verificar o
//destinatário da notificação.
$receiver_email = '[email protected]';
//Informações para conexão com o banco de dados, que utilizaremos
//para gravar o log.
$mysql = array(
'host' => 'localhost',
'user' => 'usuário',
'pswd' => 'senha',
'dbname' => 'code_sample'
);
//As notificações sempre serão via HTTP POST, então verificamos o método
//utilizado na requisição, antes de fazer qualquer coisa.
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//Antes de trabalhar com a notificação, precisamos verificar se ela
//é válida e, se não for, descartar.
if (!isIPNValid($_POST)) {
return;
}
//Se chegamos até aqui, significa que estamos lidando com uma
//notificação IPN válida. Agora precisamos verificar se somos o
//destinatário dessa notificação, verificando o campo receiver_email.
if ($_POST['receiver_email'] == $receiver_email) {
//Está tudo correto, somos o destinatário da notificação, vamos
//gravar um log dessa notificação.
$pdoattrs = array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
$pdo = new PDO(sprintf('mysql:host=%s;dbname=%s',
$mysql['host'], $mysql['dbname']),
$mysql['user'],
$mysql['pswd'],
$pdoattrs);
if (logIPN($pdo, $_POST)) {
//Log gravado, podemos seguir com as regras de negócio para
//essa notificação.
//gravamos dados do cliente
storeCustomer($pdo, $_POST);
//gravamos dados da transação
storeTransaction($pdo, $_POST);
}
}
}