public function saveAction()
 {
     $post_data = $this->getRequest()->getPost();
     if ($post_data) {
         $api_mode = Mage::getStoreConfig('payment/pagarme_settings/mode');
         $api_key = Mage::getStoreConfig('payment/pagarme_settings/apikey_' . $api_mode);
         Pagarme::setApiKey($api_key);
         $post_data['trial_days'] = '0';
         // Always OFF.
         try {
             $plan = new PagarMe_Plan(array_merge($post_data, array('amount' => intval(floatval($post_data['amount']) * 100))));
             $result = $plan->create();
             $post_data['remote_id'] = $result['id'];
             $post_data['payment_methods'] = implode(',', $post_data['payment_methods']);
             if (empty($post_data['charges'])) {
                 $post_data['charges'] = new Zend_Db_Expr('NULL');
             }
             $model = Mage::getModel("pagarme/plans")->addData($post_data)->setId($this->getRequest()->getParam("id"))->save();
             Mage::getSingleton("adminhtml/session")->addSuccess(Mage::helper("adminhtml")->__("Plans was successfully saved"));
             Mage::getSingleton("adminhtml/session")->setPlansData(false);
             if ($this->getRequest()->getParam("back")) {
                 $this->_redirect("*/*/edit", array("id" => $model->getId()));
                 return;
             }
             $this->_redirect("*/*/");
             return;
         } catch (Exception $e) {
             Mage::getSingleton("adminhtml/session")->addError($e->getMessage());
             Mage::getSingleton("adminhtml/session")->setPlansData($this->getRequest()->getPost());
             $this->_redirect("*/*/edit", array("id" => $this->getRequest()->getParam("id")));
             return;
         }
     }
     $this->_redirect("*/*/");
 }
 public function criarPlano($plano)
 {
     $dados = $this->contaPagarme();
     Pagarme::setApiKey($dados['key_api']);
     $plan = new PagarMe_Plan(array('amount' => str_replace(".", "", $plano['valor']), 'days' => intval($plano['meses']) * 30, 'name' => $plano['plano']));
     $plan->create();
     return $plan->id;
 }
 public function testUpdatePlan()
 {
     $subscription = self::createTestSubscription();
     $plan = self::createTestPlan();
     $plan->create();
     $subscription->setPlan($plan);
     $subscription->create();
     $plan2 = new PagarMe_Plan(array('name' => 'Plano 2', 'days' => '10', 'amount' => 4500, 'payment_method' => "credit_card", 'trial_days' => "3"));
     $plan2->create();
     $subscription->plan = $plan2;
     $subscription->save();
     $s2 = PagarMe_Subscription::findById($subscription->id);
     $this->assertEqual($s2->plan->id, $plan2->id);
 }
 protected function _processPlans($payment, $plans)
 {
     $allow_multiples = Mage::getStoreConfigFlag('payment/pagarme_subscriptions/allow_multiples');
     if (count($plans) > 1 && !$allow_multiples) {
         Mage::throwException(Mage::helper('pagarme')->__('Subscription of multiple plans are not allowed!'));
     }
     $api_mode = Mage::getStoreConfig('payment/pagarme_settings/mode');
     $api_key = Mage::getStoreConfig('payment/pagarme_settings/apikey_' . $api_mode);
     Pagarme::setApiKey($api_key);
     $customer_email = $payment->getOrder()->getCustomerEmail();
     $result = null;
     foreach ($plans as $id => $qty) {
         $_plan = Mage::getModel('pagarme/plans')->load($id);
         $subscription = new PagarMe_Subscription(array('plan' => PagarMe_Plan::findById($_plan->getRemoteId()), 'payment_method' => 'boleto', 'customer' => array('email' => $customer_email), 'postback_url' => Mage::getUrl('pagarme/transaction_subscription/postback', array('id' => $payment->getOrder()->getId()))));
         $subscription->create();
         $result = $subscription->current_transaction;
         $transaction = Mage::getModel('pagarme/subscriptions')->setPlanId($_plan->getId())->setRemotePlanId($_plan->getRemoteId())->setRemoteId($subscription->getId())->setTransactionId($result->getId())->setOrderId($payment->getOrder()->getId())->setPaymentMethod($result->getPaymentMethod())->setAmount(intval($result->getAmount()) / 100)->setCost($result->getCost())->setRemoteIP($result->getIp())->setBoletoUrl($result->getBoletoUrl())->setBoletoBarcode($result->getBoletoBarcode())->setBoletoExpirationDate($result->getBoletoExpirationDate())->setStatus($result->getStatus())->setCreatedAt($result->getDateCreated())->setUpdatedAt($result->getDateUpdated())->save();
     }
     // pagar.me info
     $payment->setPagarmeSubscriptionId($subscription->getId())->setPagarmeTransactionId($result->getId())->setPagarmeBoletoUrl($result->getBoletoUrl())->setPagarmeBoletoBarcode($result->getBoletoBarcode())->setPagarmeBoletoExpirationDate($result->getBoletoExpirationDate());
     $payment->setTransactionAdditionalInfo(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS, array('status' => $result->getStatus()));
 }
