Просмотр исходного кода

Ticket #259 - Improvements in Payments module.

AntonLV 10 лет назад
Родитель
Сommit
7916f84db1

+ 1 - 3
modules/boonex/payment/classes/BxPaymentJoin.php

@@ -55,9 +55,7 @@ class BxPaymentJoin extends BxBaseModPaymentJoin
 		$bOverride = false;
 		$sOverrideError = '';
 
-		bx_import('BxDolAlerts');
-        $oAlert = new BxDolAlerts('system', 'join_after_payment', 0, 0, array('override' => &$bOverride, 'override_error' => &$sOverrideError));
-        $oAlert->alert();
+		bx_alert('system', 'join_after_payment', 0, 0, array('override' => &$bOverride, 'override_error' => &$sOverrideError));
 
         if($bOverride)
         	return;

+ 44 - 11
modules/boonex/payment/classes/BxPaymentModule.php

@@ -377,11 +377,7 @@ class BxPaymentModule extends BxBaseModPaymentModule
 
 		$aPending = $this->_oDb->getOrderPending(array('type' => 'id', 'id' => (int)$aResult['pending_id']));
 
-		//--- 'System' -> 'Before Register Payment' for Alerts Engine ---//
-		bx_import('BxDolAlerts');
-        $oZ = new BxDolAlerts('system', 'before_register_payment', 0, $aPending['client_id'], array('pending' => $aPending));
-        $oZ->alert();
-		//--- 'System' -> 'Before Register Payment' for Alerts Engine ---//
+		$this->onPaymentRegisterBefore($aPending);
 
 		//--- Check "Pay Before Join" situation
 		if((int)$aPending['client_id'] == 0)
@@ -498,11 +494,7 @@ class BxPaymentModule extends BxBaseModPaymentModule
         if($bResult) {
         	$this->_oDb->updateOrderPending($aPending['id'], array('processed' => 1));
 
-			//--- 'System' -> 'Register Payment' for Alerts Engine ---//
-			bx_import('BxDolAlerts');
-	        $oZ = new BxDolAlerts('system', 'register_payment', 0, $iClientId, array('pending' => $aPending));
-	        $oZ->alert();
-			//--- 'System' -> 'Register Payment' for Alerts Engine ---//
+        	$this->onPaymentRegister($aPending);
         }
 
         return $bResult;
@@ -531,7 +523,11 @@ class BxPaymentModule extends BxBaseModPaymentModule
 		if($iCanceled != count($aOrders))
 			return false;
 
-		return $this->_oDb->deleteOrderPending($aPending['id']);
+		$bResult = $this->_oDb->deleteOrderPending($aPending['id']);
+		if($bResult)
+			$this->onPaymentRefund($aPending);
+
+		return $bResult;
 	}
 
 	public function cancelSubscription($mixedPending)
@@ -543,6 +539,43 @@ class BxPaymentModule extends BxBaseModPaymentModule
 		$aItems = $this->_oConfig->descriptorsM2A($aPending['items']);
         foreach($aItems as $aItem)
 			$this->callCancelSubscriptionItem((int)$aItem['module_id'], array($aPending['client_id'], $aPending['seller_id'], $aItem['item_id'], $aItem['item_count'], $aPending['order']));
+
+		$this->onSubscriptionCancel($aPending);
+	}
+
+	public function onPaymentRegisterBefore($aPending, $aResult = array())
+	{
+		//--- 'System' -> 'Before Register Payment' for Alerts Engine ---//
+		bx_alert('system', 'before_register_payment', 0, $aPending['client_id'], array('pending' => $aPending));
+		//--- 'System' -> 'Before Register Payment' for Alerts Engine ---//
+	}
+
+	public function onPaymentRegister($aPending, $aResult = array())
+	{
+		//--- 'System' -> 'Register Payment' for Alerts Engine ---//
+		bx_alert('system', 'register_payment', 0, $aPending['client_id'], array('pending' => $aPending));
+		//--- 'System' -> 'Register Payment' for Alerts Engine ---//
+	}
+
+	public function onPaymentRefund($aPending, $aResult = array())
+	{
+		//--- 'System' -> 'Refund Payment' for Alerts Engine ---//
+		bx_alert('system', 'refund_payment', 0, $aPending['client_id'], array('pending' => $aPending));
+		//--- 'System' -> 'Refund Payment' for Alerts Engine ---//
+	}
+
+	public function onSubscriptionCreate($aPending, $aResult = array())
+	{
+		//--- 'System' -> 'Create Subscription' for Alerts Engine ---//
+		bx_alert('system', 'create_subscription', 0, $aPending['client_id'], array('pending' => $aPending));
+		//--- 'System' -> 'Create Subscription' for Alerts Engine ---//
+	}
+
+	public function onSubscriptionCancel($aPending, $aResult = array())
+	{
+		//--- 'System' -> 'Cancel Subscription' for Alerts Engine ---//
+		bx_alert('system', 'cancel_subscription', 0, $aPending['client_id'], array('pending' => $aPending));
+		//--- 'System' -> 'Cancel Subscription' for Alerts Engine ---//
 	}
 }
 

