예제 #1
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Form($this->getConfig('testing') ? self::TEST_URL : self::LIVE_URL);
     $a->vendor_name = $this->getConfig('vendor_name');
     $a->payment_alert = $this->getDi()->config->get('admin_email');
     $a->__set($invoice->getLineDescription(), $invoice->first_total);
     $a->payment_reference = $invoice->public_id;
     $a->receipt_address = $invoice->getEmail();
     if (floatval($invoice->first_tax) > 0) {
         $a->gst_rate = $invoice->tax_rate;
         $a->gst_added = 'true';
     }
     $if = array();
     $a->__set($if[] = 'E-Mail', $invoice->getEmail());
     $a->__set($if[] = 'Country', $this->getCountry($invoice));
     $a->__set($if[] = 'Name', $invoice->getName());
     $a->__set($if[] = 'Street/PO Box', $invoice->getStreet());
     $a->__set($if[] = 'City', $invoice->getCity());
     $a->__set($if[] = 'State', $this->getState($invoice));
     $a->__set($if[] = 'Post Code', $invoice->getZip());
     $a->__set($if[] = 'Telephone Number', $invoice->getPhone());
     $a->information_fields = implode(',', $if);
     $a->return_link_url = $this->getReturnUrl();
     $a->reply_url = $this->getPluginUrl('ipn') . '?invoice=' . $invoice->public_id;
     $a->reply_link_url = $this->getPluginUrl('ipn') . '?invoice=' . $invoice->public_id;
     $result->setAction($a);
 }
예제 #2
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Form(self::URL);
     $a->co_code = $this->getConfig('co_code');
     $a->pi_code = $invoice->getItem(0)->getBillingPlanData('epoch_product_id');
     if ($site_subcat = $invoice->getItem(0)->getBillingPlanData('epoch_site_subcat')) {
         $a->site_subcat = $site_subcat;
     }
     $a->reseller = 'a';
     $a->zip = $invoice->getZip();
     $a->email = $invoice->getEmail();
     $a->country = $invoice->getCountry();
     $a->no_userpass = self::YES;
     $a->name = $invoice->getName();
     $a->street = $invoice->getStreet();
     $a->phone = $invoice->getPhone();
     $a->city = $invoice->getCity();
     $a->state = $invoice->getState();
     $a->pi_returnurl = $this->getPluginUrl("thanks");
     $a->response_post = self::YES;
     $a->x_payment_id = $invoice->public_id;
     if ($this->getConfig('ach_form') == self::YES) {
         $a->ach_form = self::YES;
     }
     $result->setAction($a);
 }
예제 #3
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Redirect($this->getConfig('testing') ? self::TEST_URL : self::URL);
     $a->instId = $this->getConfig('installation_id');
     $a->cartId = $invoice->public_id;
     $a->currency = $invoice->currency;
     $a->desc = $invoice->getLineDescription();
     $a->email = $invoice->getEmail();
     $a->name = $invoice->getName();
     $a->address = $invoice->getStreet();
     $a->city = $invoice->getCity();
     $a->state = $invoice->getState();
     $a->postcode = $invoice->getZip();
     //$a->MC_callback = preg_replace('|^https?://|', '', $this->getPluginUrl('ipn'));
     $a->amount = $invoice->first_total;
     if ($this->getConfig('testing')) {
         $a->testMode = 100;
         $a->name = 'CAPTURE';
     }
     if ($invoice->rebill_times) {
         if ($invoice->rebill_times != IProduct::RECURRING_REBILLS) {
             $a->noOfPayments = $invoice->rebill_times;
         }
         $a->futurePayType = 'regular';
         list($c, $u) = $this->period2Wp($invoice->second_period);
         $a->intervalUnit = $u;
         $a->intervalMult = $c;
         $a->normalAmount = $invoice->second_total;
         $a->option = 0;
         list($c, $u) = $this->period2Wp($invoice->first_period);
         $a->startDelayMult = $c;
         $a->startDelayUnit = $u;
     }
     $result->setAction($a);
 }
예제 #4
0
파일: paypoint.php 프로젝트: grlf/eyedock
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Redirect(self::URL);
     $a->merchant = $this->getConfig('merchant');
     $a->trans_id = $invoice->public_id;
     $a->amount = $invoice->first_total;
     $a->callback = $this->getPluginUrl('thanks');
     $a->digest = $this->calculateDigest($a);
     $a->bill_addr_1 = $invoice->getStreet();
     $a->bill_city = $invoice->getCity();
     $a->bill_country = $invoice->getCountry();
     $a->bill_email = $invoice->getEmail();
     $a->bill_name = $invoice->getName();
     $a->bill_post_code = $invoice->getZip();
     $a->bill_state = $invoice->getState();
     $a->bill_tel = $invoice->getPhone();
     $a->currency = $invoice->currency;
     $a->options = "cb_post=true,md_flds=trans_id:amount:callback";
     if ($invoice->rebill_times) {
         // Recurring payment;
         $a->repeat = sprintf("%s/%s/%s:%s", gmdate('Ymd', strtotime($invoice->calculateRebillDate(1))), $this->getPeriod($invoice->second_period), $invoice->rebill_times == IProduct::RECURRING_REBILLS ? '-1' : $invoice->rebill_times, $invoice->second_total);
         $a->repeat_callback = $a->callback;
     }
     if ($this->getConfig('testing')) {
         $a->test_status = 'true';
     }
     $result->setAction($a);
 }