<?php
if(!empty($_POST)){
     $PLANO     = $_POST['codigoPlano']; 
     $CARD_HASH = $_POST['card_hash'];

    require("Pagarme.php");
    Pagarme::setApiKey("ak_test_VI0RjtmUyIqfXUUYdLHGDOCEUHoUtk");

    $subscription = new PagarMe_Subscription(array(
        'plan' => PagarMe_Plan::findById($PLANO),
        'card_hash' => $CARD_HASH,
        'customer' => array(
            'email' => "*****@*****.**"
        ),
        'postback_url' => "http://requestb.in/t923b4t9"
    ));

    $subscription->create();

}


?>
<html>
<head>
    <meta charset="UTF-8">
  <script src="https://pagar.me/assets/pagarme-v2.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head> 

<body>
Exemple #6
0
 public function testValidate()
 {
     $plan = new PagarMe_Plan();
     $this->expectException(new IsAExpectation('PagarMe_Exception'));
     $plan->setAmount('0');
     $plan->create();
     $plan->setAmount('10000');
     $this->expectException(new IsAExpectation('PagarMe_Exception'));
     $plan->days('0');
     $plan->create();
     $plan->setDays('30');
     $this->expectException(new IsAExpectation('PagarMe_Exception'));
     $plan->setTrialDays('-1');
     $plan->create();
     $plan->setTrialDays("10");
     $this->expectException(new IsAExpectation('PagarMe_Exception'));
     $plan->setName('');
     $plan->create();
     $plan->setName('Plan');
     $plan->create();
     $plan->assertTrue($plan->getId());
 }
Exemple #7
0
 protected function _processPlans($payment, $plans)
 {
     $allow_multiples = Mage::getStoreConfigFlag('payment/pagarme_subscriptions/allow_multiples');
     if (count($plans) > 1 && !$allow_multiples) {
         Mage::throwException(Mage::helper('pagarme')->__('Subscription of multiple plans are not allowed!'));
     }
     $api_mode = Mage::getStoreConfig('payment/pagarme_settings/mode');
     $api_key = Mage::getStoreConfig('payment/pagarme_settings/apikey_' . $api_mode);
     Pagarme::setApiKey($api_key);
     $card_hash = $payment->getPagarmeCardHash() != null ? $payment->getPagarmeCardHash() : $payment->getPagarmeCheckoutHash();
     $customer_email = $payment->getOrder()->getCustomerEmail();
     $result = null;
     foreach ($plans as $id => $qty) {
         $_plan = Mage::getModel('pagarme/plans')->load($id);
         $subscription = new PagarMe_Subscription(array('plan' => PagarMe_Plan::findById($_plan->getRemoteId()), 'payment_method' => 'credit_card', 'card_hash' => $card_hash, 'customer' => array('email' => $customer_email), 'postback_url' => Mage::getUrl('pagarme/transaction_subscription/postback', array('id' => $payment->getOrder()->getId()))));
         $subscription->create();
         $result = $subscription->current_transaction;
         $transaction = Mage::getModel('pagarme/subscriptions')->setRemoteId($result->getId())->setOrderId($payment->getOrder()->getId())->setPaymentMethod($result->getPaymentMethod())->setAmount(intval($result->getAmount()) / 100)->setInstallments($result->getInstallments())->setCost($result->getCost())->setRemoteIP($result->getIp())->setAuthorizationCode($result->getAuthorizationCode())->setTid($result->getTid())->setStatus($result->getStatus())->setCreatedAt($result->getDateCreated())->setUpdatedAt($result->getDateUpdated())->save();
     }
     $payment->setCcOwner($result->getCardHolderName())->setCcLast4($result->getCardLastDigits())->setCcType(Mage::getSingleton('pagarme/source_cctype')->getTypeByBrand($result->getCardBrand()))->setPagarmeTransactionId($result->getId())->setPagarmeAntifraudScore($result->getAntifraudScore())->setTransactionId($result->getId())->setIsTransactionClosed(0);
     $payment->setTransactionAdditionalInfo(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS, array('status' => $result->getStatus()));
 }