Exemplo n.º 1
0
        public void PaymentInquiry()
        {
            var binding = new WSHttpBinding(SecurityMode.None, true);

            var request = XElement.Parse(GetContentFromFile("PaymentInquiry.xml"));
            var sign    = new EfawateerSigner("ARKAIM-TEST");

            var time = DateTime.Now.ToString("s");

            request.Element("MsgHeader").Element("TmStp").Value = time;
            request.Element("MsgBody").Element("Transactions").Element("TrxInf").Element("ProcessDate").Value = time;
            request.Element("MsgBody").Element("Transactions").Element("TrxInf").Element("PmtGuid").Value     = Guid.NewGuid().ToString();
            request.Element("MsgBody").Element("Transactions").Element("TrxInf").Element("ParTrxID").Value    = Guid.NewGuid().ToString();
            request.Element("MsgFooter").Element("Security").Element("Signature").Value = sign.SignData(request.Element("MsgBody").ToString());

            var client = new PaymentInquiryClient(binding, new EndpointAddress(UriContext.PaymentInquiry));
            var upload = client.Inquire(Guid.NewGuid().ToString(), GetToken(), request);

            Debug.WriteLine("PaymentInquiry " + upload);
        }
Exemplo n.º 2
0
        public PaymentResult PaymentInquiryRequest(int cyberplatOperatorId, StringList parametersList, string session)
        {
            var result = new PaymentResult
            {
                Error = 0
            };

            var billerCode = ExpandBillerCodeFromCyberplatOpertaroId(cyberplatOperatorId);

            var token   = Authenticate();
            var request = GetRequestContent(Pmtinqrq);
            var signer  = new EfawateerSigner(_certificate);

            var now  = DateTime.Now;
            var time = now.ToString("s");
            var guid = GenerateGuid();

            request.Element("MsgHeader").Element("TmStp").Value = time;
            request.Element("MsgHeader").Element("TrsInf").Element("SdrCode").Value = _customerCode;

            var trxInf = request.Element("MsgBody").Element("Transactions").Element("TrxInf");

            trxInf.Element("PmtGuid").Value  = session;
            trxInf.Element("ParTrxID").Value = session;

            if (parametersList.ContainsKey("ValidationCode"))
            {
                trxInf.Element("ValidationCode").Value = parametersList["ValidationCode"];
            }
            else
            {
                trxInf.Element("ValidationCode").Remove();
            }

            trxInf.Element("DueAmt").Value      = parametersList.Get("DueAmt");
            trxInf.Element("PaidAmt").Value     = parametersList.Get("DueAmt");
            trxInf.Element("ProcessDate").Value = time;
            trxInf.Element("PaymentType").Value = parametersList.Get("PaymentType");
            trxInf.Element("ServiceTypeDetails").Element("ServiceType").Value = parametersList.Get("ServiceType");

            trxInf.Element("ServiceTypeDetails").Element("PrepaidCat").Remove();

            var accInfo = trxInf.Element("AcctInfo");

            if (!parametersList.ContainsKey("BillingNo") || parametersList["BillingNo"].Contains("#"))
            {
                accInfo.Element("BillingNo").Remove();
                accInfo.Element("BillNo").Remove();
            }
            else
            {
                accInfo.Element("BillingNo").Value = parametersList["BillingNo"];
                accInfo.Element("BillNo").Value    = parametersList["BillingNo"];
            }

            accInfo.Element("BillerCode").Value = billerCode.ToString(CultureInfo.InvariantCulture);

            Audit("PaymentInquiryRequest request:" + request);

            request.Element("MsgFooter").Element("Security").Element("Signature").Value =
                signer.SignData(request.Element("MsgBody").ToString());

            var service = new PaymentInquiryClient(new WSHttpBinding(SecurityMode.None, true)
            {
                ReceiveTimeout = new TimeSpan(0, 0, 0, 0, _timeout)
            }, new EndpointAddress(_paymentInquryUrl));
            var response = service.Inquire(guid, token, request);

            Audit("PaymentInquiryRequest response:" + response);

            if (response.Element("MsgBody") != null)
            {
                trxInf       = response.Element("MsgBody").Element("Transactions").Element("TrxInf");
                result.Error = Convert.ToInt32(trxInf.Element("Result").Element("ErrorCode").Value);
            }
            else
            {
                result.Error = Convert.ToInt32(response.Element("MsgHeader").Element("Result").Element("ErrorCode").Value);
            }

            result.StmtDate = DateTime.Now;

            return(result);
        }