예제 #5
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Form(self::URL);
     $vars = array('MERCHANT' => $this->getConfig('email'), 'COUNTRY_ID' => $this->getConfig('country'), 'PAYMENT_METHOD_AVAILABLE' => 'all', 'TRANSACTION_ID' => $invoice->public_id);
     $i = '1';
     foreach ($invoice->getItems() as $item) {
         //Creating new format without dot for $item->first_price
         $price = str_replace('.', '', $item->first_total);
         $vars['ITEM_NAME_' . $i] = $item->item_title;
         $vars['ITEM_CODE_' . $i] = $item->item_id;
         $vars['ITEM_AMMOUNT_' . $i] = $price;
         $vars['ITEM_QUANTITY_' . $i] = $item->qty;
         $vars['ITEM_CURRENCY_' . $i] = $item->currency;
         $i++;
     }
     $vars['CURRENCY'] = strtoupper($invoice->currency);
     foreach ($vars as $k => $v) {
         $a->__set($k, $v);
     }
     $a->__set('BUYER_FNAME', $invoice->getFirstName());
     $a->__set('BUYER_LNAME', $invoice->getLastName());
     $a->__set('BUYER_EMAIL', $invoice->getEmail());
     $a->__set('BUYER_PHONE', $invoice->getPhone());
     $a->__set('BUYER_STREET', $invoice->getStreet());
     $a->__set('BUYER_STATE', $invoice->getState());
     $a->__set('BUYER_CITY', $invoice->getCity());
     $a->__set('BUYER_COUNTRY', $invoice->getCountry());
     $a->__set('BUYER_ZIP_CODE', $invoice->getZip());
     $a->__set('BUYER_CITY', $invoice->getCity());
     $a->__set('BUYER_STATE', $invoice->getState());
     $a->__set('LANGUAGE', $this->getConfig('language', 'es'));
     $result->setAction($a);
 }
예제 #6
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $user = $invoice->getUser();
     $a = new Am_Paysystem_Action_Redirect($this->getConfig('testing') ? self::SANDBOX_URL : self::LIVE_URL);
     $result->setAction($a);
     $a->StoreKey = $this->getConfig('storekey');
     $a->CustomerRefNo = $invoice->public_id;
     $a->PaymentType = '';
     $a->CardAction = '0';
     $a->OrderID = $invoice->invoice_id;
     $a->UserID = $invoice->getLogin();
     $a->Email = $invoice->getEmail();
     $a->CustomerIP = $user->remote_addr ? $user->remote_addr : $_SERVER['REMOTE_ADDR'];
     $a->Bname = $invoice->getFirstName() . ' ' . $invoice->getLastName();
     $a->Baddress1 = $user->street;
     $a->Bcity = $user->city;
     $a->Bpostalcode = $user->zip;
     $a->Bcountry = $user->country;
     $a->Sname = $invoice->getFirstName() . ' ' . $invoice->getLastName();
     $a->Saddress1 = $user->street;
     $a->Scity = $user->city;
     $a->Spostalcode = $user->zip;
     $a->Scountry = $user->country;
     $a->SubTotal = $invoice->first_total - $invoice->first_tax;
     $a->Tax1 = $invoice->first_tax;
     $a->ThanksURL = $this->getPluginUrl("thanks");
     $result->setAction($a);
 }
예제 #7
0
파일: paypro.php 프로젝트: grlf/eyedock
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Redirect(self::URL);
     $a->products = current(array_filter(array($invoice->getItem(0)->getBillingPlanData('paypro_product_id'), $this->getConfig('product_id'))));
     $id = $this->invoice->getSecureId("THANKS");
     $desc = array();
     foreach ($invoice->getItems() as $it) {
         if ($it->first_total > 0) {
             $desc[] = $it->item_title;
         }
     }
     $desc = implode(',', $desc);
     $desc .= ". (invoice: {$id})";
     $name = $invoice->getLineDescription();
     $hash = "price={$invoice->first_total}-{$invoice->currency}^^^name={$name}^^^desc={$desc}";
     $a->hash = base64_encode($this->getHash($hash));
     $a->CustomField1 = $invoice->public_id;
     $a->firstname = $invoice->getFirstName();
     $a->Lastname = $invoice->getLastName();
     $a->Email = $invoice->getEmail();
     $a->Address = $invoice->getStreet();
     $a->City = $invoice->getCity();
     $a->Country = $invoice->getCountry() == 'GB' ? 'united kingdom' : $invoice->getCountry();
     $a->State = $invoice->getState();
     $a->Zipcode = $invoice->getZip();
     $a->Phone = $invoice->getPhone();
     //$a->lnk = $this->getCancelUrl();
     $result->setAction($a);
 }
