/// <summary>
        /// Medota odpowiedzialna za odświeżenie tokenu co godzinę.
        /// </summary>
        /// <returns>Zwraca nowy token w formie stringa.</returns>
        public static string RefreshToken()
        {
            var updateTokenRequest = new UpdateTokenRequest();
            UpdateTokenResponse updateTokenResponse =
                WebServiceConnection.SendPost <UpdateTokenRequest, UpdateTokenResponse>(updateTokenRequest,
                                                                                        "token/update").Result;

            Logs.WriteErrorLog("Nowy token: " + updateTokenResponse.Token);
            WriteLastTokenToFile(updateTokenResponse.Token);
            return(updateTokenResponse.Token ?? null);
        }
Exemplo n.º 2
0
        public UpdateTokenResponse Update(Profile profile, string token, CreditCard creditCard)
        {
            using (log4net.NDC.Push("Update::"))
            {
                var merchantId = GetMerchantId(profile);
                var transactionKey = GetTransactionKey(profile);
                var serviceEndPoint = GetServiceEndPoint(profile);
                var request = CreateRequest();

                request.merchantID = merchantId;
                request.merchantReferenceCode = DateTime.Now.Ticks.ToString();

                request.paySubscriptionUpdateService = new PaySubscriptionUpdateService();
                request.paySubscriptionUpdateService.run = "true";

                request.card = new Card();
                request.card.expirationMonth = creditCard.ExpirationMonth;
                request.card.expirationYear = creditCard.ExpirationYear;

                request.recurringSubscriptionInfo = new RecurringSubscriptionInfo();
                request.recurringSubscriptionInfo.subscriptionID = token;

                var client = GetCybersourceService(serviceEndPoint, merchantId, transactionKey);

                _logger.Info("\r\nrequest:" + request.ToJSON());
                var reply = client.runTransaction(request);
                _logger.Info("\r\nreply:" + reply.ToJSON());

                var response = new UpdateTokenResponse();
                response.Status = true;
                response.ReasonCode = reply.reasonCode;
                if (reply.reasonCode != "100")
                {
                    response.Status = false;
                    response.Message = reply.reasonCode + ". " + Combine(reply.missingField) + Combine(reply.invalidField);
                }
                return response;
            }
        }