/** * Starts a new purchase * * @param DB $db a connection to the database * @param Amount $price required to start a new ticket. */ public static function create(Config $cfg, DB $db, BitcoinAddress $address) { $prepared = $db->prepare(' INSERT INTO `purchases` ( `customer_address`, `bitcoin_price`, `cur_code` ) VALUES ( :customer_address, :bitcoin_price, :cur_code ) '); $cur = $cfg->getCurrencyCode(); $result = $prepared->execute(array(':customer_address' => $address->get(), ':bitcoin_price' => $cfg->getPricingProvider()->getPrice()->get(), ':cur_code' => $cur)); if ($result === false) { throw new Exception("Unable to create new purchase ticket."); } return self::load($cfg, $db, $db->lastInsertId()); }
private function setProviderCreditReversalDetails($parameters, $providerCreditInfo) { $providerIndex = 0; $providerString = 'ProviderCreditReversalList.member.'; $fieldMappings = array('provider_id' => 'ProviderId', 'credit_reversal_amount' => 'CreditReversalAmount.Amount', 'currency_code' => 'CreditReversalAmount.CurrencyCode'); foreach ($providerCreditInfo as $key => $value) { $value = array_change_key_case($value, CASE_LOWER); $providerIndex = $providerIndex + 1; foreach ($value as $param => $val) { if (array_key_exists($param, $fieldMappings) && trim($val) != '') { $parameters[$providerString . $providerIndex . '.' . $fieldMappings[$param]] = $val; } } // If currency code is not entered take it from the config array if (empty($parameters[$providerString . $providerIndex . '.' . $fieldMappings['currency_code']])) { $parameters[$providerString . $providerIndex . '.' . $fieldMappings['currency_code']] = strtoupper($this->config->getCurrencyCode()); } } return $parameters; }