/// <summary> /// Exchanges from currecny passed as parameter to Main currency /// </summary> /// <param name="currencyCode"></param> /// <returns></returns> public Money ExchangeFrom(string currencyCode) { Money output = Money.Zero; if (AppSettings.Payments.CurrencyMode == CurrencyMode.Fiat) { output = CurrencyExchangeHelper.FromCalculate(this, currencyCode); } else if (AppSettings.Payments.CurrencyMode == CurrencyMode.Cryptocurrency) { var cryptocurrencyExchange = CryptocurrencyFactory.Get(AppSettings.Site.CurrencyCode); output = new Money(cryptocurrencyExchange.ConvertFromMoney(this, currencyCode)); } return(output); }
/// <summary> /// Print Money class object, ex. $1,334.30042 $12.003 /// </summary> public override string ToString() { string output = CurrencyExchangeHelper.TryCalculate(amount).ToStringGlobal(); if (AppSettings.Site.CommasInNumbersEnabled) { String formatCommand = "{0:n" + CoreSettings.GetMaxDecimalPlaces(CurrencyType.Fiat) + "}"; output = String.Format(new System.Globalization.CultureInfo("en-US"), formatCommand, Decimal.Parse(output)); } //Show zeros? if (!AppSettings.Site.ShowRemainingZeros) { output = CutEndingZeros(output); } output = AddCurrencySign(output); return(output); }
public override void ProcessRequest() { var request = context.Request.QueryString; //Set variables TransactionID = HttpUtility.UrlDecode(request["proxy_trans_id"]); Amount = HttpUtility.UrlDecode(request["trans_amount"]); Merchant = HttpUtility.UrlDecode(request["location_id"]); PhoneNumber = HttpUtility.UrlDecode(request["phone"]); Code = HttpUtility.UrlDecode(request["trans_id"]); try { //Check IPs CheckIP("192.241.213.216"); //Check duplicated transactions CheckIfNotDoneYet(TransactionID); //Check if we are the merchant CheckMerchant(MPesaSapamaAccountDetails.Exists(Convert.ToInt32(Merchant))); //Amount from KES to USD Money money = Money.Parse(Amount); //in KES var ConvertedMoney = CurrencyExchangeHelper.FromCalculate(money, "KES"); //All OK, let's proceed MPesaSapamaCode.Create(ConvertedMoney, Code, PhoneNumber); context.Response.Write("OK"); } catch (Exception ex) { ErrorLogger.Log(ex); context.Response.Write("ERROR"); } }
private string buildTransactionRequestString(TransactionRequest request, ref string queryString) { string transactionID = HashingManager.GenerateMD5(DateTime.Now + request.MemberName + AppSettings.Offerwalls.UniversalHandlerPassword); var arrayToHash = new string[] { accountDetails.APIKey, accountDetails.APISecret, "json", accountDetails.LocationId.ToString(), "live" }; var DataToHash = String.Join(".", arrayToHash); var user = new Member(request.MemberName); string hash = HashingManager.SHA256(DataToHash).ToLower(); //We need to convert money from our currency to KES var moneyToBeSent = CurrencyExchangeHelper.Calculate(request.Payment, "KES"); queryString = String.Format("format=json&api_key={0}&hash={1}&location_id={2}&mode=live", accountDetails.APIKey, hash, accountDetails.LocationId.ToString()); return(new NVPStringBuilder() .Append("format", "json") .Append("api_key", accountDetails.APIKey) .Append("hash", hash) .Append("location_id", accountDetails.LocationId) .Append("mode", "live") .Append("beneficiaries[0][gateway]", "mpesa") .Append("beneficiaries[0][phone]", request.PayeeId) .Append("beneficiaries[0][trans_reference]", transactionID) .Append("beneficiaries[0][description]", request.Note) .Append("beneficiaries[0][first_name]", user.FirstName) .Append("beneficiaries[0][last_name]", user.SecondName) .Append("beneficiaries[0][amount]", moneyToBeSent.ToShortClearString()) .Append("beneficiaries[0][callback_url]", AppSettings.Site.Url + "Handlers/Payment/MPesaSapamaX.ashx") .Append("beneficiaries[0][callback_http_method]", "GET") .Append("beneficiaries[0][message]", HttpUtility.UrlEncode(AppSettings.Payments.TransactionNote)) .Append("beneficiaries[0][short_code]", accountDetails.Username) .Append("beneficiaries[0][currency]", "KES") .Build()); }
public Money FromMulticurrency() { return(CurrencyExchangeHelper.TryFromCalculate(this)); }