예제 #8
0
파일: epayment.php 프로젝트: grlf/eyedock
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Form(self::URL);
     $vars = array('MERCHANT' => $this->getConfig('merchant'), 'ORDER_REF' => $invoice->public_id, 'ORDER_DATE' => $invoice->tm_added);
     foreach ($invoice->getItems() as $item) {
         $vars['ORDER_PNAME[]'] = $item->item_title;
         $vars['ORDER_PCODE[]'] = $item->item_id;
         $vars['ORDER_PRICE[]'] = $item->first_price;
         $vars['ORDER_QTY[]'] = $item->qty;
         $vars['ORDER_VAT[]'] = $item->first_tax;
     }
     $vars['ORDER_SHIPPING'] = 0;
     $vars['PRICES_CURRENCY'] = strtoupper($invoice->currency);
     $vars['DISCOUNT'] = $invoice->first_discount;
     foreach ($vars as $k => $v) {
         $a->__set($k, $v);
     }
     $a->__set('ORDER_HASH', $this->calculateHash($vars));
     $a->__set('BILL_FNAME', $invoice->getFirstName());
     $a->__set('BILL_LNAME', $invoice->getLastName());
     $a->__set('BILL_EMAIL', $invoice->getEmail());
     $a->__set('BILL_PHONE', $invoice->getPhone());
     $a->__set('BILL_ADDRESS', $invoice->getStreet());
     $a->__set('BILL_ZIPCODE', $invoice->getZip());
     $a->__set('BILL_CITY', $invoice->getCity());
     $a->__set('BILL_STATE', $invoice->getState());
     $a->__set('BILL_COUNTRYCODE', $invoice->getCountry());
     $a->__set('LANGUAGE', $this->getConfig('language', 'ro'));
     if ($this->getConfig('testing')) {
         $a->__set('TESTORDER', 'TRUE');
     }
     $result->setAction($a);
 }
예제 #9
0
파일: altcharge.php 프로젝트: grlf/eyedock
 public function _doBill(Invoice $invoice, $doFirst, CcRecord $cc, Am_Paysystem_Result $result)
 {
     list($account_number, $routing_number) = explode('-', $cc->cc_number);
     $r = new Am_HttpRequest(Am_Paysystem_Altcharge::URL, Am_HttpRequest::METHOD_POST);
     $r->addPostParameter('userkey', $this->getConfig('api_key'));
     $r->addPostParameter('type', $invoice->rebill_times ? self::RECURRING : self::SINGLE);
     $r->addPostParameter('version', '2.6');
     $r->addPostParameter('email', $invoice->getEmail());
     $r->addPostParameter('firstName', $cc->cc_name_f);
     $r->addPostParameter('lastName', $cc->cc_name_l);
     $r->addPostParameter('address1', $cc->cc_street);
     $r->addPostParameter('city', $cc->cc_city);
     $r->addPostParameter('state', $cc->cc_state);
     $r->addPostParameter('zip', $cc->cc_zip);
     $r->addPostParameter('country', $cc->cc_country);
     $r->addPostParameter('phone', $cc->cc_phone);
     $r->addPostParameter('ipaddress', $this->getDi()->request->getClientIp());
     $r->addPostParameter('accountNumber', $account_number);
     $r->addPostParameter('routingNumber', $routing_number);
     $r->addPostParameter('merchantMID', $this->getConfig('mid', 1));
     $r->addPostParameter('currency', $invoice->currency ? $invoice->currency : 'USD');
     $r->addPostParameter('misc1', $invoice->public_id);
     $r->addPostParameter('amount', $invoice->first_total);
     if ($invoice->rebill_times) {
         $r->addPostParameter('cycle', $this->getCycle($invoice));
         $r->addPostParameter('desc', $invoice->getLineDescription());
     }
     $r->addPostParameter('signature', $this->getDi()->request->get('signature'));
     $transaction = new Am_Paysystem_Transaction_Altcharge_Sale($this, $invoice, $r, $doFirst);
     $transaction->run($result);
 }
예제 #10
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $vars = $this->getConfig();
     $vars['Amount'] = $invoice->first_total;
     $vars['Currency'] = $invoice->currency;
     $vars['ReturnUrl'] = $this->getPluginUrl('thanks');
     $vars['CancelUrl'] = $this->getCancelUrl();
     $vars['MerchantInvoice'] = $invoice->public_id;
     $vars['MerchantReference'] = $invoice->public_id;
     $vars['CustomerFirstName'] = $invoice->getFirstName();
     $vars['CustomerLastName'] = $invoice->getLastName();
     $vars['CustomerAddress'] = $invoice->getStreet();
     $vars['CustomerCity'] = $invoice->getCity();
     $vars['CustomerState'] = $invoice->getState();
     $vars['InvoiceDescription'] = $invoice->getLineDescription();
     $vars['CustomerCountry'] = $invoice->getCountry();
     $vars['CustomerPhone'] = $invoice->getPhone();
     $vars['CustomerEmail'] = $invoice->getEmail();
     $r = new Am_HttpRequest($this->getUrl() . '?' . http_build_query($vars, '', '&'));
     $response = $r->send()->getBody();
     if (!$response) {
         $this->getDi()->errorLogTable->log('Plugin eWAY: Got empty response from API server');
         $result->setErrorMessages(array(___("An error occurred while handling your payment.")));
         return;
     }
     $xml = simplexml_load_string($response);
     if (!empty($xml->Error)) {
         $this->getDi()->errorLogTable->log('Plugin eWAY: Got error from API: ' . (string) $xml->Error);
         $result->setErrorMessages(array(___("An error occurred while handling your payment.")));
         return;
     }
     $action = new Am_Paysystem_Action_Redirect($xml->URI);
     $result->setAction($action);
 }
