/// <summary>
        /// Create subscribtion for customer
        /// if no card id specfied then an email will be sent to user to add payment
        /// </summary>
        /// <param name="customerHandle">customer id</param>
        /// <param name="planHandle">plan id</param>
        /// <param name="cardToken">cardtoken</param>
        /// <param name="couponCodes">Coupon codes</param>
        /// <returns>subscription data</returns>
        public ApiResponse <Subscription> CreateSubscription(string customerHandle, string planHandle, string cardToken, List <string> couponCodes)
        {
            const bool generateSubshandle = true;
            var        myClassname        = MethodBase.GetCurrentMethod().Name;
            var        config             = this.GetDefaultApiConfiguration();
            var        api          = new SubscriptionApi(config);
            var        signupMethod = string.IsNullOrEmpty(cardToken) ? "email" : "card_token";

            var subscription = new CreateSubscription(customerHandle, planHandle, null, null, this._reepayTestFlag, null, null, signupMethod, null, null, null, null, generateSubshandle, null, null,
                                                      null, cardToken, null, null, couponCodes);

            for (var i = 0; i <= MaxNoOfRetries; i++)
            {
                try
                {
                    var res = api.CreateSubscriptionJsonWithHttpInfo(subscription);
                    if (res.StatusCode != (int)HttpStatusCode.OK)
                    {
                        this._log.Error($"Unexpected answer from reepay. {myClassname} Errorcode {res.StatusCode}");
                    }

                    return(res);
                }
                catch (ApiException apiException)
                {
                    this._log.Error($"{myClassname} {apiException.ErrorCode} {apiException.ErrorContent}");
                    return(new ApiResponse <Subscription>(apiException.ErrorCode, null, null));
                }
                catch (Exception) when(i < MaxNoOfRetries)
                {
                    this._log.Debug($"{myClassname} retry attempt {i}");
                }
            }

            return(new ApiResponse <Subscription>((int)HttpStatusCode.InternalServerError, null, null));
        }
Beispiel #2
0
        public ANetApiResponse TestCancelSubscription()
        {
            var response = (ARBCreateSubscriptionResponse)CreateSubscription.Run(apiLoginId, transactionKey, GetMonth());

            return(CancelSubscription.Run(apiLoginId, transactionKey, response.subscriptionId));
        }
 public Task <bool> SubscribeeFormidling(CreateSubscription subscription)
 {
     throw new NotImplementedException();
 }
        //private static readonly MethodInfo s_getObserverGenericMethod = ((MethodInfo)ReflectionHelpers.InfoOf((IReactiveProxy ctx) => ctx.GetObserver<object>(default(Uri)))).GetGenericMethodDefinition();

        protected override Expression <Func <IReactiveProxy, Task> > VisitCreateSubscription(CreateSubscription operation)
        {
            var binder            = new IdentityAwareBinder();
            var boundSubscription = (LambdaExpression)binder.BindSubscription(operation.Expression, operation.TargetObjectUri, operation.State, CancellationToken.None);
            var parameter         = boundSubscription.Parameters[0];

            return(Reduce(
                       Expression.Lambda <Func <IReactiveProxy, Task> >(
                           Expression.Convert(
                               boundSubscription.Body,
                               typeof(Task)
                               ),
                           parameter
                           )
                       ));
        }