+ 1 - 0
modules/boonex/payment/classes/BxPaymentProviderChargebee.php

@@ -88,6 +88,7 @@ class BxPaymentProviderChargebee extends BxBaseModPaymentProvider implements iBx
             'error_msg' => _t($aResult['message'])
         ));
 
+        $this->_oModule->onSubscriptionCreate($aPending, $aResult);
         return $aResult;
     }
 

+ 2 - 1
modules/boonex/payment/classes/BxPaymentProviderPayPal.php

@@ -85,7 +85,7 @@ class BxPaymentProviderPayPal extends BxBaseModPaymentProvider implements iBxBas
 
     public function finalizeCheckout(&$aData)
     {
-        if($aData['txn_type'] != 'web_accept' && !isset($aData['tx']))
+        if((!isset($aData['txn_type']) || $aData['txn_type'] != 'web_accept') && !isset($aData['tx']))
         	return array('code' => 1, 'message' => $this->_sLangsPrefix . 'pp_err_no_data_given');
 
 		return $this->_registerCheckout($aData);
@@ -238,6 +238,7 @@ class BxPaymentProviderPayPal extends BxBaseModPaymentProvider implements iBxBas
 
         return array('code' => 0, 'content' => explode("\n", $sResponseContent));
     }
+
     protected function _getReceivedAmount($sCurrencyCode, &$aResultData)
     {
         $fAmount = 0.00;

+ 6 - 0
modules/boonex/payment/classes/BxPaymentProviderStripe.php

@@ -164,6 +164,12 @@ class BxPaymentProviderStripe extends BxBaseModPaymentProvider implements iBxBas
             'error_msg' => _t($aResult['message'])
         ));
 
+        switch($aPending['type']) {
+        	case BX_PAYMENT_TYPE_RECURRING:
+        		$this->_oModule->onSubscriptionCreate($aPending, $aResult);
+        		break;
+        }
+
         return $aResult;
     }
 

+ 3 - 3
modules/boonex/payment/install/langs/en.xml

@@ -278,7 +278,7 @@
 	<string name="_bx_payment_cbee_ssl_dsc"><![CDATA[Enable SSL connection to communicate with Chargebee. Note. URLs below will be updated after saving.]]></string>
 	<string name="_bx_payment_cbee_return_data_url_cpt"><![CDATA[Data return URL]]></string>
 	<string name="_bx_payment_cbee_notify_url_cpt"><![CDATA[Webhooks URL]]></string>
-	<string name="_bx_payment_cbee_msg_subscribed"><![CDATA[Subscription was successfully created.]]></string>
+	<string name="_bx_payment_cbee_msg_subscribed"><![CDATA[Thank you! Subscription created. Please, check your email for further instructions.]]></string>
 	<string name="_bx_payment_txt_cart_chargebee"><![CDATA[Chargebee]]></string>
 
 	<!-- Recurly payment provider -->
@@ -299,7 +299,7 @@
 	<string name="_bx_payment_rcrl_api_key_public_dsc"><![CDATA[Your Recurly Public API Access key]]></string>
 	<string name="_bx_payment_rcrl_return_data_url_cpt"><![CDATA[Data return URL]]></string>
 	<string name="_bx_payment_rcrl_notify_url_cpt"><![CDATA[Webhooks URL]]></string>
-	<string name="_bx_payment_rcrl_msg_subscribed"><![CDATA[Subscription was successfully created.]]></string>
+	<string name="_bx_payment_rcrl_msg_subscribed"><![CDATA[Thank you! Subscription created. Please, check your email for further instructions.]]></string>
 	<string name="_bx_payment_txt_cart_chargebee"><![CDATA[Recurly]]></string>
 
 	<string name="_bx_payment_form_rcrl_card"><![CDATA[Recurly: Card Form]]></string>
