function testCloneWithValidations()
 {
     $result = Braintree_Transaction::credit(array('amount' => '100.00', 'creditCard' => array('number' => '5105105105105100', 'expirationDate' => '05/2011')));
     $this->assertTrue($result->success);
     $transaction = $result->transaction;
     $cloneResult = Braintree_Transaction::cloneTransaction($transaction->id, array('amount' => '123.45'));
     $this->assertFalse($cloneResult->success);
     $baseErrors = $cloneResult->errors->forKey('transaction')->onAttribute('base');
     $this->assertEquals(Braintree_Error_Codes::TRANSACTION_CANNOT_CLONE_CREDIT, $baseErrors[0]->code);
 }
 /**
  * Clone a transaction
  *
  * @param $transactionId
  * @param $amount
  *
  * @return bool|mixed
  */
 public function cloneTransaction($transactionId, $amount, $submitForSettlement = true)
 {
     // Attempt to clone the transaction
     try {
         $result = Braintree_Transaction::cloneTransaction($transactionId, array('amount' => $amount, 'options' => array('submitForSettlement' => $submitForSettlement)));
         return $result;
     } catch (Exception $e) {
         // Log the issue
         Gene_Braintree_Model_Debug::log(array('cloneTransaction' => $e));
         return false;
     }
 }
Esempio n. 3
0
 function testCloneTransaction_RaisesErrorOnInvalidProperty()
 {
     $this->setExpectedException('InvalidArgumentException');
     Braintree_Transaction::cloneTransaction('an id', array('amount' => '123.45', 'invalidProperty' => 'foo'));
 }
 /**
  * @param string $transactionId
  * @param array $attribs
  * @return \Braintree_Result_Successful|\Braintree_Result_Error
  */
 public function cloneTransaction($transactionId, array $attribs)
 {
     return \Braintree_Transaction::cloneTransaction($transactionId, $attribs);
 }
Esempio n. 5
0
     echo "</form>";
     echo "--------------------------------------------------------------------------------------------------------------------------";
 } else {
     if ($_REQUEST['_act'] == 'refund_process') {
         $result = Braintree_Transaction::refund((string) $_POST['id'], (string) $_POST['amt']);
         echo "<div style='height:300px; overflow-y:scroll; background-color:#fff;'> <h3>API response</h3>";
         echo json_encode($result, JSON_PRETTY_PRINT);
         echo "</div>";
         exit;
     } else {
         if ($_POST['_act'] == 'find') {
             $result = Braintree_Transaction::find($_POST['id']);
             print_r($result);
         } else {
             if ($_POST['_act'] == 'clone') {
                 $result = Braintree_Transaction::cloneTransaction($_POST['id'], array('amount' => '10.00', 'options' => array('submitForSettlement' => true)));
                 print_r($result);
             } else {
                 if ($_POST['_act'] == 'createCustomer') {
                     if (isset($_POST['data'])) {
                         $postData = explode("&", urldecode($_POST['data']));
                         //[SETTING UP POST DATA TO SUPPORT AJAX]
                         foreach ($postData as $key => $value) {
                             $postValue = explode("=", $value);
                             $_POST[$postValue[0]] = $postValue[1];
                         }
                         unset($_POST['data']);
                     }
                     $result = Braintree_Customer::create(array('firstName' => $_POST['firstName'], 'lastName' => $_POST['lastName'], 'company' => $_POST['company'], 'email' => $_POST['email'], 'phone' => $_POST['phone'], 'fax' => $_POST['fax'], 'website' => $_POST['website'], 'customFields' => array('custom_field_one' => $_POST['custom1'], 'custom_field_two' => $_POST['custom2']), 'paymentMethodNonce' => $_POST["payment_method_nonce"]));
                     $result->success;
                     # true
 /**
  * Clones existing transaction
  * 
  * @param decimal $amount
  * @param string $transactionId
  */
 protected function _cloneTransaction($amount, $transactionId)
 {
     $this->_debug('clone-' . $transactionId . ' amount=' . $amount);
     try {
         $result = Braintree_Transaction::cloneTransaction($transactionId, array('amount' => $amount, 'options' => array('submitForSettlement' => true)));
     } catch (Exception $e) {
         Mage::logException($e);
         return false;
     }
     $this->_debug($result);
     return $result;
 }
Esempio n. 7
0
 public function cloneTransaction($transaction_id, $amount)
 {
     $result = Braintree_Transaction::cloneTransaction($transaction_id, array('amount' => $amount, 'options' => array('submitForSettlement' => true)));
     if ($result->success) {
         return array('success' => 1, 'transaction_id' => $result->transaction->id, 'amount' => $result->transaction->amount, 'currency_code' => $result->transaction->currencyIsoCode, 'type' => $result->transaction->type, 'escrow_status' => $result->transaction->escrowStatus, 'service_fee' => $result->transaction->serviceFeeAmount);
     } else {
         if (count($result->errors->deepAll()) > 0) {
             return array('success' => 0, 'transaction_clone_errors' => $result->errors->deepAll());
         } else {
             return array('success' => 0, 'transaction_clone_errors' => $result->message);
         }
     }
 }