Beispiel #5
0
 public Dispatcher(CreateSubscription createSubscription)
 {
     this.createSubscription = createSubscription;
 }
        public DTO <CreateDTO> CreateSubscription(Models.Input <CreateSubscription> obj)
        {
            Models.DTO <CreateDTO> dto = new Models.DTO <CreateDTO>();
            CreateDTO resp             = new CreateDTO();

            dto.objname = "CreateSubscription";
            try
            {
                /* Check required parameters */
                if (string.IsNullOrEmpty(obj.input.msisdn))
                {
                    dto.status = new Models.Status(800);
                    return(dto);
                }

                if (!(string.IsNullOrEmpty(obj.input.PaymentID)))
                {
                    obj.input.service = getService(Convert.ToInt32(obj.input.PaymentID));
                    if (string.IsNullOrEmpty(obj.input.service))
                    {
                        dto.status = new Status(800);
                        return(dto);
                    }
                    obj.input.app      = "InternalService";
                    obj.input.appuser  = "******";
                    obj.input.username = "******";
                    obj.input.password = "******";
                    obj.input.authkey  = "testauthkey";
                    obj.input.trial    = "0";
                }

                Authentication ar   = new Authentication();
                string         hash = ar.UserAuth(obj.input.msisdn, obj.input.service);

                string     uri    = ConfigurationManager.AppSettings["oneglobalDOB"].ToString();
                string     url    = uri + "/CreateSubscription";
                HttpClient client = new HttpClient();
                client.BaseAddress = new Uri(url);
                if (url != null)
                {
                    try
                    {
                        JavaScriptSerializer jdes = new JavaScriptSerializer();
                        var reqObj = new CreateSubscription();

                        reqObj.username = obj.input.username;
                        reqObj.password = obj.input.password;
                        reqObj.authkey  = obj.input.authkey;
                        reqObj.service  = obj.input.service;
                        reqObj.hash     = hash;
                        reqObj.msisdn   = obj.input.msisdn;
                        reqObj.pin      = obj.input.pin;
                        reqObj.trial    = obj.input.trial;
                        reqObj.appuser  = "******";

                        Input <CreateSubscription> inp = new Input <CreateSubscription>();
                        inp.input = reqObj;

                        client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                        client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json; charset=utf-8");

                        HttpResponseMessage response = client.PostAsJsonAsync(url, inp).Result;

                        if (response.IsSuccessStatusCode)
                        {
                            if (response != null)
                            {
                                Task <String> ss     = response.Content.ReadAsStringAsync();
                                var           result = JsonConvert.DeserializeObject <Models.DTO <CreateDTO> >(ss.Result);

                                if (result != null)
                                {
                                    dto.response = result.response;
                                    dto.status   = result.status;
                                    return(dto);
                                }
                            }
                        }
                    }
                    catch (HttpRequestException e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }
            }
            catch (Exception ex)
            {
                dto.status = new Models.Status(1);
            }
            return(dto);
        }
        private static void RunMethod(string methodName)
        {
            // These are default transaction keys.
            // You can create your own keys in seconds by signing up for a sandbox account here: https://developer.authorize.net/sandbox/
            string apiLoginId     = "5KP3u95bQpv";
            string transactionKey = "4Ktq966gC55GAX7S";

            string transactionAmount;
            string transactionId = string.Empty;

            switch (methodName)
            {
            case "ValidateCustomerPaymentProfile":
                ValidateCustomerPaymentProfile.Run(apiLoginId, transactionKey);
                break;

            case "UpdateCustomerShippingAddress":
                UpdateCustomerShippingAddress.Run(apiLoginId, transactionKey);
                break;

            case "UpdateCustomerProfile":
                UpdateCustomerProfile.Run(apiLoginId, transactionKey);
                break;

            case "UpdateCustomerPaymentProfile":
                UpdateCustomerPaymentProfile.Run(apiLoginId, transactionKey);
                break;

            case "GetCustomerShippingAddress":
                GetCustomerShippingAddress.Run(apiLoginId, transactionKey);
                break;

            case "GetCustomerProfileIds":
                GetCustomerProfileIds.Run(apiLoginId, transactionKey);
                break;

            case "GetCustomerProfile":
                GetCustomerProfile.Run(apiLoginId, transactionKey);
                break;

            case "GetCustomerPaymentProfile":
                GetCustomerPaymentProfile.Run(apiLoginId, transactionKey);
                break;

            case "DeleteCustomerShippingAddress":
                DeleteCustomerShippingAddress.Run(apiLoginId, transactionKey);
                break;

            case "DeleteCustomerProfile":
                DeleteCustomerProfile.Run(apiLoginId, transactionKey);
                break;

            case "DeleteCustomerPaymentProfile":
                DeleteCustomerPaymentProfile.Run(apiLoginId, transactionKey);
                break;

            case "CreateCustomerShippingAddress":
                CreateCustomerShippingAddress.Run(apiLoginId, transactionKey);
                break;

            case "CreateCustomerProfileFromTransaction":
                CreateCustomerProfileFromTransaction.Run(apiLoginId, transactionKey);
                break;

            case "GetTransactionDetails":
                GetTransactionDetails.Run(apiLoginId, transactionKey);
                break;

            case "GetTransactionList":
                GetTransactionList.Run(apiLoginId, transactionKey);
                break;

            //case "CreateAnApplePayTransaction":
            //    CreateAnApplePayTransaction.Run(apiLoginId, transactionKey);
            //    break;
            case "DecryptVisaCheckoutData":
                DecryptVisaCheckoutData.Run(apiLoginId, transactionKey);
                break;

            case "CreateVisaCheckoutTransaction":
                CreateVisaCheckoutTransaction.Run(apiLoginId, transactionKey);
                break;

            case "ChargeCreditCard":
                ChargeCreditCard.Run(apiLoginId, transactionKey);
                break;

            case "CaptureOnly":
                CaptureOnly.Run(apiLoginId, transactionKey);
                break;

            case "CapturePreviouslyAuthorizedAmount":
                Console.WriteLine("Enter An Transaction Amount");
                transactionAmount = Console.ReadLine();

                Console.WriteLine("Enter An Transaction ID");
                transactionId = Console.ReadLine();

                CapturePreviouslyAuthorizedAmount.Run(apiLoginId, transactionKey, Convert.ToDecimal(transactionAmount), transactionId);
                break;

            case "CaptureFundsAuthorizedThroughAnotherChannel":
                CaptureFundsAuthorizedThroughAnotherChannel.Run(apiLoginId, transactionKey);
                break;

            case "AuthorizeCreditCard":
                AuthorizeCreditCard.Run(apiLoginId, transactionKey);
                break;

            case "Refund":
                Console.WriteLine("Enter An Transaction Amount");
                transactionAmount = Console.ReadLine();

                Console.WriteLine("Enter An Transaction ID");
                transactionId = Console.ReadLine();

                RefundTransaction.Run(apiLoginId, transactionKey, Convert.ToDecimal(transactionAmount), transactionId);
                break;

            case "Void":
                Console.WriteLine("Enter An Transaction ID");
                transactionId = Console.ReadLine();

                VoidTransaction.Run(apiLoginId, transactionKey, transactionId);
                break;

            case "DebitBankAccount":
                DebitBankAccount.Run(apiLoginId, transactionKey);
                break;

            case "CreditBankAccount":
                Console.WriteLine("Enter An Transaction ID");
                transactionId = Console.ReadLine();

                CreditBankAccount.Run(apiLoginId, transactionKey, transactionId);
                break;

            case "ChargeCustomerProfile":
                ChargeCustomerProfile.Run(apiLoginId, transactionKey);
                break;

            case "ChargeTokenizedCard":
                ChargeTokenizedCreditCard.Run(apiLoginId, transactionKey);
                break;

            case "PayPalVoid":
                PayPalVoid.Run(apiLoginId, transactionKey, transactionId);
                break;

            case "PayPalAuthorizeCapture":
                PayPalAuthorizeCapture.Run(apiLoginId, transactionKey);
                break;

            case "PayPalAuthorizeCaptureContinue":
                PayPalAuthorizeCaptureContinue.Run(apiLoginId, transactionKey, transactionId);
                break;

            case "PayPalAuthorizeOnly":
                PayPalAuthorizeOnly.Run(apiLoginId, transactionKey);
                break;

            case "PayPalAuthorizeOnlyContinue":
                PayPalAuthorizeCaptureContinue.Run(apiLoginId, transactionKey, transactionId);
                break;

            case "PayPalCredit":
                PayPalCredit.Run(apiLoginId, transactionKey, transactionId);
                break;

            case "PayPalGetDetails":
                PayPalGetDetails.Run(apiLoginId, transactionKey, transactionId);
                break;

            case "PayPalPriorAuthorizationCapture":
                PayPalPriorAuthorizationCapture.Run(apiLoginId, transactionKey, transactionId);
                break;

            case "CancelSubscription":
                CancelSubscription.Run(apiLoginId, transactionKey);
                break;

            case "CreateSubscription":
                CreateSubscription.Run(apiLoginId, transactionKey);
                break;

            case "GetSubscriptionList":
                GetListSubscriptions.Run(apiLoginId, transactionKey);
                break;

            case "GetSubscriptionStatus":
                GetSubscriptionStatus.Run(apiLoginId, transactionKey);
                break;

            case "UpdateSubscription":
                UpdateSubscription.Run(apiLoginId, transactionKey);
                break;

            case "CreateCustomerProfile":
                CreateCustomerProfile.Run(apiLoginId, transactionKey);
                break;

            case "CreateCustomerPaymentProfile":
                CreateCustomerPaymentProfile.Run(apiLoginId, transactionKey);
                break;

            case "GetUnsettledTransactionList":
                GetUnsettledTransactionList.Run(apiLoginId, transactionKey);
                break;

            case "GetBatchStatistics":
                GetBatchStatistics.Run(apiLoginId, transactionKey);
                break;

            case "GetSettledBatchList":
                GetSettledBatchList.Run(apiLoginId, transactionKey);
                break;

            default:
                ShowUsage();
                break;
            }
        }
Beispiel #8
0
 public async Task <CreateSubscriptionResponse> CreateSubscription(CreateSubscription createSubscription)
 {
     return(await SubscriptionDomainService.CreateSubscription(createSubscription));
 }
Beispiel #9
0
 /// <summary>
 /// Оформл
 /// </summary>
 /// <param name="callback"></param>
 public void SubsOnNewData(CreateSubscription callback)
 {
     // Этот метод вызывается из главной программы (вызывающей)
     Subscribe(callback);
 }
Beispiel #10
0
        public async Task <Result> Subscribe(CreateSubscription createSubscription)
        {
            //return await Task.FromResult(Result.Ok());

            return(await BreakOrRetry(async() => await api.Subscribe(Constants.MeetingRoomsFuncKey, createSubscription, GetCancellationToken())));
        }