Exemple #1
0
        internal MoviPaymentResponseInternal MoviPaymentInternal(MoviPaymentRequestInternal request)
        {
            Log(Logger.LogMessageType.Info, "->   -------------------- Comienza la ejecución del método MoviPin.MoviPaymentInternal", Logger.LoggingLevelType.Medium);
            UMarketSCClient             utibaClient = new UMarketSCClient();
            MoviPaymentResponseInternal movipaymentResult;

            using (OperationContextScope scope = new OperationContextScope(utibaClient.InnerChannel))
            {
                HttpRequestMessageProperty messageProperty = new HttpRequestMessageProperty();
                messageProperty.Headers.Add(HttpRequestHeader.UserAgent, UserAgent);
                OperationContext.Current.OutgoingMessageProperties.Add(HttpRequestMessageProperty.Name, messageProperty);
                Log(Logger.LogMessageType.Info, "->   -------------------- " + String.Format("Parámetros Recibidos MoviPin.MoviPaymentInternal: SessionID={0}, DeviceType={1}, Amount={2}, " +
                                                                                             "CouponID={3}, Type={4}", request.SessionID, request.DeviceType, request.Amount, request.CouponID, request.Type), Logger.LoggingLevelType.Low);
                Log(Logger.LogMessageType.Info, "->   -------------------- " + String.Format("Parámetros Enviados MoviPin.MoviPaymentInternal: SessionID={0}, DeviceType={1}, Amount={2}, " +
                                                                                             "CouponID={3}, Type={4}", request.SessionID, request.DeviceType, request.Amount, request.CouponID, request.Type), Logger.LoggingLevelType.Low);
                coupontransferResponse myMoviPayment = utibaClient.coupontransfer(new Utiba.coupontransfer()
                {
                    coupontransferRequestType = new coupontransferRequestType()
                    {
                        sessionid = request.SessionID, device_type = request.DeviceType, amount = request.Amount, couponid = request.CouponID, type = request.Type, typeSpecified = true
                    }
                });
                movipaymentResult = new MoviPaymentResponseInternal()
                {
                    ResponseCode      = myMoviPayment.coupontransferReturn.result,
                    ResponseMessage   = myMoviPayment.coupontransferReturn.result_message,
                    TransactionID     = myMoviPayment.coupontransferReturn.transid,
                    Fee               = myMoviPayment.coupontransferReturn.fee,
                    ResultNameSpace   = myMoviPayment.coupontransferReturn.result_namespace,
                    ScheduleID        = myMoviPayment.coupontransferReturn.schedule_id,
                    TransExtReference = myMoviPayment.coupontransferReturn.trans_ext_reference
                };
                Log(Logger.LogMessageType.Info, "->   -------------------- " + String.Format("Resultado Obtenido MoviPin.MoviPaymentInternal: ResponseCode={0}, ResponseMessage={1}, TransactionID={2}, " +
                                                                                             "Fee={3}, ResultNameSpace={4}, ScheduleID={5}, TransExtReference={6}", movipaymentResult.ResponseCode, movipaymentResult.ResponseMessage, movipaymentResult.TransactionID,
                                                                                             movipaymentResult.Fee, movipaymentResult.ResultNameSpace, movipaymentResult.ScheduleID, movipaymentResult.TransExtReference), Logger.LoggingLevelType.Low);
            }
            Log(Logger.LogMessageType.Info, "->   -------------------- Termina la ejecución del método MoviPin.MoviPaymentInternal", Logger.LoggingLevelType.Medium);
            return(movipaymentResult);
        }
        public override IMovilwayApiResponse PerformUtibaOperation(IMovilwayApiRequest requestObject, UMarketSCClient utibaClientProxy, String sessionID)
        {
            MoviPaymentRequestBody  request  = requestObject as MoviPaymentRequestBody;
            MoviPaymentResponseBody response = null;

            coupontransferRequestType couponTransferRequest = new coupontransferRequestType()
            {
                sessionid     = sessionID,
                device_type   = request.DeviceType,
                amount        = request.Amount,
                couponid      = request.MoviPin,
                type          = int.Parse(ConfigurationManager.AppSettings["CouponWalletType"]),
                typeSpecified = true
            };

            KeyValuePair[] keyValues;
            if (!String.IsNullOrEmpty(request.ProductId))
            {
                keyValues = new KeyValuePair[]
                {
                    new KeyValuePair()
                    {
                        key = "host_trans_ref", value = request.ExternalTransactionReference
                    },
                    new KeyValuePair()
                    {
                        key = "dollar_amount", value = request.DollarAmount.ToString()
                    },
                    new KeyValuePair()
                    {
                        key = "exchange_rate", value = request.ExchangeRate.ToString()
                    },
                    new KeyValuePair()
                    {
                        key = "product_id", value = request.ProductId
                    }
                }
            }
            ;
            else
            {
                keyValues = new KeyValuePair[]
                {
                    new KeyValuePair()
                    {
                        key = "host_trans_ref", value = request.ExternalTransactionReference
                    },
                    new KeyValuePair()
                    {
                        key = "dollar_amount", value = request.DollarAmount.ToString()
                    },
                    new KeyValuePair()
                    {
                        key = "exchange_rate", value = request.ExchangeRate.ToString()
                    }
                }
            };

            couponTransferRequest.extra_trans_data = keyValues;

            coupontransferResponse utibaCouponTransferResponse = utibaClientProxy.coupontransfer(new coupontransfer()
            {
                coupontransferRequestType = couponTransferRequest
            });

            if (utibaCouponTransferResponse != null)
            {
                response = new MoviPaymentResponseBody()
                {
                    ResponseCode    = Utils.BuildResponseCode(utibaCouponTransferResponse.coupontransferReturn.result, utibaCouponTransferResponse.coupontransferReturn.result_namespace),
                    ResponseMessage = utibaCouponTransferResponse.coupontransferReturn.result_message,
                    Fee             = utibaCouponTransferResponse.coupontransferReturn.fee,
                    TransactionID   = utibaCouponTransferResponse.coupontransferReturn.transid
                };
            }
            return(response);
        }
    }