예제 #11
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Redirect($this->url);
     $a->link = sprintf('%s/%d/%s', $this->getConfig('account'), $this->invoice->getItem(0)->getBillingPlanData('clickbank_product_id'), $this->invoice->getLineDescription());
     $a->seed = $invoice->public_id;
     $a->name = $invoice->getName();
     $a->email = $invoice->getEmail();
     $a->country = $invoice->getCountry();
     $a->zipcode = $invoice->getZip();
     $a->filterEmpty();
     $result->setAction($a);
 }
예제 #12
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Form(self::URL);
     $params = array('jp_item_type' => 'cart', 'jp_item_name' => $invoice->getLineDescription(), 'order_id' => $invoice->public_id, 'jp_business' => $this->getConfig('business'), 'jp_payee' => $invoice->getEmail(), 'jp_shipping' => '', 'jp_amount_1' => $invoice->currency == 'KES' ? $invoice->first_total : $this->exchange($invoice->first_total), 'jp_amount_2' => 0, 'jp_amount_5' => $invoice->currency == 'USD' ? $invoice->first_total : 0, 'jp_rurl' => $this->getPluginUrl('thanks'), 'jp_furl' => $this->getCancelUrl(), 'jp_curl' => $this->getCancelUrl());
     $invoice->data()->set('jambopay-terms-KES', $params['jp_amount_1']);
     $invoice->data()->set('jambopay-terms-USD', $params['jp_amount_5']);
     $invoice->save();
     foreach ($params as $k => $v) {
         $a->addParam($k, $v);
     }
     $result->setAction($a);
 }
예제 #13
0
 function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Redirect('https://clickbetter.com/pay/' . $invoice->getItem(0)->getBillingPlanData('clickbetter_prod_item'));
     $result->setAction($a);
     $a->api = 'yes';
     $a->custom1 = $invoice->public_id;
     $a->first_name = $invoice->getFirstName();
     $a->last_name = $invoice->getLastName();
     $a->email = $invoice->getEmail();
     $a->city = $invoice->getCity();
     $a->address = $invoice->getStreet();
     $a->phone_no = $invoice->getPhone();
     $a->country = $invoice->getCountry();
     $a->zip = $invoice->getZip();
 }
예제 #14
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Redirect($this->getConfig('testing') == self::MODE_SANDBOX ? self::TESTING_URL : self::URL);
     $a->contract_id = $invoice->getItem(0)->getBillingPlanData("plimus_contract_id");
     $a->custom1 = $invoice->public_id;
     $a->member_id = $invoice->user_id;
     $a->currency = strtoupper($invoice->currency);
     $a->firstName = $invoice->getFirstName();
     $a->lastName = $invoice->getLastName();
     $a->email = $invoice->getEmail();
     if ($this->getConfig('testing') == self::MODE_TEST) {
         $a->testMode = Y;
     }
     $a->filterEmpty();
     $result->setAction($a);
 }
예제 #15
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Redirect(self::FORM_ACTION_URL);
     $a->key = $this->getConfig('a1lite_form_key');
     $a->cost = $invoice->first_total;
     $a->name = $invoice->getLineDescription();
     $a->default_email = $invoice->getEmail();
     $a->order_id = 0;
     $a->comment = $invoice->public_id;
     if ($this->getConfig('type')) {
         $a->type = $this->getConfig('type');
     }
     //verbose - параметр указывает, что делать в случае возникновения ошибки, если нет данных о пользователе (почты или телефона для способов платежа, где они обязательны). Значения: 1 - выдавать ошибку, 0 - перебрасывать на страницу выбора оплаты.
     //phone_number - телефонный номер пользователя
     $result->setAction($a);
 }
