-
Notifications
You must be signed in to change notification settings - Fork 3
/
logIPN.php
64 lines (60 loc) · 1.77 KB
/
logIPN.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
63
64
<?php
/**
* Grava a mensagem da notificação em uma base de dados para
* verificação de duplicidade e, se for o caso, análise das
* notificações recebidas.
*
* @param PDO $pdo Objeto de conexão com a base.
* @param array $message Mensagem IPN
*
* @return boolean
*/
function logIPN(PDO $pdo, array $message)
{
$stm = $pdo->prepare('
INSERT INTO `ipn`(
`txn_id`,
`txn_type`,
`receiver_email`,
`payment_status`,
`pending_reason`,
`reason_code`,
`custom`,
`invoice`,
`notification`,
`hash`
) VALUES (
:txn_id,
:txn_type,
:receiver_email,
:payment_status,
:pending_reason,
:reason_code,
:custom,
:invoice,
:notification,
:hash
);');
$ipn = array_merge(array(
'txn_id' => null,
'txn_type' => null,
'payment_status' => null,
'pending_reason' => null,
'reason_code' => null,
'custom' => null,
'invoice' => null
), $message);
$notification = serialize($message);
$hash = md5($notification);
$stm->bindValue(':txn_id', $ipn['txn_id']);
$stm->bindValue(':txn_type', $ipn['txn_type']);
$stm->bindValue(':receiver_email', $ipn['receiver_email']);
$stm->bindValue(':payment_status', $ipn['payment_status']);
$stm->bindValue(':pending_reason', $ipn['pending_reason']);
$stm->bindValue(':reason_code', $ipn['reason_code']);
$stm->bindValue(':custom', $ipn['custom']);
$stm->bindValue(':invoice', $ipn['invoice']);
$stm->bindValue(':notification', $notification);
$stm->bindValue(':hash', $hash);
return $stm->execute();
}