Fixed spouse payment bug and added paypal destination email check

This commit is contained in:
2014-02-19 17:03:26 +11:00
parent 5e88777054
commit c2eb5ca26e

View File

@@ -74,6 +74,12 @@ function booking_paypal_ipn() {
if (empty($ipn['payment_status']) || ($ipn['payment_status'] != 'Completed' && variable_get('booking_paypal_sandbox', 0) == 0))
return;
//if (strcasecmp($ipn['receiver_email'], variable_get('booking_paypal_account', '') <> 0))
if ($ipn['receiver_email'] !== variable_get('booking_paypal_account', ''))
{
watchdog('booking_paypal', 'Receiving address "!receiver" for paypal payment doesnt match configured address "!configured". Full POST: !id',
array('!id' => var_export($ipn, TRUE), '!receiver' => $ipn['receiver_email'], '!configured' => variable_get('booking_paypal_account', '')), WATCHDOG_ERROR);
}
//Insert record into database and remove temporary booking id field from user
_booking_process_payment($ipn);
@@ -84,6 +90,8 @@ function _booking_process_payment($data) {
global $event;
$balance_payment = false;
//TODO: verify $data['receiver_email'] matches variable_get('booking_paypal_account', '')
//extract the person node id from the invoice
$pos = strpos($data['invoice'], "_");
if (($pos === false) || ($pos == 0))
@@ -110,6 +118,7 @@ function _booking_process_payment($data) {
if ($duplicate_check)
{
watchdog('booking', 'Detected duplicate paypal notifications for transaction id !id, registration id !nid', array('!id' => $data['ipn_track_id'], '!nid' => $nid), WATCHDOG_ERROR);
//return;
}
watchdog('booking', 'Adding payment for user with node id: !id; event id: !eid', array('!id' => $nid, '!eid' => $eid));
@@ -193,7 +202,8 @@ function _booking_process_payment($data) {
//send a notification email
//If there is no outstanding balance, send a payment complete email
if ($total >= $payment->booking_total_pay_reqd)
//if ($total >= $payment->booking_total_pay_reqd)
if (_booking_amount_owing($nid) == 0)
{
//this should always be a balance payment type email, since that tells the user that their payment is completed
_booking_registration_email($nid, TRUE);
@@ -209,7 +219,7 @@ function _booking_process_payment($data) {
->fetchObject();
//update the spouse's status from "not paid" if required
$spouse_status = $spouse->booking_status == 0 ? 1 : $spouse_booking_status;
$spouse_status = $spouse->booking_status == 0 ? 1 : $spouse->booking_status;
watchdog('booking', 'Setting status for spouse id !id to !new from !status', array('!id' => $payment->booking_partner_id,
'!new' => $spouse_status, '!status' => $spouse->booking_status));