예제 #16
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Redirect($this->getConfig('testing') ? self::SANDBOX_URL : self::LIVE_URL);
     $a->merchant_id = $this->getConfig('merchant_id');
     $a->merchant_site_id = $this->getConfig('merchant_site_id');
     $a->currency = $invoice->currency;
     $a->version = '3.0.0';
     $a->merchant_unique_id = $invoice->public_id;
     $a->first_name = $invoice->getFirstName();
     $a->last_name = $invoice->getLastName();
     $a->email = $invoice->getEmail();
     $a->address1 = $invoice->getStreet();
     $a->address2 = $invoice->getStreet1();
     $a->city = $invoice->getCity();
     $a->country = $invoice->getCountry();
     $a->state = $invoice->getState();
     $a->zip = $invoice->getZip();
     $a->phone1 = $invoice->getPhone();
     $a->time_stamp = date("Y-m-d.h:i:s");
     if ($invoice->rebill_times && ($gate2shop_id = $invoice->getItem(0)->getBillingPlanData('gate2shop_id')) && ($gate2shop_template_id = $invoice->getItem(0)->getBillingPlanData('gate2shop_template_id'))) {
         $a->productId = $invoice->getItem(0)->item_id;
         $a->rebillingProductId = $gate2shop_id;
         $a->rebillingTemplateId = $gate2shop_template_id;
         if ($invoice->rebill_times) {
             $a->isRebilling = 'true';
         }
         $a->checksum = md5($this->getConfig('secret_key') . $this->getConfig('merchant_id') . $gate2shop_id . $gate2shop_template_id . $a->time_stamp);
     } else {
         $a->total_amount = $invoice->first_total;
         $a->discount = $invoice->first_discount;
         $a->total_tax = $invoice->first_tax;
         $a->numberofitems = count($invoice->getItems());
         for ($i = 0; $i < $a->numberofitems; $i++) {
             $item = $invoice->getItem($i);
             $a->addParam('item_name_' . ($i + 1), $item->item_title);
             $a->addParam('item_number_' . ($i + 1), $i + 1);
             $a->addParam('item_amount_' . ($i + 1), $item->first_price);
             $a->addParam('item_discount_' . ($i + 1), $item->first_discount);
             $a->addParam('item_quantity_' . ($i + 1), $item->qty);
         }
         $a->checksum = $this->calculateOutgoingHash($a, $invoice);
     }
     $a->filterEmpty();
     $result->setAction($a);
 }
예제 #17
0
파일: payu.php 프로젝트: grlf/eyedock
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $action = new Am_Paysystem_Action_Form(self::ACTION_URL);
     $action->pos_id = $this->getConfig('pos_id');
     $action->pos_auth_key = $this->getConfig('pos_auth_key');
     $action->session_id = $invoice->public_id;
     $action->amount = round($invoice->first_total * 100);
     $action->desc = $invoice->getLineDescription();
     $action->first_name = $invoice->getFirstName();
     $action->last_name = $invoice->getLastName();
     $action->street = $invoice->getStreet();
     $action->city = $invoice->getCity();
     $action->postcode = $invoice->getZip();
     $action->email = $invoice->getEmail();
     $action->city = $this->getConfig('lang');
     $action->client_ip = $_SERVER['REMOTE_ADDR'];
     $result->setAction($action);
 }
예제 #18
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Form($this->getConfig('testing') == self::MODE_SANDBOX ? self::TESTING_URL : self::URL);
     $a->contractId = $invoice->getItem(0)->getBillingPlanData("bluesnap_contract_id");
     $a->custom1 = $invoice->public_id;
     $a->member_id = $invoice->user_id;
     $a->currency = strtoupper($invoice->currency);
     $a->firstName = $invoice->getFirstName();
     $a->lastName = $invoice->getLastName();
     $a->email = $invoice->getEmail();
     $a->overridePrice = sprintf("%.2f", $invoice->first_total);
     $a->overrideRecurringPrice = sprintf("%.2f", $invoice->second_total);
     if ($this->getConfig('testing') == self::MODE_TEST) {
         $a->testMode = Y;
     }
     $a->filterEmpty();
     $result->setAction($a);
 }
예제 #19
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $user = $invoice->getUser();
     $subaccount_id = $invoice->getItem(0)->getBillingPlanData("ccbill_subaccount_id") ? $invoice->getItem(0)->getBillingPlanData("ccbill_subaccount_id") : $this->getConfig('subaccount_id');
     $a = new Am_Paysystem_Action_Redirect(self::URL);
     $a->clientAccnum = $this->getConfig('account');
     $a->clientSubacc = $subaccount_id;
     $a->formName = $invoice->getItem(0)->getBillingPlanData("ccbill_form_id");
     $a->username = $user->login;
     $a->email = $invoice->getEmail();
     $a->customer_fname = $invoice->getFirstName();
     $a->customer_lname = $invoice->getLastName();
     $a->address1 = $invoice->getStreet();
     $a->city = $invoice->getCity();
     $a->state = $invoice->getState();
     $a->zipcode = $invoice->getZip();
     $a->country = $invoice->getCountry();
     $a->phone_number = $invoice->getPhone();
     $a->payment_id = $invoice->public_id;
     $a->customVar1 = $invoice->public_id;
     $a->invoice = $invoice->getSecureId("THANKS");
     $a->referer = $invoice->getUser()->aff_id;
     if ($this->getConfig('dynamic_pricing')) {
         $a->formPrice = $invoice->first_total;
         $a->formPeriod = $this->getDays($invoice->first_period);
         $a->currencyCode = $invoice->currency;
         if ($invoice->rebill_times) {
             if ($invoice->rebill_times == IProduct::RECURRING_REBILLS) {
                 $invoice->rebill_times = 99;
             }
             $a->formRecurringPrice = $invoice->second_total;
             $a->formRecurringPeriod = $this->getDays($invoice->second_period);
             $a->formRebills = $invoice->rebill_times;
             $a->formDigest = md5($s = $invoice->first_total . $this->getDays($invoice->first_period) . $invoice->second_total . $this->getDays($invoice->second_period) . $invoice->rebill_times . $invoice->currency . $this->getConfig('salt'));
         } else {
             $a->formDigest = md5($s = $invoice->first_total . $this->getDays($invoice->first_period) . $invoice->currency . $this->getConfig('salt'));
         }
     } else {
         $a->subscriptionTypeId = $invoice->getItem(0)->getBillingPlanData("ccbill_product_id");
         $a->allowedTypes = $invoice->getItem(0)->getBillingPlanData("ccbill_product_id");
         $a->allowedCurrencies = $this->currency_codes[$invoice->currency];
     }
     $result->setAction($a);
 }
