Ejemplo n.º 1
0
        //TODO: créer un service Payment
        /// <summary>
        /// Envoie le montant de la transaction à effectuer à l'API de paiement
        /// Récupère un id de transaction (guid)
        /// et redirige vers la page de formulaire de saisie de la carte de crédit
        /// </summary>
        /// <param name="cart"></param>
        /// <returns></returns>
        public async Task <string> GetPaymentAuthorizationId(ShoppingCartModel cart)
        {
            var payment = new PaymentPromessModel()
            {
                amount = cart.totalAmount
            };

            var json    = JsonConvert.SerializeObject(payment);
            var content = new StringContent(json, Encoding.UTF8, "application/json");

            HttpResponseMessage result;

            try
            {
                result = await client.PostAsync(routingService.PaymentAuthorizationUrl, content);
            }
            catch
            {
                throw;
            }

            if (!result.IsSuccessStatusCode)
            {
                throw new HttpRequestException("Unable to get an authorization for this transaction");
            }

            IEnumerable <string> paymentAuthId = new Collection <string>();

            result.Headers.TryGetValues("guid", out paymentAuthId);
            // Redirige vers la page de saisie des données de Carte de Crédit
            var CreditCardCFormUrl = routingService.GetPaymentMvcCCFormUrl(paymentAuthId.ElementAt(0));

            return(CreditCardCFormUrl);
        }