Example #1
0
 private PayTabsModel ToModel(PayTabsConfig entity)
 {
     return(new PayTabsModel
     {
         Currency = entity.Currency,
         RefundPeriod = entity.RefundPeriod,
         SecretKey = entity.SecretKey,
         SiteUrl = entity.SiteUrl,
         MerchantEmail = entity.MerchantEmail
     });
 }
Example #2
0
        public void UpdatePayTabs(int id, PayTabsConfig request)
        {
            var requestSaved = _payTabsRepository.GetById(id);

            _payTabsRepository.Update(request);
        }
Example #3
0
 public void InsertPayTabs(PayTabsConfig request)
 {
     Guard.NotNull(request, nameof(request));
     _payTabsRepository.Insert(request);
 }
Example #4
0
 public void DeletePayTabs(PayTabsConfig request)
 {
     Guard.NotNull(request, nameof(request));
     _payTabsRepository.Delete(request);
 }
Example #5
0
        public async Task <ActionResult> PayTabsApiRequestAsync(float amount, int id)
        {
            PayTabsApiRequestModel payTabsApiRequestModel = new PayTabsApiRequestModel();
            PayTabsConfig          payTabsConfig          = _payTabsConfigService.GetPayTabsPagesById(id);
            PayTabsModel           model = ToModel(payTabsConfig);

            payTabsApiRequestModel.merchant_email = model.MerchantEmail;
            payTabsApiRequestModel.secret_key     = model.SecretKey;
            payTabsApiRequestModel.currency       = model.Currency;
            payTabsApiRequestModel.site_url       = model.SiteUrl;
            payTabsApiRequestModel.amount         = amount;

            //To redirect to transection status after payment
            payTabsApiRequestModel.return_url = "http://*****:*****@hotmail.coom";
            payTabsApiRequestModel.products_per_title = "aaa";
            payTabsApiRequestModel.unit_price         = "2";
            payTabsApiRequestModel.quantity           = "1";
            payTabsApiRequestModel.other_charges      = (float)1.00;
            payTabsApiRequestModel.discount           = (float)1.0;
            payTabsApiRequestModel.reference_no       = "Abc-5544";
            payTabsApiRequestModel.ip_customer        = "123.123.12.2";
            payTabsApiRequestModel.ip_merchant        = "11.11.22.22";
            payTabsApiRequestModel.billing_address    = "Flat 11 Building 222 Block 333 Road 444 Manama Bahrain";
            payTabsApiRequestModel.state              = "Manama";
            payTabsApiRequestModel.city                 = "Manama";
            payTabsApiRequestModel.postal_code          = "12345";
            payTabsApiRequestModel.country              = "BHR";
            payTabsApiRequestModel.shipping_first_name  = "John";
            payTabsApiRequestModel.shipping_last_name   = "Doe";
            payTabsApiRequestModel.address_shipping     = "Flat abc road 123";
            payTabsApiRequestModel.city_shipping        = "Manama";
            payTabsApiRequestModel.state_shipping       = "Manama";
            payTabsApiRequestModel.postal_code_shipping = "403129";
            payTabsApiRequestModel.contry_shipping      = "BHR";
            payTabsApiRequestModel.msg_lang             = "English";
            payTabsApiRequestModel.cms_with_version     = "Magento 0.1.9";
            #endregion

            //object preperation code for sending request
            #region
            List <KeyValuePair <string, string> > parameters = new List <KeyValuePair <string, string> >();
            parameters.Add(new KeyValuePair <string, string>("merchant_email", payTabsApiRequestModel.merchant_email));
            parameters.Add(new KeyValuePair <string, string>("secret_key", payTabsApiRequestModel.secret_key));
            parameters.Add(new KeyValuePair <string, string>("site_url", payTabsApiRequestModel.site_url));
            parameters.Add(new KeyValuePair <string, string>("return_url", payTabsApiRequestModel.return_url));
            parameters.Add(new KeyValuePair <string, string>("title", payTabsApiRequestModel.title));
            parameters.Add(new KeyValuePair <string, string>("cc_first_name", payTabsApiRequestModel.cc_first_name));
            parameters.Add(new KeyValuePair <string, string>("cc_last_name", payTabsApiRequestModel.cc_last_name));
            parameters.Add(new KeyValuePair <string, string>("cc_phone_number", payTabsApiRequestModel.cc_phone_number));
            parameters.Add(new KeyValuePair <string, string>("phone_number", payTabsApiRequestModel.phone_number));
            parameters.Add(new KeyValuePair <string, string>("email", payTabsApiRequestModel.email));
            parameters.Add(new KeyValuePair <string, string>("products_per_title", payTabsApiRequestModel.products_per_title));
            parameters.Add(new KeyValuePair <string, string>("unit_price", payTabsApiRequestModel.unit_price));
            parameters.Add(new KeyValuePair <string, string>("quantity", payTabsApiRequestModel.quantity));
            parameters.Add(new KeyValuePair <string, string>("other_charges", Convert.ToString(payTabsApiRequestModel.other_charges)));
            parameters.Add(new KeyValuePair <string, string>("amount", Convert.ToString(payTabsApiRequestModel.amount)));
            parameters.Add(new KeyValuePair <string, string>("discount", Convert.ToString(payTabsApiRequestModel.discount)));
            parameters.Add(new KeyValuePair <string, string>("currency", payTabsApiRequestModel.currency));
            parameters.Add(new KeyValuePair <string, string>("reference_no", payTabsApiRequestModel.reference_no));
            parameters.Add(new KeyValuePair <string, string>("ip_customer", payTabsApiRequestModel.ip_customer));
            parameters.Add(new KeyValuePair <string, string>("ip_merchant", payTabsApiRequestModel.ip_merchant));
            parameters.Add(new KeyValuePair <string, string>("billing_address", payTabsApiRequestModel.billing_address));
            parameters.Add(new KeyValuePair <string, string>("state", payTabsApiRequestModel.state));
            parameters.Add(new KeyValuePair <string, string>("city", payTabsApiRequestModel.city));
            parameters.Add(new KeyValuePair <string, string>("postal_code", payTabsApiRequestModel.postal_code));
            parameters.Add(new KeyValuePair <string, string>("country", payTabsApiRequestModel.country));
            parameters.Add(new KeyValuePair <string, string>("shipping_first_name", payTabsApiRequestModel.shipping_first_name));
            parameters.Add(new KeyValuePair <string, string>("shipping_last_name", payTabsApiRequestModel.shipping_last_name));
            parameters.Add(new KeyValuePair <string, string>("address_shipping", payTabsApiRequestModel.address_shipping));
            parameters.Add(new KeyValuePair <string, string>("city_shipping", payTabsApiRequestModel.city_shipping));
            parameters.Add(new KeyValuePair <string, string>("state_shipping", payTabsApiRequestModel.state_shipping));
            parameters.Add(new KeyValuePair <string, string>("postal_code_shipping", payTabsApiRequestModel.postal_code_shipping));
            parameters.Add(new KeyValuePair <string, string>("country_shipping", payTabsApiRequestModel.contry_shipping));
            parameters.Add(new KeyValuePair <string, string>("msg_lang", payTabsApiRequestModel.msg_lang));
            parameters.Add(new KeyValuePair <string, string>("cms_with_version", payTabsApiRequestModel.cms_with_version));
            #endregion

            var    client         = new HttpClient();
            string URI            = "https://www.paytabs.com/apiv2/create_pay_page";
            var    requestContent = new FormUrlEncodedContent(parameters);
            HttpResponseMessage r = await client.PostAsync(URI, requestContent);

            HttpContent responseContent = r.Content;
            string      responseString  = await r.Content.ReadAsStringAsync();

            PayTabPayPageResponse payTabPayPageResponse = new PayTabPayPageResponse();
            payTabPayPageResponse = new JavaScriptSerializer().Deserialize <PayTabPayPageResponse>(responseString);

            //TempData["merchant_email"] = payTabsApiRequestModel.merchant_email;
            //TempData["secret_key"] = payTabsApiRequestModel.secret_key;
            //TempData["payment_reference"] = payTabPayPageResponse.p_id;


            return(Redirect(payTabPayPageResponse.payment_url));
        }