예제 #20
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Form(self::URL_LIVE);
     $result->setAction($a);
     $sequence = rand(1, 1000);
     $vars = array('x_version' => '1.0', 'x_login' => $this->getConfig('login'), 'x_invoice_num' => $invoice->public_id, 'x_method' => $this->getConfig('testmode') ? 'TEST' : 'NONE', 'x_name' => $invoice->getName(), 'x_address' => $invoice->getStreet(), 'x_address2' => $invoice->getStreet2(), 'x_city' => $invoice->getCity(), 'x_country' => $invoice->getCountry(), 'x_state' => $invoice->getState(), 'x_zip' => $invoice->getZip(), 'x_email' => $invoice->getEmail(), 'x_currency_code' => $invoice->currency, 'x_amount' => $price = sprintf('%.2f', $invoice->first_total), 'x_tax_amount' => $tprice = sprintf('%.2f', $invoice->first_tax), 'x_fp_sequence' => $sequence, 'x_fp_arg_list' => 'x_login^x_fp_arg_list^x_fp_sequence^x_amount^x_currency_code', 'x_fp_hash' => '', 'x_fp_hash' => md5($q = $this->getConfig('login') . "^x_login^x_fp_arg_list^x_fp_sequence^x_amount^x_currency_code^" . $sequence . "^" . $price . "^" . $invoice->currency . "^" . $this->getConfig('key')));
     foreach ($invoice->getItems() as $kk => $item) {
         $k = $kk + 1;
         $vars['x_product_sku_' . $k] = $item->item_id;
         $vars['x_product_title_' . $k] = $item->item_title;
         $vars['x_product_quantity_' . $k] = $item->qty;
         $vars['x_product_unitprice_' . $k] = $item->first_total;
         $vars['x_product_url_' . $k] = ROOT_URL;
     }
     foreach ($vars as $k => $v) {
         $a->addParam($k, $v);
     }
     $result->setAction($a);
 }
예제 #21
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Redirect(self::URL);
     $a->LOGIN = $this->getConfig('login');
     $a->PARTNER = $this->getConfig('partner');
     $a->AMOUNT = sprintf('%.2f', $invoice->first_total);
     $a->TYPE = 'S';
     $a->INVOICE = $invoice->public_id;
     $a->DESCRIPTION = $invoice->getLineDescription();
     $a->NAME = $invoice->getName();
     $a->ADDRESS = $invoice->getStreet();
     $a->CITY = $invoice->getCity();
     $a->STATE = $invoice->getState();
     $a->COUNTRY = $invoice->getCountry();
     $a->ZIP = $invoice->getZip();
     $a->EMAIL = $invoice->getEmail();
     $a->PHONE = $invoice->getPhone();
     $result->setAction($a);
 }
예제 #22
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Redirect(self::URL);
     $a->MerchantNumber = $this->getConfig('merchant_id');
     $a->Products = sprintf("%s::1::999::%s::", $invoice->first_total, $invoice->getLineDescription());
     $a->ReturnCGI = $this->getPluginUrl('thanks');
     $a->xxxName = $invoice->getName();
     $a->xxxAddress = $invoice->getStreet();
     $a->xxxCity = $invoice->getCity();
     $a->xxxProvince = $invoice->getState();
     $a->xxxCountry = $invoice->getCountry();
     $a->xxxPostal = $invoice->getZip();
     $a->xxxEmail = $invoice->getEmail();
     $a->xxxVar1 = $invoice->public_id;
     if ($this->getConfig('testing')) {
         $a->Products .= '{TEST}';
     }
     $result->setAction($a);
 }
예제 #23
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Redirect(self::URL);
     $a->con = 'my_cart';
     $a->met = 'addToCart';
     $a->pid = $invoice->getItem(0)->getBillingPlanData('premiumwebcart_id');
     $a->pquantity = 1;
     $a->clearcart = 1;
     $a->action = 2;
     $a->fname = $invoice->getFirstName();
     $a->lname = $invoice->getLastName();
     $a->email = $invoice->getEmail();
     $a->baddress1 = $invoice->getStreet();
     $a->bcity = $invoice->getCity();
     $a->bzip = $invoice->getZip();
     $a->bstate = $invoice->getState();
     $a->bcountry = $invoice->getCountry();
     $a->custom1 = $invoice->public_id;
     $result->setAction($a);
 }
