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); }
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); }