コード例 #1
0
        public SaleToPOIResponse Deserialize(string saleToPoiMessageDto)
        {
            var saleToPoiMessageJObject           = JObject.Parse(saleToPoiMessageDto);
            var saleToPoiMessageRootJToken        = saleToPoiMessageJObject.First;
            var saleToPoiMessageWithoutRootJToken = saleToPoiMessageRootJToken.First;
            //Messageheader
            var messageHeader = DeserializeMessageHeader(saleToPoiMessageWithoutRootJToken);
            //Message payload
            object messagePayload = DeserializeMessagePayload(messageHeader, saleToPoiMessageWithoutRootJToken);

            var deserializedOutputMessage = new SaleToPOIResponse
            {
                MessageHeader  = messageHeader,
                MessagePayload = messagePayload
            };

            //Check and deserialize RepeatedMessageResponse. RepeatedMessageResponse is optional
            if (saleToPoiMessageDto.Contains("TransactionStatusResponse") && saleToPoiMessageDto.Contains("RepeatedMessageResponse") && saleToPoiMessageDto.Contains("RepeatedResponseMessageBody"))
            {
                var response = GetDeserializedRepeatedResponseMessagePayload(saleToPoiMessageWithoutRootJToken);
                TransactionStatusResponse deserializedOutput = (TransactionStatusResponse)deserializedOutputMessage.MessagePayload;
                deserializedOutput.RepeatedMessageResponse.RepeatedResponseMessageBody.MessagePayload = response;
                deserializedOutputMessage.MessagePayload = deserializedOutput;
            }
            return(deserializedOutputMessage);
        }
コード例 #2
0
 private bool IsWrongProjectSettings(TransactionStatusResponse response)
 {
     if (response.http_status_code != 403)
     {
         return(false);
     }
     return(!string.IsNullOrEmpty(response.message) && response.message.Contains("serverless integration"));
 }
コード例 #3
0
        /// <summary>
        /// Executes a PayU payment.
        /// </summary>
        /// <returns>Capture string id.</returns>
        public async Task <string> ExecutePaymentAsync()
        {
            try
            {
                TransactionStatusResponse paymentResponse = await ApiCalls.GetPaymentStatus(paymentId).ConfigureAwait(false);

                if (paymentResponse != null && paymentResponse.Result.Count > 0 && paymentResponse.Result[0].Status.Equals(Constant.MoneyWithPayU, StringComparison.InvariantCultureIgnoreCase))
                {
                    return(paymentResponse.Result[0].Amount.ToString(CultureInfo.InvariantCulture));
                }
            }
            catch (Exception ex)
            {
                ParsePayUException(ex);
            }

            return(await Task.FromResult(string.Empty).ConfigureAwait(false));
        }
コード例 #4
0
        /// <summary>
        /// Executes a PayU payment.
        /// </summary>
        /// <returns>Capture string id.</returns>
        public async Task <string> ExecutePaymentAsync()
        {
            try
            {
                TransactionStatusResponse paymentResponse = await ApiCalls.GetPaymentStatus(this.paymentId);

                if (paymentResponse != null && paymentResponse.Result.Count > 0 && paymentResponse.Result[0].Status.Equals(Constant.MoneyWithPayU))
                {
                    return(paymentResponse.Result[0].Amount.ToString());
                }
            }
            catch (Exception ex)
            {
                this.ParsePayUException(ex);
            }

            return(await Task.FromResult(string.Empty));
        }
コード例 #5
0
        static async Task <TransactionStatusResponse> TransactionStatusRequestAsync()
        {
            TransactionStatusRequest _transactionStatusRequest = new TransactionStatusRequest()
                                                                 .AsSecurityCredential("Safaricom481$")
                                                                 .AsEntity("testapi481", "600481")
                                                                 .AsAmount(1000)
                                                                 .AsIdentifierType(1)
                                                                 .AsCommandID("TransactionStatusQuery")
                                                                 .AsComments("Test", "Test")
                                                                 .AsTransactionID("LKXXXX1234")
                                                                 .AsEndpoints("https://safaricom.api", "https://safaricom.api");

            TransactionStatusResponse _response = await _safaricomApiClient.PostPaymentRequestAsync(_transactionStatusRequest);

            if (_response.ErrorCode == null)
            {
                Console.WriteLine("===========================================");
                Console.WriteLine("===Transaction Status Success Response=====");
                Console.WriteLine("===========================================");

                Console.WriteLine(Environment.NewLine);
                Console.WriteLine(_response.OriginatorConversationID + Environment.NewLine + _response.ConversationID + Environment.NewLine + _response.ResponseDescription);
                Console.WriteLine(Environment.NewLine);
            }

            else
            {
                Console.WriteLine("===========================================");
                Console.WriteLine("=====Transaction Status Error Response=====");
                Console.WriteLine("===========================================");

                Console.WriteLine(Environment.NewLine);
                Console.WriteLine(_response.ErrorCode + Environment.NewLine + _response.ErrorMessage + Environment.NewLine + _response.ErrorRequestId);
                Console.WriteLine(Environment.NewLine);
            }

            return(_response);
        }