Пример #1
0
 function testAuthorizationWithConfig()
 {
     $config = new Braintree_Configuration(array('environment' => 'development', 'merchant_id' => 'integration_merchant_id', 'publicKey' => 'badPublicKey', 'privateKey' => 'badPrivateKey'));
     $http = new Braintree_Http($config);
     $result = $http->_doUrlRequest('GET', $config->baseUrl() . '/merchants/integration_merchant_id/customers');
     $this->assertEquals(401, $result['status']);
 }
Пример #2
0
 public static function createGrant($gateway, $params)
 {
     $http = new Braintree_Http($gateway->config);
     $http->useClientCredentials();
     $response = $http->post('/oauth_testing/grants', array('grant' => $params));
     return $response['grant']['code'];
 }
Пример #3
0
 /**
  * 
  * @return Braintree_AddOn[]
  */
 public function all()
 {
     $path = $this->_config->merchantPath() . '/add_ons';
     $response = $this->_http->get($path);
     $addOns = array("addOn" => $response['addOns']);
     return Braintree_Util::extractAttributeAsArray($addOns, 'addOn');
 }
 /**
  * 
  * @param string $settlement_date
  * @param string $groupByCustomField
  * @return Braintree_SettlementBatchSummary|Braintree_Result_Error
  */
 public function generate($settlement_date, $groupByCustomField = NULL)
 {
     $criteria = array('settlement_date' => $settlement_date);
     if (isset($groupByCustomField)) {
         $criteria['group_by_custom_field'] = $groupByCustomField;
     }
     $params = array('settlement_batch_summary' => $criteria);
     $path = $this->_config->merchantPath() . '/settlement_batch_summary';
     $response = $this->_http->post($path, $params);
     if (isset($groupByCustomField)) {
         $response['settlementBatchSummary']['records'] = $this->_underscoreCustomField($groupByCustomField, $response['settlementBatchSummary']['records']);
     }
     return $this->_verifyGatewayResponse($response);
 }
Пример #5
0
 function testAll_returnsAllPlans()
 {
     $newId = strval(rand());
     $params = array("id" => $newId, "billingDayOfMonth" => "1", "billingFrequency" => "1", "currencyIsoCode" => "USD", "description" => "some description", "name" => "php test plan", "numberOfBillingCycles" => "1", "price" => "1.00", "trialDuration" => "3", "trialDurationUnit" => "day", "trialPeriod" => "true");
     Braintree_Http::post("/plans/create_plan_for_tests", array("plan" => $params));
     $addOnParams = array("kind" => "add_on", "plan_id" => $newId, "amount" => "1.00", "name" => "add_on_name");
     Braintree_Http::post("/modifications/create_modification_for_tests", array("modification" => $addOnParams));
     $discountParams = array("kind" => "discount", "plan_id" => $newId, "amount" => "1.00", "name" => "discount_name");
     Braintree_Http::post("/modifications/create_modification_for_tests", array("modification" => $discountParams));
     $plans = Braintree_Plan::all();
     foreach ($plans as $plan) {
         if ($plan->id == $newId) {
             $actualPlan = $plan;
         }
     }
     $this->assertNotNull($actualPlan);
     $this->assertEquals($params["billingDayOfMonth"], $actualPlan->billingDayOfMonth);
     $this->assertEquals($params["billingFrequency"], $actualPlan->billingFrequency);
     $this->assertEquals($params["currencyIsoCode"], $actualPlan->currencyIsoCode);
     $this->assertEquals($params["description"], $actualPlan->description);
     $this->assertEquals($params["name"], $actualPlan->name);
     $this->assertEquals($params["numberOfBillingCycles"], $actualPlan->numberOfBillingCycles);
     $this->assertEquals($params["price"], $actualPlan->price);
     $this->assertEquals($params["trialDuration"], $actualPlan->trialDuration);
     $this->assertEquals($params["trialDurationUnit"], $actualPlan->trialDurationUnit);
     $this->assertEquals($params["trialPeriod"], $actualPlan->trialPeriod);
     $addOn = $actualPlan->addOns[0];
     $this->assertEquals($addOnParams["name"], $addOn->name);
     $discount = $actualPlan->discounts[0];
     $this->assertEquals($discountParams["name"], $discount->name);
 }
