예제 #1
0
 function createSinglePaymentDlg()
 {
     $params = new HIPAY_MAPI_PaymentParams();
     //The Hipay platform connection parameters. This is not the information used to connect to your Hipay
     //account, but the specific login and password used to connect to the payment platform.
     //The login is the ID of the hipay merchant account receiving the payment, and the password is
     //the « merchant password » set within your Hipay account (site info).
     $params->setLogin('22955', 'mypassword');
     // The amounts will be credited to account 22955, except the taxes which will be credited to account 23192
     $params->setAccounts(22955, 23192);
     // The payment interface will be in International French by default
     $params->setDefaultLang('de_DE');
     // The interface will be the Web interface
     $params->setMedia('WEB');
     //The order content is intended for people at least 16 years old.
     $params->setRating('16+');
     // This is a single payment
     $params->setPaymentMethod(HIPAY_MAPI_METHOD_SIMPLE);
     // The capture take place immediately
     $params->setCaptureDay(HIPAY_MAPI_CAPTURE_IMMEDIATE);
     // The amounts are expressed in Euros, this has to be the same currency as the merchant's account.
     $params->setCurrency('EUR');
     // The merchant-selected identifier for this order is REF6522
     $params->setIdForMerchant('REF6522');
     // Two data elements of type key=value are declared and will be returned to the merchant after the payment in the
     // notification data feed [C].
     $params->setMerchantDatas('id_client', '2000');
     $params->setMerchantDatas('credit', '10');
     // This order relates to the web site which the merchant declared in the Hipay platform.
     // The I.D. assigned to this website is '9'
     $params->setMerchantSiteId(9);
     // If the payment is accepted, the user will be redirected to this page
     $params->setURLOk('http://www.mywebsite.com/success.html ');
     // If the payment is refused, the user will be redirected to this page
     $params->setUrlNok('http://www.mywebsite.com/refused.html ');
     // If the user cancels the payment, he will be redirected to this page
     $params->setUrlCancel('http://www.mywebsite.com/cancel.html ');
     // The email address used to send the notifications, on top of the http notifications.
     // cf chap 19 : RECEIVING A RESULTS NOTIFICATION ABOUT A PAYMENT ACTION
     $params->setEmailAck('*****@*****.**');
     // The merchant's site will be notified of the result of the payment by a call to the script
     // "listen_hipay_notification.php"
     // cf chap 19 : RECEIVING A RESULTS NOTIFICATION ABOUT A PAYMENT ACTION
     $params->setUrlAck('http://www.mywebsite.com/listen_hipay_notification.php');
     // The background color of the interface will be #FFFFFF (default color recommended)
     $t = $params->setBackgroundColor('#FFFFFF');
     $t = $params->check();
     if (!$t) {
         echo "An error occurred while creating the paymentParams object";
         exit;
     }
     // ## Taxes ##
     // Tax at 19.6%
     $tax1 = new HIPAY_MAPI_Tax();
     $tax1->setTaxName('TVA (19.6)');
     $tax1->setTaxVal(19.6, true);
     $t = $tax1->check();
     if (!$t) {
         echo "An error occurred while creating a tax object";
         exit;
     }
     // Fixed tax of 3.50 euros
     $tax2 = new HIPAY_MAPI_Tax();
     $tax2->setTaxName('Taxe fixe');
     $tax2->setTaxVal(3.5, false);
     $t = $tax2->check();
     if (!$t) {
         echo "An error occurred while creating a tax object";
         exit;
     }
     // Tax at 5.5%
     $tax3 = new HIPAY_MAPI_Tax();
     $tax3->setTaxName('TVA (5.5)');
     $tax3->setTaxVal(5.5, true);
     $t = $tax3->check();
     if (!$t) {
         echo "An error occurred while creating a tax object";
         exit;
     }
     //		//## Affiliates ##
     //		// Affiliate who will receive 10% of all the items in the order
     //		$aff1 = new HIPAY_MAPI_Affiliate();
     //		$aff1->setCustomerId(331);
     //		$aff1->setAccountId(59074);
     //		$aff1->setValue(10.0,HIPAY_MAPI_TTARGET_ALL);
     //		$t=$aff1->check();
     //		if (!$t)
     //		{
     //			echo "An error occurred while creating an affiliate object";
     //			exit;
     //		}
     //		// Affiliate who will receive 15% of the amount of the products, insurance and delivery amounts
     //		$aff2 = new HIPAY_MAPI_Affiliate();
     //		$aff2->setCustomerId(332);
     //		$aff2->setAccountId(59075);
     //		$aff2->setValue(15.0,HIPAY_MAPI_TTARGET_ITEM | HIPAY_MAPI_TTARGET_INSURANCE | HIPAY_MAPI_TTARGET_SHIPPING);
     //		$t=$aff2->check();
     //		if (!$t)
     //		{
     //			echo "An error occurred while creating an affiliate object";
     //			exit;
     //		}
     // ##Products (order lines) ##
     // First product: 2 copies of a book at 12.5 Euros per unit on which two taxes are applied
     //(taxes $tax3 and $tax2)
     $item1 = new HIPAY_MAPI_Product();
     $item1->setName('The Fall of Hyperion');
     $item1->setInfo('Simmons, Dan – ISBN 0575076380');
     $item1->setquantity(2);
     $item1->setRef('JV005');
     $item1->setCategory(5);
     $item1->setPrice(12.5);
     $item1->setTax(array($tax3, $tax2));
     $t = $item1->check();
     if (!$t) {
         echo "An error occurred while creating a product object";
         exit;
     }
     // Second product: An example of a product at 2360 Euros, on which 3 taxes are applied
     //($tax1, $tax2 and $tax3)
     $item2 = new HIPAY_MAPI_Product();
     $item2->setName('PC Linux');
     $item2->setInfo('Computer 445');
     $item2->setquantity(1);
     $item2->setRef('PC445');
     $item2->setCategory(2);
     $item2->setPrice(2360);
     $item2->setTax(array($tax1, $tax2, $tax3));
     $t = $item2->check();
     if (!$t) {
         echo "An error occurred while creating a product object";
         exit;
     }
     // ## Order object ##
     $order = new HIPAY_MAPI_Order();
     // Order title and information
     $order->setOrderTitle('order on mywebsite.com');
     $order->setOrderInfo('best products');
     // The order category is 3 (Books)
     // Refer to annex 7 to see how to find out what category your site belongs to.
     $order->setOrderCategory(3);
     // The shipping costs are 1.50 Euros excluding taxes, and $tax1 is applied
     $order->setShipping(1.5, array($tax1));
     // The insurance costs are 2 Euros excluding taxes, and $tax1 and $tax3 are applied
     $order->setInsurance(2, array($tax3, $tax1));
     // The fixed costs are 2.25 Euros excluding taxes, and $tax3 is applied to this amount
     $order->setFixedCost(2.25, array($tax3));
     // This order has two affiliates, $aff1 and $aff2
     $order->setAffiliate(array($aff1, $aff2));
     $t = $order->check();
     if (!$t) {
         echo "An error occurred while creating a product object";
         exit;
     }
     // ## Payment object ##
     try {
         $payment = new HIPAY_MAPI_SimplePayment($params, $order, array($item1, $item2));
     } catch (Exception $e) {
         echo "Error" . $e->getMessage();
     }
     // ## XML representation of this order and sending the feed to the Hipay platform ##
     $xmlTx = $payment->getXML();
     $output = HIPAY_MAPI_SEND_XML::sendXML($xmlTx);
     // ## Processing the platform's response ##
     $r = HIPAY_MAPI_COMM_XML::analyzeResponseXML($output, &$url, &$err_msg);
     if ($r === true) {
         // The internet user is sent to the URL indicated by the Hipay platform
         //header('Location: '.$url) ;
         // echo $url;
         return $url;
     } else {
         // Une erreur est intervenue
         echo $err_msg;
         // $url_error = "/error.html";
         //header('Location: '.$url_error) ;
     }
 }
