/** @brief Simplify CreditCardProcessor's implementation - we really don't care about much with the external credit card processor. */ int ExternalCCProcessor::testConfiguration() { if (DEBUG) qDebug("ExternalCCProcessor::testConfiguration()"); reset(); if (!_privileges->check("ProcessCreditCards")) { _errorMsg = errorMsg(-2); return -2; } if(!_metrics->boolean("CCAccept")) { _errorMsg = errorMsg(-3); return -3; } XSqlQuery ccbankq("SELECT ccbank_id" " FROM ccbank" " WHERE (ccbank_bankaccnt_id IS NOT NULL);"); if (ccbankq.first()) ; // we're ok - we can accept at least one credit card else if (ccbankq.lastError().type() != QSqlError::NoError) { _errorMsg = ccbankq.lastError().text(); return -1; } else { _errorMsg = errorMsg(-4); return -4; } if (omfgThis->_key.isEmpty()) { _errorMsg = errorMsg(-5); return -5; } return 0; }
/** \ingroup creditcards \class configureCC \brief This is the master setup window for configuring the credit card subsystem. */ configureCC::configureCC(QWidget* parent, const char* name, bool /*modal*/, Qt::WFlags fl) : XAbstractConfigure(parent, fl) { setupUi(this); if (name) setObjectName(name); connect(_ccCompany, SIGNAL(currentIndexChanged(int)), this, SLOT(sCCCompanyChanged(int))); _enableChargePreauth->setVisible(false); _enableCredit->setVisible(false); // these ids must match the pages in the stack widget _ccCompany->append(0, "Authorize.Net", "AN"); _ccCompany->append(1, "YourPay", "YP"); _ccCompany->append(2, "CyberSource", "CS"); _ccCompany->append(3, "External", "EXT"); if (_metrics->boolean("CCEnablePaymentech")) _ccCompany->append(4, "Paymentech", "PT"); ConfigAuthorizeDotNetProcessor *an = new ConfigAuthorizeDotNetProcessor(this); _configcclist.append(an); _ccWidgetStack->insertWidget(_ccWidgetStack->indexOf(_yourPayStack), an); ConfigCyberSourceProcessor *cs = new ConfigCyberSourceProcessor(this); _configcclist.append(cs); _ccWidgetStack->insertWidget(_ccWidgetStack->indexOf(_externalStack), cs); _ccAccept->setChecked(_metrics->boolean("CCAccept")); _ccTest->setChecked(_metrics->boolean("CCTest")); _ccValidDays->setValue(_metrics->value("CCValidDays").toInt()); _ccCompany->setCurrentIndex(_ccCompany->findText(_metrics->value("CCCompany"))); _ccWidgetStack->setCurrentIndex(_ccCompany->currentIndex()); sCCCompanyChanged(_ccCompany->currentIndex()); _ccServer->setText(_metrics->value("CCServer")); _ccPort->setText(_metrics->value("CCPort")); _ccUseProxyServer->setChecked(_metrics->boolean("CCUseProxyServer")); _ccProxyServer->setText(_metrics->value("CCProxyServer")); _ccProxyPort->setText(_metrics->value("CCProxyPort")); XSqlQuery ccbankq("SELECT * FROM ccbank;"); ccbankq.exec(); while (ccbankq.next()) { if (ccbankq.value("ccbank_ccard_type").toString() == "A") _amexBank->setId(ccbankq.value("ccbank_bankaccnt_id").toInt()); else if (ccbankq.value("ccbank_ccard_type").toString() == "D") _discoverBank->setId(ccbankq.value("ccbank_bankaccnt_id").toInt()); else if (ccbankq.value("ccbank_ccard_type").toString() == "M") _mastercardBank->setId(ccbankq.value("ccbank_bankaccnt_id").toInt()); /* TODO: wait until we support paypal? else if (ccbankq.value("ccbank_ccard_type").toString() == "P") _paypalBank->setId(ccbankq.value("ccbank_bankaccnt_id").toInt()); */ else if (ccbankq.value("ccbank_ccard_type").toString() == "V") _visaBank->setId(ccbankq.value("ccbank_bankaccnt_id").toInt()); } if (ccbankq.lastError().type() != QSqlError::NoError) systemError(this, ccbankq.lastError().text(), __FILE__, __LINE__); _ccYPWinPathPEM->setText(_metrics->value("CCYPWinPathPEM")); _ccYPLinPathPEM->setText(_metrics->value("CCYPLinPathPEM")); _ccYPMacPathPEM->setText(_metrics->value("CCYPMacPathPEM")); _ccYPLinkShield->setChecked(_metrics->boolean("CCYPLinkShield")); _ccYPLinkShieldMax->setValue(_metrics->value("CCYPLinkShieldMax").toInt()); _confirmPreauth->setChecked(_metrics->boolean("CCConfirmPreauth")); _confirmCharge->setChecked(_metrics->boolean("CCConfirmCharge")); _confirmChargePreauth->setChecked(_metrics->boolean("CCConfirmChargePreauth")); _confirmCredit->setChecked(_metrics->boolean("CCConfirmCredit")); _enablePreauth->setChecked(_metrics->boolean("CCEnablePreauth")); _enableCharge->setChecked(_metrics->boolean("CCEnableCharge")); _enableChargePreauth->setChecked(_metrics->boolean("CCEnableChargePreauth")); _enableCredit->setChecked(_metrics->boolean("CCEnableCredit")); _printReceipt->setChecked(_metrics->boolean("CCPrintReceipt")); _cvvRequired->setChecked(_metrics->boolean("CCRequireCVV")); QString str = _metrics->value("CCCVVCheck"); if (str == "F") _cvvReject->setChecked(true); else if (str == "W") _cvvWarn->setChecked(true); else // if (str == "X") _cvvNone->setChecked(true); str = _metrics->value("CCCVVErrors"); _cvvNotMatch->setChecked(str.contains("N")); _cvvNotProcessed->setChecked(str.contains("P")); _cvvNotOnCard->setChecked(str.contains("S")); _cvvInvalidIssuer->setChecked(str.contains("U")); str = _metrics->value("CCAvsCheck"); if (str == "F") _avsReject->setChecked(true); else if (str == "W") _avsWarn->setChecked(true); else // if (str == "X") _avsNone->setChecked(true); str = _metrics->value("CCAvsAddr"); _avsAddrNotMatch->setChecked(str.contains("N")); _avsAddrNotAvail->setChecked(str.contains("X")); str = _metrics->value("CCAvsZIP"); _avsZIPNotMatch->setChecked(str.contains("N")); _avsZIPNotAvail->setChecked(str.contains("X")); str = _metrics->value("CCTestResult"); if (str == "F") _testsAllFail->setChecked(true); else if (str == "S") _testsSomeFail->setChecked(true); else // if (str == "P") _testsAllPass->setChecked(true); if (0 != _metricsenc) { _ccLogin->setText(_metricsenc->value("CCLogin")); _ccPassword->setText(_metricsenc->value("CCPassword")); _ccProxyLogin->setText(_metricsenc->value("CCProxyLogin")); _ccProxyPassword->setText(_metricsenc->value("CCProxyPassword")); _ccYPStoreNum->setText(_metricsenc->value("CCYPStoreNum")); _ccPTDivisionNumber->setText(_metricsenc->value("CCPTDivisionNumber")); } else { _ccLogin->setEnabled(false); _ccPassword->setEnabled(false); _ccProxyLogin->setEnabled(false); _ccProxyPassword->setEnabled(false); _ccYPStoreNum->setEnabled(false); _ccPTDivisionNumber->setEnabled(false); } XAbstractConfigure *encryption = new configureEncryption(this); if (encryption) { encryption->setObjectName("_encryption"); _keyPage->layout()->addWidget(encryption); QPushButton *encbutton = encryption->findChild<QPushButton*>("_save"); if (encbutton) encbutton->hide(); encbutton = encryption->findChild<QPushButton*>("_close"); if (encbutton) encbutton->hide(); encryption->show(); } else if (_metricsenc == 0 && !shownEncryptedMsg) { QMessageBox::critical( this, tr("Cannot Read Configuration"), tr("<p>Cannot read encrypted information from database.")); shownEncryptedMsg = true; } }