static void Test5()
        {
            string fileName = "20200729_B2B_Resp.txt";

            B2B.B2BRequest myReq = new B2BRequest("техническая жидкость");

            File.WriteAllText(fileName, myReq.GetResponse);

            //string testStr = myReq.GetResponse;

            B2BResponse myResp = new B2BResponse(myReq);
        }
예제 #2
0
        public async Task <Object> ProcessTransaction1(B2BRequest mpesaRequest, string token)
        {
            HttpClient client = new HttpClient();

            client.DefaultRequestHeaders.Clear();
            client.BaseAddress = new Uri("https://sandbox.safaricom.co.ke");

            client.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}");
            var json = JsonConvert.SerializeObject(mpesaRequest);

            var httpContent = new StringContent(json, Encoding.UTF8, "application/json");

            var resWithToken = client.PostAsync("/mpesa/b2b/v1/paymentrequest", httpContent).Result;

            stringData = resWithToken.Content.ReadAsStringAsync().Result;
            // return JsonConvert.DeserializeObject<Response>(stringData);
            var response = JsonConvert.DeserializeObject <B2BResponse>(stringData);

            return(response);
        }
예제 #3
0
        public async Task <IActionResult> B2BpaymentRequest()
        {
            B2BRequest b2BRequest = new B2BRequest
            {
                Amount                 = "10",
                PartyA                 = "600214",
                SenderIdentifier       = "4",
                PartyB                 = "600214",
                RecieverIdentifierType = "4",
                Remarks                = "Test",
                Initiator              = "testapi",
                Password               = "******",
                QueueTimeOutURL        = "https://testurl.co.ke",
                ResultURL              = "https://testurl.co.ke",
                AccountReference       = "YU9783D98D"
            };

            Mpesa mpesa    = new Mpesa();
            var   response = await mpesa.B2BAsync(_options.ConsumerKey, _options.ConsumerSecret, b2BRequest);

            return(Json(response));
        }
예제 #4
0
        public override Task <bool> Event(Channel channel, object model, BasicDeliverEventArgs ea, InputVariables input, OutputVariables output)
        {
            var idString = Encoding.UTF8.GetString((byte[])ea.BasicProperties.Headers["id"]); // Вытаскиваем инфу в заголовках?
            var id       = Guid.Parse(idString);

            //logger.Error("Пишем лог логики модуля");
            //loggerResponse.Error("Пишем лог респонса");

            // loggerResponse.Error($"{JsonConvert.SerializeObject(input)}");


            var data = new Dictionary <string, string>
            {
                { StructureType.LoginId, input.LoginId },
                { StructureType.Password, input.Password },
                { StructureType.VIN, input.VIN }
            };

            var b2bParams = getB2bParameters(data);
            var request   = new B2BRequest()
            {
                parameter = b2bParams.ToArray()
            };

            B2BResponse response = null;

            try
            {
                response = audaHistoryServices.History(request);
            }
            catch (WebException we)
            {
                if (false) //TODO: Обработка ошибок (недостаточно данных для реализации)
                {
                    logger.Error($"Error");
                    return(Task.FromResult(true));
                }
                else
                {
                    throw we;
                }
            }

            if (response == null || response.text == null)
            {
                logger.Error($"{id} | Некорректный response. {JsonConvert.SerializeObject(response)}");
                return(Task.FromResult(true));
            }


            output.Response = response.message;

            // Если требуется повторить задание
            if (false)
            {
                return(Task.FromResult(false));
            }

            // Можно создать задачу для другого модуля
            if (false)
            {
                channel.Props.Add("id", Encoding.UTF8.GetBytes(Guid.NewGuid().ToString()));
                channel.Publish(Exchanges.TestExchange, RabbitSettings.TestExchange.Routing.Test);
            }

            return(Task.FromResult(true));
        }
예제 #5
0
        public async Task <string[]> B2BAsync(string consumerKey, string consumersecret, B2BRequest b2BRequest, bool isSandbox = true)
        {
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

            b2BRequest.SecurityCredential = Encryption(b2BRequest.Password);
            b2BRequest.CommandID          = "BusinessToBusinessTransfer";
            JObject jObject = JObject.FromObject(b2BRequest);

            string auth    = Authenticate(consumerKey, consumersecret, isSandbox);
            string baseUrl = getBaseUrl(isSandbox);

            return(await SendApiRequestAsync(auth, baseUrl, "mpesa/b2b/v1/paymentrequest", jObject));
        }
예제 #6
0
 public B2BResponse FindExternal(B2BRequest request)
 {
     return(client.findExternal(request));
 }
예제 #7
0
 public B2BResponse History(B2BRequest request)
 {
     return(client.getHistory(request));
 }