Пример #6
0
 public static function all()
 {
     $response = Braintree_Http::get('/plans');
     if (key_exists('plans', $response)) {
         $plans = array("plan" => $response['plans']);
     } else {
         $plans = array("plan" => array());
     }
     return Braintree_Util::extractAttributeAsArray($plans, 'plan');
 }
 public static function search($query)
 {
     $criteria = array();
     foreach ($query as $term) {
         $criteria[$term->name] = $term->toparam();
     }
     $response = Braintree_Http::post('/verifications/advanced_search_ids', array('search' => $criteria));
     $pager = array('className' => __CLASS__, 'classMethod' => 'fetch', 'methodArgs' => array($query));
     return new Braintree_ResourceCollection($response, $pager);
 }
Пример #8
0
 function testGatewayAll_returnsAllAddOns()
 {
     $newId = strval(rand());
     $addOnParams = array("amount" => "100.00", "description" => "some description", "id" => $newId, "kind" => "add_on", "name" => "php_add_on", "neverExpires" => "false", "numberOfBillingCycles" => "1");
     $http = new Braintree_Http(Braintree_Configuration::$global);
     $path = Braintree_Configuration::$global->merchantPath() . "/modifications/create_modification_for_tests";
     $http->post($path, array("modification" => $addOnParams));
     $gateway = new Braintree_Gateway(array('environment' => 'development', 'merchantId' => 'integration_merchant_id', 'publicKey' => 'integration_public_key', 'privateKey' => 'integration_private_key'));
     $addOns = $gateway->addOn()->all();
     foreach ($addOns as $addOn) {
         if ($addOn->id == $newId) {
             $actualAddOn = $addOn;
         }
     }
     $this->assertNotNull($actualAddOn);
     $this->assertEquals($addOnParams["amount"], $actualAddOn->amount);
     $this->assertEquals($addOnParams["description"], $actualAddOn->description);
     $this->assertEquals($addOnParams["id"], $actualAddOn->id);
 }
 function testSandboxSSL()
 {
     try {
         Braintree_Configuration::environment('sandbox');
         $this->setExpectedException('Braintree_Exception_Authentication');
         Braintree_Http::get('/');
     } catch (Exception $e) {
         Braintree_Configuration::environment('development');
         throw $e;
     }
     Braintree_Configuration::environment('development');
 }
Пример #10
0
 function testSslError()
 {
     try {
         Braintree_Configuration::environment('sandbox');
         $this->setExpectedException('Braintree_Exception_SSLCertificate');
         //ip address of api.braintreegateway.com
         Braintree_Http::_doUrlRequest('get', '204.109.13.121');
     } catch (Exception $e) {
         Braintree_Configuration::environment('development');
         throw $e;
     }
     Braintree_Configuration::environment('development');
 }
 public static function generate($settlement_date, $groupByCustomField = NULL)
 {
     $criteria = array('settlement_date' => $settlement_date);
     if (isset($groupByCustomField)) {
         $criteria['group_by_custom_field'] = $groupByCustomField;
     }
     $params = array('settlement_batch_summary' => $criteria);
     $response = Braintree_Http::post('/settlement_batch_summary', $params);
     if (isset($groupByCustomField)) {
         $response['settlementBatchSummary']['records'] = self::_underscoreCustomField($groupByCustomField, $response['settlementBatchSummary']['records']);
     }
     return self::_verifyGatewayResponse($response);
 }
