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; } }
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); }
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; }
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); } } }