0
我正在研究一个magento 2支付模块,但我被困在一个点,我需要包括第三方支付网关php文件,其中多个类声明为类a,类b,class.php文件中的class c 我正在使用require_once('magento_path/class.php'); 但它似乎不起作用 请帮助!Magento 2在模块中添加多个php文件
--Updated--这里是我的代码放置请求样品gateway--
注:所有变量都只是
public function placeRequest(TransferInterface $transferObject)
{
require_once ("ThePaymentGateway/PaymentSystem.php");
$rgeplRequestGatewayEntryPointList = new RequestGatewayEntryPointList();
$rgeplRequestGatewayEntryPointList->add("gw1.".$PaymentProcessorFullDomain, 100, 1);
$rgeplRequestGatewayEntryPointList->add("https://gw2.".$PaymentProcessorFullDomain, 200, 1);
$rgeplRequestGatewayEntryPointList->add("https://gw3.".$PaymentProcessorFullDomain, 300, 1);
$cdtCardDetailsTransaction = new CardDetailsTransaction($rgeplRequestGatewayEntryPointList);
$cdtCardDetailsTransaction->getMerchantAuthentication()->setMerchantID($MerchantID);
$cdtCardDetailsTransaction->getMerchantAuthentication()->setPassword($Password);
$cdtCardDetailsTransaction->getTransactionDetails()->getMessageDetails()->setTransactionType("SALE");
$cdtCardDetailsTransaction->getTransactionDetails()->getAmount()->setValue($Amount);
$cdtCardDetailsTransaction->getTransactionDetails()->setOrderID($OrderID);
$cdtCardDetailsTransaction->getTransactionDetails()->setOrderDescription($OrderDescription);
$cdtCardDetailsTransaction->getTransactionDetails()->getTransactionControl()->getEchoCardType()->setValue(true);
$cdtCardDetailsTransaction->getTransactionDetails()->getTransactionControl()->getEchoAmountReceived()->setValue(true);
$cdtCardDetailsTransaction->getTransactionDetails()->getTransactionControl()->getEchoAVSCheckResult()->setValue(true);
$cdtCardDetailsTransaction->getTransactionDetails()->getTransactionControl()->getEchoCV2CheckResult()->setValue(true);
$cdtCardDetailsTransaction->getTransactionDetails()->getTransactionControl()->getThreeDSecureOverridePolicy()->setValue(true);
$cdtCardDetailsTransaction->getTransactionDetails()->getTransactionControl()->getDuplicateDelay()->setValue(60);
$cdtCardDetailsTransaction->getTransactionDetails()->getThreeDSecureBrowserDetails()->getDeviceCategory()->setValue(0);
$cdtCardDetailsTransaction->getTransactionDetails()->getThreeDSecureBrowserDetails()->setAcceptHeaders("*/*");
$cdtCardDetailsTransaction->getTransactionDetails()->getThreeDSecureBrowserDetails()->setUserAgent($_SERVER["HTTP_USER_AGENT"]);
$cdtCardDetailsTransaction->getCardDetails()->setCardName($CardName);
$cdtCardDetailsTransaction->getCardDetails()->setCardNumber($CardNumber);
$cdtCardDetailsTransaction->getCardDetails()->setIssueNumber($IssueNumber);
$cdtCardDetailsTransaction->getCardDetails()->setCV2($CV2);
$cdtCardDetailsTransaction->getCustomerDetails()->getBillingAddress()->setAddress1($Address1);
$cdtCardDetailsTransaction->getCustomerDetails()->getBillingAddress()->setAddress2($Address2);
$cdtCardDetailsTransaction->getCustomerDetails()->getBillingAddress()->setAddress3($Address3);
$cdtCardDetailsTransaction->getCustomerDetails()->getBillingAddress()->setAddress4($Address4);
$cdtCardDetailsTransaction->getCustomerDetails()->getBillingAddress()->setCity($City);
$cdtCardDetailsTransaction->getCustomerDetails()->getBillingAddress()->setState($State);
$cdtCardDetailsTransaction->getCustomerDetails()->getBillingAddress()->setPostCode($PostCode);
$cdtCardDetailsTransaction->getCustomerDetails()->setEmailAddress("[email protected]");
$cdtCardDetailsTransaction->getCustomerDetails()->setPhoneNumber("123456789");
$cdtCardDetailsTransaction->getCustomerDetails()->setCustomerIPAddress($_SERVER["REMOTE_ADDR"]);
$boTransactionProcessed = $cdtCardDetailsTransaction->processTransaction($cdtrCardDetailsTransactionResult, $todTransactionOutputData);
if ($boTransactionProcessed == false)
{
// could not communicate with the payment gateway
$NextFormMode = "PAYMENT_FORM";
$Message = "Couldn't communicate with payment gateway";
PaymentFormHelper::reportTransactionResults($OrderID, 30, $Message, null);
}
else
{
echo "Payment Success";
}
}
所有的支付网关类在Paymentsystem.php定义例子由payzone提供,但在这里require_once似乎不工作
是的,我已经创建了一个自定义付款模块指南 – user3719134
我创建自定义付款模块来连接付费区支付网关,但payzone提供了一个php库,需要包含在我的模块中进行连接,但库包含了很多类一个PHP文件,所以我的问题是如何包括这个文件在我的模块? – user3719134
好吧,我明白了。那么我会将这些类添加到我的块文件中。你可以在同一个php文件中创建类。当你想使用它们时,通过创建一个新实例来启动它们$ newClass = new Class A ...然后,当你想使用这个对象的方法时,你可以执行$ newClass-> method() ;如果您想了解有关名称空间的知识,您可以在块__construct中通过依赖注入添加此类,以便您可以按照Magento的方式进行操作。只需在同一个Block文件中命名新的类 –