Пример #12
0
 function testGatewayAll_returnsAllPlans()
 {
     $newId = strval(rand());
     $params = array("id" => $newId, "billingDayOfMonth" => "1", "billingFrequency" => "1", "currencyIsoCode" => "USD", "description" => "some description", "name" => "php test plan", "numberOfBillingCycles" => "1", "price" => "1.00", "trialPeriod" => "false");
     $http = new Braintree_Http(Braintree_Configuration::$global);
     $path = Braintree_Configuration::$global->merchantPath() . "/plans/create_plan_for_tests";
     $http->post($path, array("plan" => $params));
     $gateway = new Braintree_Gateway(array('environment' => 'development', 'merchantId' => 'integration_merchant_id', 'publicKey' => 'integration_public_key', 'privateKey' => 'integration_private_key'));
     $plans = $gateway->plan()->all();
     foreach ($plans as $plan) {
         if ($plan->id == $newId) {
             $actualPlan = $plan;
         }
     }
     $this->assertNotNull($actualPlan);
     $this->assertEquals($params["billingDayOfMonth"], $actualPlan->billingDayOfMonth);
     $this->assertEquals($params["billingFrequency"], $actualPlan->billingFrequency);
     $this->assertEquals($params["currencyIsoCode"], $actualPlan->currencyIsoCode);
     $this->assertEquals($params["description"], $actualPlan->description);
     $this->assertEquals($params["name"], $actualPlan->name);
     $this->assertEquals($params["numberOfBillingCycles"], $actualPlan->numberOfBillingCycles);
     $this->assertEquals($params["price"], $actualPlan->price);
 }
 function testSearch_daysPastDue()
 {
     $creditCard = Braintree_SubscriptionTestHelper::createCreditCard();
     $triallessPlan = Braintree_SubscriptionTestHelper::triallessPlan();
     $subscription = Braintree_Subscription::create(array('paymentMethodToken' => $creditCard->token, 'planId' => $triallessPlan['id']))->subscription;
     Braintree_Http::put('/subscriptions/' . $subscription->id . '/make_past_due', array('daysPastDue' => 5));
     $found = false;
     $collection = Braintree_Subscription::search(array(Braintree_SubscriptionSearch::daysPastDue()->between(2, 10)));
     foreach ($collection as $item) {
         $found = true;
         $this->assertTrue($item->daysPastDue <= 10);
         $this->assertTrue($item->daysPastDue >= 2);
     }
     $this->assertTrue($found);
 }
Пример #14
0
 function testAll_returnsAllDiscounts()
 {
     $newId = strval(rand());
     $discountParams = array("amount" => "100.00", "description" => "some description", "id" => $newId, "kind" => "discount", "name" => "php_discount", "neverExpires" => "false", "numberOfBillingCycles" => "1");
     Braintree_Http::post("/modifications/create_modification_for_tests", array("modification" => $discountParams));
     $discounts = Braintree_Discount::all();
     foreach ($discounts as $discount) {
         if ($discount->id == $newId) {
             $actualDiscount = $discount;
         }
     }
     $this->assertNotNull($actualDiscount);
     $this->assertEquals($discountParams["amount"], $actualDiscount->amount);
     $this->assertEquals($discountParams["description"], $actualDiscount->description);
     $this->assertEquals($discountParams["id"], $actualDiscount->id);
     $this->assertEquals($discountParams["kind"], $actualDiscount->kind);
     $this->assertEquals($discountParams["name"], $actualDiscount->name);
     $this->assertFalse($actualDiscount->neverExpires);
     $this->assertEquals($discountParams["numberOfBillingCycles"], $actualDiscount->numberOfBillingCycles);
 }
Пример #15
0
 public static function escrow($transactionId)
 {
     Braintree_Http::put('/transactions/' . $transactionId . '/escrow');
 }
 private static function _doUpdate($url, $params)
 {
     $response = Braintree_Http::put($url, $params);
     return self::_verifyGatewayResponse($response);
 }
Пример #17
0
 public static function delete($token)
 {
     self::_validateId($token);
     Braintree_Http::delete('/payment_methods/paypal_account/' . $token);
     return new Braintree_Result_Successful();
 }