@@ -357,7 +357,7 @@
 	<string name="_bx_payment_strp_ssl_dsc"><![CDATA[Enable SSL connection to communicate with Stripe. Note. URLs below will be updated after saving.]]></string>
 	<string name="_bx_payment_strp_notify_url_cpt"><![CDATA[Webhooks URL]]></string>
 	<string name="_bx_payment_strp_msg_charged"><![CDATA[Payment was successfully accepted.]]></string>
-	<string name="_bx_payment_strp_msg_subscribed"><![CDATA[Subscription was successfully created.]]></string>
+	<string name="_bx_payment_strp_msg_subscribed"><![CDATA[Thank you! Subscription created. Please, check your email for further instructions.]]></string>
 	<string name="_bx_payment_strp_txt_checkout_with_single"><![CDATA[{0}]]></string>
 	<string name="_bx_payment_strp_txt_checkout_with_recurring"><![CDATA[Checkout with {0}]]></string>
 	<string name="_bx_payment_txt_cart_stripe"><![CDATA[Stripe]]></string>

+ 3 - 3
modules/boonex/russian/data/langs/bx_payment/ru.xml

@@ -278,7 +278,7 @@
 	<string name="_bx_payment_cbee_ssl_dsc"><![CDATA[Активировать SSL соединение для связи с Chargebee. Внимание. Нижеприведенные ссылки будут обновлены после сохранения.]]></string>
 	<string name="_bx_payment_cbee_return_data_url_cpt"><![CDATA[URL для возврата данных]]></string>
 	<string name="_bx_payment_cbee_notify_url_cpt"><![CDATA[URL для получения webhook-ов]]></string>
-	<string name="_bx_payment_cbee_msg_subscribed"><![CDATA[Подписка была успешно создана.]]></string>
+	<string name="_bx_payment_cbee_msg_subscribed"><![CDATA[Спасибо! Подписка была создана. Пожалуйста, проверьте ваш емэйл для получения дальнейших инструкций.]]></string>
 	<string name="_bx_payment_txt_cart_chargebee"><![CDATA[Chargebee]]></string>
 
 	<!-- Recurly payment provider -->
@@ -299,7 +299,7 @@
 	<string name="_bx_payment_rcrl_api_key_public_dsc"><![CDATA[Ваш Публичный API ключ доступа, предоставленный Recurly.]]></string>
 	<string name="_bx_payment_rcrl_return_data_url_cpt"><![CDATA[URL для возврата данных]]></string>
 	<string name="_bx_payment_rcrl_notify_url_cpt"><![CDATA[URL для получения webhook-ов]]></string>
-	<string name="_bx_payment_rcrl_msg_subscribed"><![CDATA[Подписка была успешно создана.]]></string>
+	<string name="_bx_payment_rcrl_msg_subscribed"><![CDATA[Спасибо! Подписка была создана. Пожалуйста, проверьте ваш емэйл для получения дальнейших инструкций.]]></string>
 	<string name="_bx_payment_txt_cart_chargebee"><![CDATA[Recurly]]></string>
 
 	<string name="_bx_payment_form_rcrl_card"><![CDATA[Recurly: форма ввода карты]]></string>
@@ -357,7 +357,7 @@
 	<string name="_bx_payment_strp_ssl_dsc"><![CDATA[Активировать SSL соединение для связи с Stripe. Внимание. Нижеприведенная Webhooks ссылка будет обновлена после сохранения.]]></string>
 	<string name="_bx_payment_strp_notify_url_cpt"><![CDATA[URL для получения webhook-ов]]></string>
 	<string name="_bx_payment_strp_msg_charged"><![CDATA[Платеж успешно принят.]]></string>
-	<string name="_bx_payment_strp_msg_subscribed"><![CDATA[Подписка успешно создана.]]></string>
+	<string name="_bx_payment_strp_msg_subscribed"><![CDATA[Спасибо! Подписка была создана. Пожалуйста, проверьте ваш емэйл для получения дальнейших инструкций.]]></string>
 	<string name="_bx_payment_strp_txt_checkout_with_single"><![CDATA[{0}]]></string>
 	<string name="_bx_payment_strp_txt_checkout_with_recurring"><![CDATA[Заплатить используя {0}]]></string>
 	<string name="_bx_payment_txt_cart_stripe"><![CDATA[Stripe]]></string>