/** * 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; }