예제 #2
0
 /**
  * Erzeugt die Basisparameter für den Bezahlvorgang
  * 
  * @param HIPAY_MAPI_PaymentParams $params
  * @param string token
  */
 protected function setupParams(Mage_Sales_Model_Order $order, $token)
 {
     $websiteId = Mage::app()->getStore()->getStoreId();
     //Mage::app()->getStore()->getWebsiteId();
     $accountId = Mage::getStoreConfig('hipay/accountsettings/accountid', $websiteId);
     $merchantPassword = Mage::getStoreConfig('hipay/accountsettings/merchantpassword', $websiteId);
     $merchantSiteId = Mage::getStoreConfig('hipay/accountsettings/merchantsiteid', $websiteId);
     //$accountCurrency    = Mage::getStoreConfig('hipay/accountsettings/accountcurrency');
     $orderCurrency = $order->getOrderCurrency()->getData("currency_code");
     $ageClassification = Mage::getStoreConfig('hipay/accountsettings/ageclassification', $websiteId);
     $notificationEmail = Mage::getStoreConfig('hipay/accountsettings/notificationemail', $websiteId);
     $logoUrl = Mage::getStoreConfig('hipay/extendedaccountsettings/logourl', $websiteId);
     $itemAccountId = Mage::getStoreConfig('hipay/extendedaccountsettings/itemaccountid', $websiteId);
     $taxAccountId = "";
     //Mage::getStoreConfig('hipay/extendedaccountsettings/taxaccountid');
     $insuranceAccountId = "";
     //Mage::getStoreConfig('hipay/extendedaccountsettings/insuranceaccountid');
     $fixcostAccountId = "";
     //Mage::getStoreConfig('hipay/extendedaccountsettings/fixcostaccountid');
     $shippingAccountId = Mage::getStoreConfig('hipay/extendedaccountsettings/shippingaccountid', $websiteId);
     $itemAccountId = empty($itemAccountId) ? $accountId : $itemAccountId;
     $taxAccountId = empty($taxAccountId) ? $itemAccountId : $taxAccountId;
     $insuranceAccountId = empty($insuranceAccountId) ? $itemAccountId : $insuranceAccountId;
     $fixcostAccountId = empty($fixcostAccountId) ? $itemAccountId : $fixcostAccountId;
     $shippingAccountId = empty($shippingAccountId) ? $itemAccountId : $shippingAccountId;
     $nomLog = 'hipay-wallet-payment-' . date('Ymd') . '.log';
     Mage::log('############################', null, $nomLog);
     Mage::log('websiteId = ' . $websiteId, null, $nomLog);
     Mage::log('accountId = ' . $accountId, null, $nomLog);
     Mage::log('merchantPassword = '******'merchantSiteId = ' . $merchantSiteId, null, $nomLog);
     Mage::log('orderCurrency = ' . $orderCurrency, null, $nomLog);
     Mage::log('ageClassification = ' . $ageClassification, null, $nomLog);
     Mage::log('notificationEmail = ' . $notificationEmail, null, $nomLog);
     Mage::log('logoUrl = ' . $logoUrl, null, $nomLog);
     Mage::log('itemAccountId = ' . $itemAccountId, null, $nomLog);
     Mage::log('shippingAccountId = ' . $shippingAccountId, null, $nomLog);
     $params = new HIPAY_MAPI_PaymentParams();
     //The Hipay platform connection parameters. This is not the information used to connect to your Hipay
     //account, but the specific login and password used to connect to the payment platform.
     //The login is the ID of the hipay merchant account receiving the payment, and the password is
     //the « merchant password » set within your Hipay account (site info).
     $params->setLogin($accountId, $merchantPassword);
     // The amounts will be credited to the defined accounts
     $params->setAccounts($itemAccountId, $taxAccountId, $insuranceAccountId, $fixcostAccountId, $shippingAccountId);
     // The payment interface will be in German by default
     $params->setDefaultLang('de_DE');
     // The interface will be the Web interface
     $params->setMedia('WEB');
     //The order content is intended for people at least (ALL, 12+, 16+, 18+) years old.
     $params->setRating($ageClassification);
     // This is a single payment
     $params->setPaymentMethod(HIPAY_MAPI_METHOD_SIMPLE);
     // The capture take place immediately (HIPAY_MAPI_CAPTURE_IMMEDIATE), manually (HIPAY_MAPI_CAPTURE_MANUAL)
     // or delayed (0-7 -> number of days before capture)
     $params->setCaptureDay(HIPAY_MAPI_CAPTURE_IMMEDIATE);
     // The amounts are expressed in Euros, this has to be the same currency as the merchant's account.
     $params->setCurrency($orderCurrency);
     // The merchant-selected identifier for this order
     $params->setIdForMerchant($order->getRealOrderId());
     // Two data elements of type key=value are declared and will be returned to the merchant after the payment in the
     // notification data feed [C].
     //		$params->setMerchantDatas('id_client','2000');
     //		$params->setMerchantDatas('credit','10');
     // This order relates to the web site which the merchant declared in the Hipay platform.
     $params->setMerchantSiteId($merchantSiteId);
     // Set buyer email
     $params->setIssuerAccountLogin($order->getCustomerEmail());
     // If the payment is accepted, the user will be redirected to this page
     $urlOk = Mage::getUrl('hipay/mapi/success/');
     // creates URL 'http://www.mywebsite.com/hipay/mapi/success/'
     $params->setURLOk($urlOk . $token);
     // add security-token
     // If the payment is refused, the user will be redirected to this page
     $urlNok = Mage::getUrl('hipay/mapi/failed');
     // creates URL 'http://www.mywebsite.com/hipay/mapi/failed/'
     $params->setUrlNok($urlNok . $token);
     // add security-token
     // If the user cancels the payment, he will be redirected to this page
     $urlCancel = Mage::getUrl('hipay/mapi/cancel');
     // creates URL 'http://www.mywebsite.com/hipay/mapi/failed/'
     $params->setUrlCancel($urlCancel . $token);
     // add security-token
     // The email address used to send the notifications, on top of the http notifications.
     $params->setEmailAck($notificationEmail);
     // The merchant's site will be notified of the result of the payment by a call to the script
     // "listen_hipay_notification.php"
     $urlAck = Mage::getUrl('hipay/mapi/notification');
     // creates URL 'http://www.mywebsite.com/hipay/mapi/notfication'
     $params->setUrlAck($urlAck);
     // The background color of the interface will be #FFFFFF (default color recommended)
     $params->setBackgroundColor('#FFFFFF');
     //The merchant’s logo URL, this logo will be displayed on the payment pages.
     $params->setLogoUrl($logoUrl);
     if (!$params->check()) {
         $errorTxt = "Hipay: An error occurred while creating the HIPAY_MAPI_PaymentParams object";
         Mage::log($errorTxt);
         return null;
     }
     return $params;
 }