/**
  * pretty much a helper function to set up the request
  */
 public static function from_consumer_and_token($consumer, $token, $http_method, $http_url, $parameters = NULL)
 {
     $parameters = $parameters ? $parameters : array();
     $defaults = array("oauth_version" => OAuthRequest::$version, "oauth_nonce" => OAuthRequest::generate_nonce(), "oauth_timestamp" => OAuthRequest::generate_timestamp(), "oauth_consumer_key" => $consumer->key);
     if ($token) {
         $defaults['oauth_token'] = $token->key;
     }
     $parameters = array_merge($defaults, $parameters);
     return new OAuthRequest($http_method, $http_url, $parameters);
 }
 function getLenderPaymentApiDetails($ids, $kiva_loan_ids)
 {
     $config = $this->getController()->getServiceLocator()->get('Config');
     $kivaAccessArray = $this->setKivaConfig($config);
     $resource_url = $config['resource_url'] . "my/loans/" . $ids . "/balances.json";
     $credentials = $config['kiva_credentials'];
     $basket_req = OAuthRequest::from_consumer_and_token($kivaAccessArray['consumer'], $kivaAccessArray['access_token'], "GET", $resource_url . '.json');
     $basket_req->sign_request($kivaAccessArray['sig_method'], $kivaAccessArray['consumer'], $kivaAccessArray['access_token']);
     $opts = array('http' => array('ignore_errors' => true, 'method' => 'GET', 'header' => "Authorization: Basic " . base64_encode($credentials)));
     $context = stream_context_create($opts);
     $loan_balances = file_get_contents($basket_req, false, $context);
     $loan_balances_obj = json_decode($loan_balances);
     foreach ($loan_balances_obj->balances as $balance) {
         $loan = $kiva_loan_ids[$balance->id];
         $loan = $this->getEntityManager()->getRepository('Loan\\Entity\\Loan')->find($loan['id']);
         $loan->setTotalAMountDenotedApi($balance->total_amount_purchased);
         $this->getEntityManager()->persist($loan);
         $this->getEntityManager()->flush();
     }
     return $loan_balances_obj;
 }