예제 #1
0
        public static ResultUrlRequest Parse(CallbackRequest callback)
        {
            Ensure.ArgumentNotNull(callback, nameof(callback));

            var resultUrl = new ResultUrlRequest();

            resultUrl.Uri = callback.Uri;

            resultUrl.OrderId = callback.GetOrDefault("pg_order_id", string.Empty);

            resultUrl.PaymentId    = callback.Get("pg_payment_id");
            resultUrl.Amount       = callback.Get <double>("pg_amount");
            resultUrl.Currency     = callback.Get <PlatronPaymentCurrency>("pg_currency");
            resultUrl.NetAmount    = callback.Get <double>("pg_net_amount");
            resultUrl.PsAmount     = callback.Get <double>("pg_ps_amount");
            resultUrl.PsFullAmount = callback.Get <double>("pg_ps_full_amount");
            resultUrl.PsCurrency   = callback.Get <PlatronPaymentCurrency>("pg_ps_currency");
            resultUrl.Overpayment  = callback.GetOrDefault <double>("pg_overpayment", 0);

            resultUrl.PaymentSystem = callback.Get("pg_payment_system");
            resultUrl.PaymentDate   = callback.GetDate("pg_payment_date");
            resultUrl.CanReject     = callback.GetOrDefault("pg_can_reject", PaymentRejectType.Unrevokable);

            if (callback.Contains("pg_card_brand"))
            {
                resultUrl.CardBrand = callback.GetOrDefault("pg_card_brand", string.Empty);
                resultUrl.CardPan   = callback.GetOrDefault("pg_card_pan", string.Empty);
                resultUrl.CardHash  = callback.GetOrDefault("pg_card_hash", string.Empty);
                resultUrl.AuthCode  = callback.GetOrDefault("pg_auth_code", string.Empty);
                resultUrl.Captured  = callback.GetOrDefault("pg_captured", CardClearingBehaviourType.WaitForPlatronWillSend);
            }

            resultUrl.UserPhone             = callback.GetOrDefault("pg_user_phone", string.Empty);
            resultUrl.NeedPhoneNotification = callback.GetBool("pg_need_phone_notification", x => x == "1");

            resultUrl.UserContactEmail      = callback.GetOrDefault("pg_user_contact_email", string.Empty);
            resultUrl.NeedEmailNotification = callback.GetBoolOrDefault("pg_need_email_notification", x => x == "1", false);

            resultUrl.RecurringProfileId         = callback.GetOrDefault("pg_recurring_profile_id", string.Empty);
            resultUrl.RecurringProfileExpiryDate = callback.GetDateOrDefault("pg_recurring_profile_expiry_date", DateTime.MinValue);

            return(resultUrl);
        }
예제 #2
0
        public static ResultUrlRequest Parse(CallbackRequest callback)
        {
            Ensure.ArgumentNotNull(callback, nameof(callback));

            var resultUrl = new ResultUrlRequest();

            resultUrl.Uri = callback.Uri;

            resultUrl.OrderId = callback.GetOrDefault("pg_order_id", string.Empty);

            resultUrl.PaymentId = callback.Get("pg_payment_id");
            resultUrl.Amount = callback.Get<double>("pg_amount");
            resultUrl.Currency = callback.Get<PlatronPaymentCurrency>("pg_currency");
            resultUrl.NetAmount = callback.Get<double>("pg_net_amount");
            resultUrl.PsAmount = callback.Get<double>("pg_ps_amount");
            resultUrl.PsFullAmount = callback.Get<double>("pg_ps_full_amount");
            resultUrl.PsCurrency = callback.Get<PlatronPaymentCurrency>("pg_ps_currency");
            resultUrl.Overpayment = callback.GetOrDefault<double>("pg_overpayment", 0);

            resultUrl.PaymentSystem = callback.Get("pg_payment_system");
            resultUrl.PaymentDate = callback.GetDate("pg_payment_date");
            resultUrl.CanReject = callback.GetOrDefault("pg_can_reject", PaymentRejectType.Unrevokable);

            if (callback.Contains("pg_card_brand"))
            {
                resultUrl.CardBrand = callback.GetOrDefault("pg_card_brand", string.Empty);
                resultUrl.CardPan = callback.GetOrDefault("pg_card_pan", string.Empty);
                resultUrl.CardHash = callback.GetOrDefault("pg_card_hash", string.Empty);
                resultUrl.AuthCode = callback.GetOrDefault("pg_auth_code", string.Empty);
                resultUrl.Captured = callback.GetOrDefault("pg_captured", CardClearingBehaviourType.WaitForPlatronWillSend);
            }

            resultUrl.UserPhone = callback.GetOrDefault("pg_user_phone", string.Empty);
            resultUrl.NeedPhoneNotification = callback.GetBool("pg_need_phone_notification", x => x == "1");

            resultUrl.UserContactEmail = callback.GetOrDefault("pg_user_contact_email", string.Empty);
            resultUrl.NeedEmailNotification = callback.GetBoolOrDefault("pg_need_email_notification", x => x == "1", false);

            resultUrl.RecurringProfileId = callback.GetOrDefault("pg_recurring_profile_id", string.Empty);
            resultUrl.RecurringProfileExpiryDate = callback.GetDateOrDefault("pg_recurring_profile_expiry_date", DateTime.MinValue);

            return resultUrl;
        }