File indexing completed on 2025-02-09 07:14:34
0001 <?php 0002 /** 0003 * ocs-webserver 0004 * 0005 * Copyright 2016 by pling GmbH. 0006 * 0007 * This file is part of ocs-webserver. 0008 * 0009 * This program is free software: you can redistribute it and/or modify 0010 * it under the terms of the GNU Affero General Public License as 0011 * published by the Free Software Foundation, either version 3 of the 0012 * License, or (at your option) any later version. 0013 * 0014 * This program is distributed in the hope that it will be useful, 0015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0017 * GNU Affero General Public License for more details. 0018 * 0019 * You should have received a copy of the GNU Affero General Public License 0020 * along with this program. If not, see <http://www.gnu.org/licenses/>. 0021 **/ 0022 class Default_Model_DbTable_PaypalIpn extends Local_Model_Table 0023 { 0024 protected $_keyColumnsForRow = array('id'); 0025 protected $_key = 'id'; 0026 protected $_name = "paypal_ipn"; 0027 0028 public function addFromIpnMessage($ipnArray, $raw) { 0029 $data = array(); 0030 0031 if(isset($ipnArray['txn_type'])) { 0032 0033 $data['txn_type'] = $ipnArray['txn_type']; 0034 $data['ipn_track_id'] = $ipnArray['ipn_track_id']; 0035 $data['txn_id'] = $ipnArray['txn_id']; 0036 $data['payer_email'] = $ipnArray['payer_email']; 0037 $data['payer_id'] = $ipnArray['payer_id']; 0038 $data['auth_amount'] = $ipnArray['auth_amount']; 0039 $data['mc_currency'] = $ipnArray['mc_currency']; 0040 $data['mc_fee'] = $ipnArray['mc_fee']; 0041 $data['mc_gross'] = $ipnArray['mc_gross']; 0042 $data['memo'] = $ipnArray['memo']; 0043 $data['payer_status'] = $ipnArray['payer_status']; 0044 $data['payment_date'] = $ipnArray['payment_date']; 0045 $data['payment_fee'] = $ipnArray['payment_fee']; 0046 $data['payment_status'] = $ipnArray['payment_status']; 0047 $data['payment_type'] = $ipnArray['payment_type']; 0048 $data['pending_reason'] = $ipnArray['pending_reason']; 0049 $data['reason_code'] = $ipnArray['reason_code']; 0050 $data['custom'] = $ipnArray['custom']; 0051 $data['raw'] = $raw; 0052 0053 } else if(isset($ipnArray['action_type']) && $ipnArray['action_type'] == 'PAY') { 0054 $data['txn_type'] = $ipnArray['transaction_type']; 0055 $data['ipn_track_id'] = $ipnArray['tracking_id']; 0056 $data['txn_id'] = $ipnArray['transaction[0].id']; 0057 $data['payer_email'] = $ipnArray['transaction[0].receiver']; 0058 $data['payer_id'] = $ipnArray['transaction[0].id_for_sender_txn']; 0059 $data['auth_amount'] = $ipnArray['transaction[0].amount']; 0060 $data['memo'] = $ipnArray['memo']; 0061 $data['payer_status'] = $ipnArray['transaction[0].status_for_sender_txn']; 0062 $data['payment_date'] = $ipnArray['reversal_date']; 0063 $data['payment_status'] = $ipnArray['transaction[0].status']; 0064 $data['payment_type'] = $ipnArray['transaction[0].paymentType']; 0065 $data['pending_reason'] = $ipnArray['transaction[0].pending_reason']; 0066 $data['reason_code'] = $ipnArray['reason_code']; 0067 $data['custom'] = $ipnArray['custom']; 0068 $data['raw'] = $raw; 0069 } else { 0070 $data['raw'] = $raw; 0071 } 0072 0073 $this->save($data); 0074 0075 } 0076 0077 }