나는 magento 2 지불 모듈에서 작업하고 있지만, 여러 클래스가 클래스 a, 클래스처럼 선언 된 타사 지불 게이트웨이 PHP 파일을 포함해야 할 시점에 처박혀있다. b, class.php 파일의 클래스 c require_once ('magento_path/class.php');를 사용하고 있습니다. 하지만 작동하지 않는 것 같습니다 도와주세요!Magento 2 모듈에 복수 클래스 PHP 파일 추가
여기 --Updated--는
참고 gateway--하는 요청을 배치하는 코드의 내 샘플입니다 : 모든 변수는 모든 지불 게이트웨이 클래스가 Paymentsystem.php에 정의되어
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";
}
}
예를 들어 있습니다 payzone에서 제공하지만 여기서는 require_once가 작동하지 않는 것 같습니다.
예, 맞춤 결제 모듈 가이드를 만들었습니다 – user3719134
payzone 지불 게이트웨이에 연결하기 위해 맞춤 결제 모듈을 만들었지 만 payzone은 연결을 위해 제 모듈에 포함해야하는 PHP 라이브러리를 제공하지만 라이브러리에 정의 된 클래스가 너무 많습니다 하나의 PHP 파일 그래서 내 질문은 내 모듈에이 파일을 포함시킬 수 있습니까? – user3719134
알았어. 그럼 그 클래스들을 제 블록 파일에 추가 할 것입니다. 동일한 PHP 파일 내에서 클래스를 만들 수 있습니다. $ newClass = new Class A ... 그런 다음이 객체의 메소드를 사용하고 싶다면 $ newClass-> method()를 사용하면된다. ; 네임 스페이스에 대해 배우려면 블록 __construct에 의존성 삽입을 통해이 클래스를 추가 할 수 있으므로 Magento 방식을 따를 수 있습니다. 동일한 Block 파일 내의 새로운 클래스를 네임 스페이스로 만듭니다. –