예제 #24
0
파일: webmoney.php 프로젝트: grlf/eyedock
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Form();
     $a->setUrl('https://merchant.wmtransfer.com/lmi/payment.asp');
     $a->LMI_PAYEE_PURSE = $this->getConfig('purse');
     $a->LMI_PAYMENT_AMOUNT = $invoice->first_total;
     $a->LMI_PAYMENT_NO = $invoice->invoice_id;
     $a->AMEMBER_ID = $invoice->public_id;
     $a->LMI_PAYMENT_DESC_BASE64 = base64_encode($invoice->getLineDescription());
     //$a->LMI_MODE = $this->getConfig('testing') ? 1 : 0;
     $a->LMI_SIM_MODE = 2;
     $a->LMI_RESULT_URL = $this->getPluginUrl('ipn');
     $a->LMI_SUCCESS_URL = $this->getPluginUrl('thanks');
     $a->LMI_SUCCESS_METHOD = 1;
     // post to thanks
     $a->LMI_FAIL_URL = $this->getCancelUrl();
     $a->LMI_FAIL_METHOD = 1;
     //
     $a->LMI_PAYMER_EMAIL = $invoice->getEmail();
     $result->setAction($a);
 }
예제 #25
0
파일: multicards.php 프로젝트: grlf/eyedock
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Form(self::URL);
     $a->deferred_entry = 1;
     $a->mer_id = $this->getConfig('mer_id');
     $a->num_items = 1;
     $a->mer_url_idx = $this->getConfig('page_id');
     $a->item1_desc = $invoice->getLineDescription();
     $a->item1_price = $invoice->first_total;
     $a->item1_qty = 1;
     $a->user1 = $invoice->public_id;
     $a->user2 = $invoice->user_id;
     $a->cust_name = $invoice->getName();
     $a->cust_email = $invoice->getEmail();
     $a->card_name = $invoice->getName();
     $a->cust_address1 = $invoice->getStreet();
     $a->cust_city = $invoice->getCity();
     $a->cust_country = $invoice->getCountry();
     $a->cust_state = $invoice->getState();
     $a->cust_zip = $invoice->getZip();
     $result->setAction($a);
 }
예제 #26
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Redirect(self::URL);
     $a->sid = $this->getConfig('seller_id');
     $a->mode = '2CO';
     $i = 0;
     foreach ($invoice->getItems() as $item) {
         $a->{"li_{$i}_type"} = 'product';
         $a->{"li_{$i}_name"} = $item->item_title;
         $a->{"li_{$i}_quantity"} = $item->qty;
         $a->{"li_{$i}_price"} = $item->rebill_times ? $item->second_total : $item->first_total;
         $a->{"li_{$i}_tangible"} = $item->is_tangible ? 'Y' : 'N';
         $a->{"li_{$i}_product_id"} = $item->item_id;
         if ($item->rebill_times) {
             $a->{"li_{$i}_recurrence"} = $this->period2Co($item->first_period);
             if ($item->rebill_times != IProduct::RECURRING_REBILLS) {
                 $a->{"li_{$i}_duration"} = $this->period2Co($item->first_period, $item->rebill_times);
             } else {
                 $a->{"li_{$i}_duration"} = 'Forever';
             }
             $a->{"li_{$i}_startup_fee"} = $item->first_total - $item->second_total;
         }
         $i++;
     }
     $a->skip_landing = 1;
     $a->x_Receipt_Link_URL = $this->getReturnUrl();
     $a->lang = $this->getConfig('lang', 'en');
     $a->merchant_order_id = $invoice->public_id;
     $a->first_name = $invoice->getFirstName();
     $a->last_name = $invoice->getLastName();
     $a->city = $invoice->getCity();
     $a->state = $invoice->getState();
     $a->zip = $invoice->getZip();
     $a->country = $invoice->getCountry();
     $a->email = $invoice->getEmail();
     $a->phone = $invoice->getPhone();
     $result->setAction($a);
 }
예제 #27
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $a = new Am_Paysystem_Action_Redirect(self::URL);
     $id = $this->invoice->getSecureId("THANKS");
     $a->t = $invoice->getLineDescription() . " ({$id})";
     $a->vp = $invoice->first_total;
     $a->s = $this->getConfig('merchant_id');
     $a->p = $this->getConfig('product_id');
     $a->v = 0;
     // variation id
     $a->d = 0;
     // delivery id
     $a->clr = 1;
     // clear anything customer has in basket
     $a->q = 1;
     // qty
     //$a->bb  = 1; // bypass basket
     $a->fn = $invoice->getFirstName();
     $a->sn = $invoice->getLastName();
     $a->em = $invoice->getEmail();
     //$a->lnk = $this->getCancelUrl();
     $result->setAction($a);
 }
