public static int LogContractPayment(Contract contract, string methodName, string rawData) { SupportedPlugin plugin = GetResellerPMPlugin(contract.ResellerId, methodName); // return(EcommerceProvider.WriteSupportedPluginLog(contract.ContractId, plugin.PluginId, 0, rawData)); }
internal static SystemPluginBase GetSystemPluginInstance(string contractId, SupportedPlugin plugin, bool setupPlugin) { Contract contract = ContractSystem.ContractController.GetContract(contractId); // return(GetSystemPluginInstance(contract, plugin, setupPlugin)); }
/// <summary> /// Gets contracts' payment provider /// </summary> /// <param name="contractInfo"></param> /// <param name="methodName"></param> /// <returns></returns> internal static SystemPluginBase GetContractPaymentMethod(Contract contractInfo, string methodName) { // Load supported plugin SupportedPlugin plugin = GetResellerPMPlugin(contractInfo.ResellerId, methodName); // return(GetSystemPluginInstance(contractInfo, plugin, true)); }
internal static SystemPluginBase GetSystemPluginInstance(int pluginId) { // load plugin SupportedPlugin plugin = GetSupportedPluginById(pluginId); // return(GetSystemPluginInstance(plugin)); }
internal static SupportedPlugin GetResellerPMPlugin(int resellerId, string methodName) { SupportedPlugin plugin = ObjectUtils.FillObjectFromDataReader <SupportedPlugin>( EcommerceProvider.GetResellerPMPlugin(resellerId, methodName)); // if (plugin == null) { throw new Exception("RESELLER_PM_PLUGIN_NOT_FOUND"); } // return(plugin); }
internal static SystemPluginBase GetSystemPluginInstance(Contract contract, SupportedPlugin plugin, bool setupPlugin) { // load plugin SystemPluginBase pluginObj = GetSystemPluginInstance(plugin); // if (setupPlugin) { SetupSystemPlugin(contract.ResellerId, pluginObj); } // return(pluginObj); }
internal static SystemPluginBase GetSystemPluginInstance(SupportedPlugin plugin) { // check plugin not empty if (plugin == null) { throw new ArgumentNullException("plugin"); } // create system plugin instance SystemPluginBase pluginObj = (SystemPluginBase)Activator.CreateInstance(Type.GetType(plugin.TypeName)); // copy fields pluginObj.PluginId = plugin.PluginId; pluginObj.PluginName = plugin.PluginName; // return return(pluginObj); }
public static CheckoutFormParams GetCheckoutFormParams(string contractId, int invoiceId, string methodName, KeyValueBunch options) { Contract contractInfo = ContractSystem.ContractController.GetContract(contractId); // Impersonate ContractSystem.ContractController.ImpersonateAsContractReseller(contractInfo); // SupportedPlugin pmPlugin = GetResellerPMPlugin(contractInfo.ResellerId, methodName); // if (pmPlugin == null) { throw new Exception("Incorrect payment method has been specified"); } // create instance of plugin IInteractivePaymentGatewayProvider provider = (IInteractivePaymentGatewayProvider) SystemPluginController.GetSystemPluginInstance(contractInfo, pmPlugin, true); // Invoice userInvoice = InvoiceController.GetCustomerInvoiceInternally(invoiceId); // List <InvoiceItem> invoiceLines = InvoiceController.GetCustomerInvoiceItems(invoiceId); // load contract account ContractAccount account = ContractSystem.ContractController.GetContractAccountSettings(contractId); // build form parameters FormParameters formParams = new FormParameters(); // copy reseller id formParams[FormParameters.CONTRACT] = userInvoice.ContractId; // copy invoice number formParams[FormParameters.INVOICE] = userInvoice.InvoiceId.ToString(); // copy invoice amount formParams[FormParameters.AMOUNT] = userInvoice.Total.ToString("0.00"); // copy invoice tax amount formParams[FormParameters.TAX_AMOUNT] = userInvoice.TaxAmount.ToString("0.00"); // copy invoice currency formParams[FormParameters.CURRENCY] = userInvoice.Currency; // copy first name formParams[FormParameters.FIRST_NAME] = account[ContractAccount.FIRST_NAME]; // copy last name formParams[FormParameters.LAST_NAME] = account[ContractAccount.LAST_NAME]; // copy email formParams[FormParameters.EMAIL] = account[ContractAccount.EMAIL]; // copy address formParams[FormParameters.ADDRESS] = account[ContractAccount.ADDRESS]; // copy country formParams[FormParameters.COUNTRY] = account[ContractAccount.COUNTRY]; // copy phone number formParams[FormParameters.PHONE] = account[ContractAccount.PHONE_NUMBER]; // copy city formParams[FormParameters.CITY] = account[ContractAccount.CITY]; // copy state formParams[FormParameters.STATE] = account[ContractAccount.STATE]; // copy zip formParams[FormParameters.ZIP] = account[ContractAccount.ZIP]; // copy options if any if (options != null) { foreach (string keyName in options.GetAllKeys()) { formParams[keyName] = options[keyName]; } } // return result return(provider.GetCheckoutFormParams(formParams, invoiceLines.ToArray())); }