Пример #18
0
 function testRetryCharge_WithAmount()
 {
     $subscription = Braintree_SubscriptionTestHelper::createSubscription();
     $http = new Braintree_Http(Braintree_Configuration::$global);
     $path = Braintree_Configuration::$global->merchantPath() . '/subscriptions/' . $subscription->id . '/make_past_due';
     $http->put($path);
     $result = Braintree_Subscription::retryCharge($subscription->id, 1000);
     $this->assertTrue($result->success);
     $transaction = $result->transaction;
     $this->assertEquals(1000, $transaction->amount);
     $this->assertNotNull($transaction->processorAuthorizationCode);
     $this->assertEquals(Braintree_Transaction::SALE, $transaction->type);
     $this->assertEquals(Braintree_Transaction::AUTHORIZED, $transaction->status);
 }
 function test_rangeNode_settledAt()
 {
     $transaction = Braintree_Transaction::saleNoValidate(array('amount' => '1000.00', 'creditCard' => array('number' => '4111111111111111', 'expirationDate' => '05/12'), 'options' => array('submitForSettlement' => true)));
     Braintree_Http::put('/transactions/' . $transaction->id . '/settle');
     $transaction = Braintree_Transaction::find($transaction->id);
     $twenty_min_ago = date_create("now -20 minutes", new DateTimeZone("UTC"));
     $ten_min_ago = date_create("now -10 minutes", new DateTimeZone("UTC"));
     $ten_min_from_now = date_create("now +10 minutes", new DateTimeZone("UTC"));
     $collection = Braintree_Transaction::search(array(Braintree_TransactionSearch::id()->is($transaction->id), Braintree_TransactionSearch::settledAt()->between($twenty_min_ago, $ten_min_ago)));
     $this->assertEquals(0, $collection->maximumCount());
     $collection = Braintree_Transaction::search(array(Braintree_TransactionSearch::id()->is($transaction->id), Braintree_TransactionSearch::settledAt()->between($ten_min_ago, $ten_min_from_now)));
     $this->assertEquals(1, $collection->maximumCount());
     $this->assertEquals($transaction->id, $collection->firstItem()->id);
 }
Пример #20
0
 public static function create3DSVerification($merchantAccountId, $params)
 {
     $http = new Braintree_Http(Braintree_Configuration::$global);
     $path = Braintree_Configuration::$global->merchantPath() . '/three_d_secure/create_verification/' . $merchantAccountId;
     $response = $http->post($path, array('threeDSecureVerification' => $params));
     return $response['threeDSecureVerification']['threeDSecureToken'];
 }
Пример #21
0
 public static function cancel($subscriptionId)
 {
     $response = Braintree_Http::put('/subscriptions/' . $subscriptionId . '/cancel');
     return self::_verifyGatewayResponse($response);
 }
Пример #22
0
 public static function all()
 {
     $response = Braintree_Http::get('/plans');
     $plans = array("plan" => $response['plans']);
     return Braintree_Util::extractAttributeAsArray($plans, 'plan');
 }
 /**
  * sends the generate request to the gateway
  *
  * @ignore
  * @param var $url
  * @param array $params
  * @return mixed
  */
 public function _doGenerate($subPath, $params)
 {
     $fullPath = $this->_config->merchantPath() . $subPath;
     $response = $this->_http->post($fullPath, $params);
     return $this->_verifyGatewayResponse($response);
 }
Пример #24
0
 function testRetryCharge_WithAmount()
 {
     $subscription = Braintree_SubscriptionTestHelper::createSubscription();
     Braintree_Http::put('/subscriptions/' . $subscription->id . '/make_past_due');
     $result = Braintree_Subscription::retryCharge($subscription->id, 1000);
     $this->assertTrue($result->success);
     $transaction = $result->transaction;
     $this->assertEquals(1000, $transaction->amount);
     $this->assertNotNull($transaction->processorAuthorizationCode);
     $this->assertEquals(Braintree_Transaction::SALE, $transaction->type);
     $this->assertEquals(Braintree_Transaction::AUTHORIZED, $transaction->status);
 }
 public static function all()
 {
     $response = Braintree_Http::get('/add_ons');
     $addOns = array("addOn" => $response['addOns']);
     return Braintree_Util::extractAttributeAsArray($addOns, 'addOn');
 }
Пример #26
0
 public static function create3DSVerification($merchantAccountId, $params)
 {
     $response = Braintree_Http::post('/three_d_secure/create_verification/' . $merchantAccountId, array('threeDSecureVerification' => $params));
     return $response['threeDSecureVerification']['threeDSecureToken'];
 }
Пример #27
0
 public static function all()
 {
     $response = Braintree_Http::get('/discounts');
     $discounts = array("discount" => $response['discounts']);
     return Braintree_Util::extractAttributeAsArray($discounts, 'discount');
 }
Пример #28
0
 /**
  * sends the create request to the gateway
  *
  * @ignore
  * @param var $url
  * @param array $params
  * @return mixed
  */
 public static function _doCreate($url, $params)
 {
     $response = Braintree_Http::post($url, $params);
     return self::_verifyGatewayResponse($response);
 }
Пример #29
0
 public static function settle($transactionId)
 {
     Braintree_Http::put('/transactions/' . $transactionId . '/settle');
 }