예제 #28
0
파일: molpay.php 프로젝트: grlf/eyedock
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     /*
     Payment Method - Identity
     
      * Credit Payment
     Visa & Mastercard (default) - index.php
     Mobile Money                - mobilemoney.php
     Ezeelink                    - ezeelink.php
     
      * Debit Payment
     Maybank2u Fund Transfer - maybank2u.php
     MEPS FPX                - fpx.php
     CIMB Clicks             - cimb.php
     RHB Online              - rhb.php
     Hong Leong Bank Online  - hlb.php
     Mepscash Online         - mepscash.php
     Webcash                 - webcash.php
     */
     $Payment_Method = '';
     $url = sprintf($this->url, $this->getConfig('merchant_id'), $Payment_Method);
     $a = new Am_Paysystem_Action_Redirect($url);
     $a->amount = $invoice->first_total;
     $a->orderid = $invoice->public_id;
     $a->bill_name = utf8_encode($invoice->getName());
     //UTF-8 encoding is recommended for Chinese contents
     $a->bill_email = $invoice->getEmail();
     $a->bill_mobile = $invoice->getPhone();
     $a->cur = $invoice->getCurrency();
     $a->bill_desc = utf8_encode($invoice->getLineDescription());
     //UTF-8 encoding is recommended for Chinese contents
     $a->returnurl = $this->getPluginUrl('thanks');
     $a->vcode = md5($invoice->first_total . $this->getConfig('merchant_id') . $invoice->public_id . $this->getConfig('verify_key'));
     $a->filterEmpty();
     $result->setAction($a);
 }
예제 #29
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $xml = new SimpleXMLElement('<request/>');
     $transactiondetails = $xml->addChild('transactiondetails');
     $transactiondetails->addChild('merchantcode', $this->getConfig('merchantid'));
     $transactiondetails->addChild('merchantpwd', $this->getConfig('merchantpwd'));
     $transactiondetails->addChild('trackid', $invoice->public_id);
     $transactiondetails->addChild('customerip', $request->getClientIp());
     $transactiondetails->addChild('udf1', $invoice->public_id);
     $transactiondetails->addChild('customerid', $invoice->getLogin());
     $paymentdetails = $xml->addChild('paymentdetails');
     $paymentdetails->addChild('paysource', 'enets');
     $paymentdetails->addChild('amount', $invoice->first_total);
     $paymentdetails->addChild('currency', $invoice->currency);
     $paymentdetails->addChild('actioncode', 1);
     $notificationurls = $xml->addChild('notificationurls');
     $notificationurls->addChild('successurl', $this->getReturnUrl());
     $notificationurls->addChild('failurl', $this->getCancelUrl());
     $shippingdetails = $xml->addChild('shippingdetails');
     foreach (array('ship_address' => $invoice->getStreet(), 'ship_email' => $invoice->getEmail(), 'ship_postal' => $invoice->getZip(), 'ship_address2' => $invoice->getStreet1(), 'ship_city' => $invoice->getCity(), 'ship_state' => $invoice->getState(), 'ship_phone' => $invoice->getPhone(), 'ship_country' => $invoice->getCountry()) as $k => $v) {
         $shippingdetails->addChild($k, $v);
     }
     $req = new Am_HttpRequest($this->getConfig('gatewayurl'), Am_HttpRequest::METHOD_POST);
     $req->setHeader('Content-type: text/xml; charset=utf-8')->setHeader('Connection:close')->setBody($xml->asXML());
     $response = $req->send();
     $resxml = @simplexml_load_string($response->getBody());
     if (!$resxml instanceof SimpleXMLElement) {
         throw new Am_Exception_InputError('Incorrect Gateway response received!');
     }
     if ($paymenturl = (string) $resxml->transactionresponse->paymenturl) {
         $a = new Am_Paysystem_Action_Redirect($paymenturl);
         $result->setAction($a);
     } else {
         throw new Am_Exception_InputError('Incorrect Gateway response received! Got: ' . (string) $resxml->responsedesc);
     }
 }
예제 #30
0
 public function _process(Invoice $invoice, Am_Request $request, Am_Paysystem_Result $result)
 {
     $user = $invoice->getUser();
     $subaccount_id = $invoice->getItem(0)->getBillingPlanData("ecsuite_subaccount_id") ? $invoice->getItem(0)->getBillingPlanData("ecsuite_subaccount_id") : $this->getConfig('subaccount_id');
     $a = new Am_Paysystem_Action_Redirect(self::URL);
     $a->clientAccnum = $this->getConfig('account');
     $a->clientSubacc = $subaccount_id;
     $a->subscriptionTypeId = $invoice->getItem(0)->getBillingPlanData("ecsuite_product_id");
     $a->allowedTypes = $invoice->getItem(0)->getBillingPlanData("ecsuite_product_id");
     $a->username = $user->login;
     $a->email = $invoice->getEmail();
     $a->customer_fname = $invoice->getFirstName();
     $a->customer_lname = $invoice->getLastName();
     $a->address1 = $invoice->getStreet();
     $a->city = $invoice->getCity();
     $a->state = $invoice->getState();
     $a->zipcode = $invoice->getZip();
     $a->country = $invoice->getCountry();
     $a->phone_number = $invoice->getPhone();
     $a->payment_id = $invoice->public_id;
     $a->formName = $invoice->getItem(0)->getBillingPlanData("ecsuite_form_id");
     $a->customVar1 = $invoice->public_id;
     $result->setAction($a);
 }