private CustomerTransactionRequest Batch_createCustomRequest(SAPbobsCOM.Documents doc) { CustomerTransactionRequest req = new CustomerTransactionRequest(); try { req.ClientIP = getIP(); req.CustReceipt = cfgsendCustomerEmail == "Y" ? true : false; //true; req.MerchReceipt = true; //true; req.MerchReceiptEmail = cfgmerchantEmail; req.Details = new TransactionDetail(); req.Details.Clerk = oCompany.UserName; req.Details.AllowPartialAuth = true; req.Details.Amount = Math.Round(doc.DocTotal, 2); req.Details.Discount = Math.Round(doc.TotalDiscount, 2); req.Details.Shipping = getShipping(doc); req.Details.Tax = doc.VatSum; req.Details.Invoice = doc.DocNum.ToString(); req.Details.OrderID = GetSalesOrderDocNum(req.Details.Invoice); req.Details.PONum = doc.NumAtCard; if (req.Details.PONum == "" || req.Details.PONum == null) { req.Details.PONum = doc.DocNum.ToString(); } req.Details.ShipFromZip = getZipFromAddr(doc.Address2); req.Details.Description = doc.Comments; req.Details.Subtotal = 0; // req.Details.Subtotal = Math.Round(req.Details.Amount - (req.Details.Shipping + req.Details.Tax - req.Details.Discount), 2); SAPbobsCOM.Document_Lines olines = doc.Lines; req.LineItems = new LineItem[olines.Count]; for (int i = 0; i < olines.Count; i++) { olines.SetCurrentLine(i); req.LineItems[i] = new LineItem(); req.LineItems[i].CommodityCode = merchantData.ItemCommodityCode == null ? olines.ItemCode : merchantData.ItemCommodityCode; req.LineItems[i].Qty = olines.Quantity.ToString(); req.LineItems[i].UnitPrice = olines.Price.ToString(); req.LineItems[i].ProductName = olines.ItemDescription; req.LineItems[i].UnitOfMeasure = "EACH"; req.LineItems[i].SKU = olines.ItemCode; req.LineItems[i].CommodityCode = olines.ItemCode; req.LineItems[i].Taxable = true; //req.LineItems[i].TaxableSpecified = true; req.LineItems[i].TaxRate = olines.TaxPercentagePerRow.ToString(); } } catch (Exception ex) { errorLog(ex); } return(req); }
private CustomerTransactionRequest GenerateCustomerTransactionRequest(string command) { CustomerTransactionRequest ctr = new CustomerTransactionRequest(); ctr.CardCode = Card.CVVData; ctr.Command = command; ctr.Details = GenerateTransactionDetail(); ctr.LineItems = GenerateLineItems(ctr.Details.Amount); return(ctr); }
private bool Batch_runCustomRequest(CustomerTransactionRequest req, SAPCust sapcust, string orderid, string invoiceid, ref string refNum) { try { req.CustReceipt = cfgsendCustomerEmail == "Y" ? true : false; req.CustReceiptName = "vterm_customer"; req.CustReceiptEmail = sapcust.custObj.Email; //form.Freeze(true); req.Details.Subtotal = 0; trace("Batch_runCustomRequest: command=" + req.Command + ", amount = " + req.Details.Amount + ", tax=" + req.Details.Tax + ",Subtotal=" + req.Details.Subtotal + ",shipping=" + req.Details.Shipping + ",Discount=" + req.Details.Discount); SecurityToken token = getToken(sapcust.cccust.CCAccountID); TransactionResponse resp = new TransactionResponse(); resp = ebiz.runCustomerTransaction(token, sapcust.custObj.CustomerToken, sapcust.custObj.PaymentMethodProfiles[0].MethodID, req); trace("Batch_runCustomRequest: refNum = " + resp.RefNum + ", error=" + resp.Error); if (sapcust != null) { refNum = resp.RefNum; try { if (resp.ResultCode == "D") { updateCustDeclined(sapcust.cccust.recID, "Y"); } if (resp.ResultCode == "A") { updateCustDeclined(sapcust.cccust.recID, "N"); } } catch (Exception ex) { errorLog(ex); } } logCustomTransaction(req, resp, sapcust, orderid, invoiceid); return(Batch_HandleResponse(resp, sapcust, ref refNum)); } catch (Exception ex) { errorLog(ex); SBO_Application.MessageBox(ex.Message); } return(false); }
public bool BatchPreauth_PreAuthCustomer(SAPbobsCOM.Documents doc, SAPCust sapcust) { try { CustomerTransactionRequest req = Batch_createCustomRequest(doc); req.CustReceipt = cfgsendCustomerEmail == "Y" ? true : false; req.CustReceiptName = "vterm_customer"; req.CustReceiptEmail = sapcust.custObj.Email; req.Command = "cc:authonly"; if (req.Command == "cc:authonly" && cfgPreAuthEmail != "Y") { req.CustReceipt = false; } if (req.CustReceiptEmail == "") { req.CustReceipt = false; } string refNum = ""; if (Batch_runCustomRequest(req, sapcust, doc.DocEntry.ToString(), "", ref refNum)) { confirmNum = refNum; BatchPreAuthUpdateTrans(doc.DocEntry, doc.CardCode, refNum); SBO_Application.SetStatusBarMessage("eBizCharge Batch pre-auth sales order : " + doc.DocNum + " approved. Approval Code:" + refNum + ", Amount:" + doc.DocTotal.ToString(), SAPbouiCOM.BoMessageTime.bmt_Medium, false); } else { return(false); } } catch (Exception ex) { errorLog(ex); } return(true); }
public async Task <IActionResult> Index() { //Live var client = new PaymentGateway.IeBizServiceClient(); SecurityToken securityToken = new SecurityToken(); //CreditCardData customer = new CreditCardData(); //securityToken.UserId = "virtualterm"; //securityToken.SecurityId = "8U5NF2nZQAm3G3Gw57oB8g7BObK7bzKP"; //securityToken.Password = "******"; securityToken.SecurityId = "99359f03-b254-4adf-b446-24957fcb46cb"; securityToken.UserId = "qbouser"; securityToken.Password = "******"; SearchFilter[] searchFilters = new SearchFilter[0]; dynamic dsd = await client.SearchInvoicesAsync(securityToken, "", "", "", "", searchFilters, 0, 200, "", false); PaymentMethodProfile payMethod = new PaymentMethodProfile(); payMethod.CardExpiration = "0922"; payMethod.CardNumber = "4000100011112224"; payMethod.AvsStreet = "123 Main st."; payMethod.AvsZip = "90046"; payMethod.MethodName = "My Visa"; TransactionRequestObject transaction = new TransactionRequestObject(); transaction.CreditCardData.CardNumber = "4000100011112224"; transaction.CreditCardData.CardExpiration = "0922"; transaction.CreditCardData.AvsStreet = "123 Main st."; transaction.CreditCardData.AvsZip = "90046"; transaction.CustomerID = ""; transaction.BillingAddress = new GwAddress { FirstName = "naqi", LastName = "ali" }; transaction.Command = "AuthOnly"; transaction.CustReceipt = true; transaction.CustReceiptName = ""; transaction.AuthCode = ""; var dd = await client.runTransactionAsync(securityToken, transaction); CustomerTransactionRequest customerTransaction = new CustomerTransactionRequest(); var ss = await client.runCustomerTransactionAsync(securityToken, "C-ABC530", "1186", customerTransaction); //PaymentMethodProfile payMethod = new PaymentMethodProfile(); //payMethod.CardExpiration = "1212"; //payMethod.CardNumber = "4000100011112224"; //payMethod.AvsStreet = "123 Main st."; //payMethod.AvsZip = "90046"; //payMethod.MethodName = "My Visa"; // dynamic data = await client.GetCustomerAsync(securityToken, "C-ABC527", "7c944faf-a409-460d-a55d-1a2220c455cd"); //if (data!=null) //{ //} //else //{ //Customer customer = new Customer(); // customer.CompanyName = "Naqi101"; // customer.FirstName = "Naqi"; // customer.LastName = "Ali"; // customer.Email = "*****@*****.**"; // customer.SoftwareId = ".Net API"; // customer.CustomerId = "C-ABC530"; // Address address = new Address(); // address.FirstName = "Naqi"; // address.LastName = "Testing"; // address.CompanyName = "Naqi101"; // address.Address1 = "123 main st."; // address.City = "Hollywood"; // address.State = "ca"; // address.ZipCode = "91607"; // address.Country = "USA"; // customer.BillingAddress = address; // PaymentMethodProfile[] payMethod = new PaymentMethodProfile[1]; // payMethod[0] = new PaymentMethodProfile(); // //payMethod[0].MethodType = "1212"; // payMethod[0].CardNumber = "4000100011112224"; // payMethod[0].CardExpiration = "0922"; // payMethod[0].AccountHolderName = "Ali"; // payMethod[0].AvsStreet = "abc"; // payMethod[0].CardCode = "123"; // payMethod[0].AvsZip = "54000"; // payMethod[0].MethodName = "My Visa"; // customer.PaymentMethodProfiles = payMethod; //} try { var sdt = await client.AddCustomerPaymentMethodProfileAsync(securityToken, "4b9fab71-9b3c-4d77-bff3-fc6c4cf54ec0", payMethod); //dynamic response = await client.AddCustomerAsync(securityToken, customer); //dynamic response = await client.UpdateCustomerAsync(securityToken, customer, "C-ABC527", "7c944faf-a409-460d-a55d-1a2220c455cd"); //MessageBox.Show(string.Concat(response)); } catch (Exception err) { //MessageBox.Show(err.Message); } return(View()); }
private void job_logCustomTransaction(CustomerTransactionRequest req, TransactionResponse resp, SAPCust sapcust, CCJOB job, string InvoiceID = "") { CCTRAN cctran = new CCTRAN(); try { if (job.OrderID == null) job.OrderID = 0; if (job.InvoiceID == null) job.InvoiceID = 0; cctran.customerID = sapcust.cccust.CustomerID; cctran.CCAccountID = 0; cctran.jobID = (int)job.jobID; cctran.OrderID = job.OrderID.ToString(); cctran.InvoiceID = InvoiceID; cctran.CreditMemoID = ""; cctran.DownPaymentInvoiceID = ""; if (sapcust != null) { try { cctran.CCAccountID = int.Parse(sapcust.cccust.CCAccountID); cctran.customerID = sapcust.cccust.CustomerID; cctran.MethodID = sapcust.custObj.PaymentMethodProfiles[0].MethodID; cctran.custNum = sapcust.cccust.CustNum; cctran.crCardNum = sapcust.custObj.PaymentMethodProfiles[0].CardNumber; cctran.CardHolder = sapcust.custObj.BillingAddress.FirstName + " " + sapcust.custObj.BillingAddress.LastName; }catch(Exception ex) { errorLog(ex); } } cctran.Description = req.Details.Description; cctran.recID = req.Details.Invoice; cctran.acsUrl = resp.AcsUrl; cctran.authAmount = resp.AuthAmount.ToString(); cctran.authCode = resp.AuthCode; cctran.avsResult = resp.AvsResult; cctran.avsResultCode = resp.AvsResultCode; cctran.batchNum = resp.BatchNum; cctran.batchRef = resp.BatchRefNum; cctran.cardCodeResult = resp.CardCodeResult; cctran.cardCodeResultCode = resp.CardCodeResultCode; cctran.cardLevelResult = resp.CardLevelResult; cctran.cardLevelResultCode = resp.CardLevelResultCode; cctran.conversionRate = resp.ConversionRate.ToString(); cctran.convertedAmount = resp.ConvertedAmount.ToString(); cctran.convertedAmountCurrency = resp.ConvertedAmountCurrency.ToString(); cctran.custNum = resp.CustNum; cctran.error = resp.Error; cctran.errorCode = resp.ErrorCode; cctran.isDuplicate = resp.isDuplicate.ToString(); cctran.payload = resp.Payload; cctran.profilerScore = resp.ProfilerScore; cctran.profilerResponse = resp.ProfilerResponse; cctran.profilerReason = resp.ProfilerReason; cctran.refNum = resp.RefNum; cctran.remainingBalance = resp.RemainingBalance.ToString(); cctran.result = resp.Result; cctran.resultCode = resp.ResultCode; cctran.status = resp.Status; cctran.statusCode = resp.StatusCode; cctran.vpasResultCode = resp.VpasResultCode; cctran.recDate = DateTime.Now;//Use local time not server time cctran.command = req.Command; cctran.amount = req.Details.Amount.ToString(); insert(cctran); } catch (Exception ex) { errorLog(ex); } }
private CustomerTransactionRequest job_createCustomRequest(CCJOB job, SAPbobsCOM.Documents oDoc, string amt ="") { CustomerTransactionRequest req = new CustomerTransactionRequest(); try { req.CustReceipt = cfgsendCustomerEmail == "Y" ? true : false; // req.CustReceiptSpecified = false; //true; req.MerchReceipt = true; // req.MerchReceiptSpecified = false; //true; req.MerchReceiptEmail = cfgmerchantEmail; req.CustReceiptName = "vterm_customer"; req.MerchReceiptName = cfgMerchantReceipt; req.ClientIP = getIP(); req.Details = new TransactionDetail(); req.Details.AllowPartialAuth = true; if(amt == "" && oDoc != null) req.Details.Amount = oDoc.DocTotal; else req.Details.Amount = getDoubleValue(amt); req.Details.Discount = 0; req.Details.Shipping = 0; req.Details.Tax = 0; string invID = "RB000"; if(oDoc!= null) invID = oDoc.DocNum.ToString(); req.Details.Invoice = invID; req.Details.OrderID = invID; req.Details.PONum = invID; req.Details.Description =job.Description; req.Details.Subtotal = 0; // req.Details.Amount; if (oDoc != null) { SAPbobsCOM.Document_Lines olines = oDoc.Lines; req.LineItems = new LineItem[olines.Count]; for (int i = 0; i < olines.Count; i++) { olines.SetCurrentLine(i); req.LineItems[i] = new LineItem(); req.LineItems[i].CommodityCode = olines.ItemCode; req.LineItems[i].SKU = olines.ItemCode; req.LineItems[i].Qty = olines.Quantity.ToString(); req.LineItems[i].UnitPrice = olines.UnitPrice.ToString(); req.LineItems[i].TaxRate = olines.TaxCode; req.LineItems[i].ProductName = olines.ItemDescription; req.LineItems[i].DiscountRate = ""; req.LineItems[i].UnitOfMeasure = "EACH"; } }else { req.LineItems = new LineItem[1]; req.LineItems[0] = new LineItem(); req.LineItems[0].CommodityCode = "000"; req.LineItems[0].Qty = "1"; req.LineItems[0].UnitPrice = amt; req.LineItems[0].TaxRate = ""; req.LineItems[0].ProductName = "eBizCharge SAP Recurring Billing On Account"; req.LineItems[0].DiscountRate = ""; req.LineItems[0].UnitOfMeasure = "EACH"; req.LineItems[0].SKU = "SKU1"; } } catch (Exception ex) { errorLog(ex); } return req; }
public bool job_runCustomerTrans(SAPCust sapcust, SAPbobsCOM.Documents oDoc, CCJOB job, string amt ="") { try { string cmd = "cc:sale"; if (sapcust.custObj.PaymentMethodProfiles[0].MethodType == "check") cmd = "check"; confirmNum = ""; CustomerTransactionRequest req = job_createCustomRequest(job, oDoc, amt); req.Command = cmd; trace("Job_runCustomRequest: amount = " + req.Details.Amount + ", tax=" + req.Details.Tax + ",Subtotal=" + req.Details.Subtotal + ",shipping=" + req.Details.Shipping + ",Discount=" + req.Details.Discount + string.Format("runCustomerTrans, token={0}, method={1}:{2}", sapcust.custObj.CustomerToken, sapcust.custObj.PaymentMethodProfiles[0].MethodID, sapcust.custObj.PaymentMethodProfiles[0].CardNumber)); req.CustReceipt = cfgsendCustomerEmail == "Y" ? true : false; req.CustReceiptName = "vterm_customer"; req.CustReceiptEmail = sapcust.custObj.Email; if (req.Command == "cc:authonly" && cfgPreAuthEmail != "Y") req.CustReceipt = false; if (req.CustReceiptEmail == "") req.CustReceipt = false; SecurityToken token = getToken(sapcust.cccust.CCAccountID); TransactionResponse resp = new TransactionResponse(); resp = ebiz.runCustomerTransaction(token, sapcust.custObj.CustomerToken, sapcust.custObj.PaymentMethodProfiles[0].MethodID, req); confirmNum = resp.RefNum; sendReceipt(token, sapcust, resp); int invoiceID = 0; if (oDoc != null) invoiceID = oDoc.DocEntry; job_logCustomTransaction(req, resp, sapcust, job, invoiceID.ToString()); if (resp.Error.ToLower() == "approved") { job.Result = "Success"; job.LastRunDate = DateTime.Today; update(job); return true; } else { if (resp.ResultCode == "D") { if (req.CustReceiptEmail != "" && req.CustReceiptEmail != null && cfgCustomerReceipt != "") { try { EmailReceiptResponse emresp = ebiz.EmailReceipt(token, resp.RefNum, resp.RefNum, cfgCustomerReceipt, req.CustReceiptEmail); if (emresp.ErrorCode == 0) { showStatus("Declined receipt sent.", SAPbouiCOM.BoMessageTime.bmt_Medium,false); } else showStatus("Failed to send declined receipt.\r\n" + resp.Error, SAPbouiCOM.BoMessageTime.bmt_Medium,true); } catch (Exception ex2) { showStatus("Failed to send receipt.\r\n" + ex2.Message, SAPbouiCOM.BoMessageTime.bmt_Medium, false); } } } string err = "Job Failed. ID:" + job.jobID + "\r\n" + resp.Error; job.Result = err; job.LastRunDate = DateTime.Today; update(job); errorLog(err); return false; } } catch (Exception ex) { string err = "Job Failed. ID:" + job.jobID + "\r\n" + ex.Message; job.Result = err; job.LastRunDate = DateTime.Today; update(job); errorLog(ex); return false; } }