1010use Omise \Payment \Model \Config \Cc ;
1111use Omise \Payment \Model \Config \Config ;
1212use Omise \Payment \Block \Adminhtml \System \Config \Form \Field \Webhook ;
13+ use Omise \Payment \Model \Capabilities ;
1314
1415class PaymentDataBuilder implements BuilderInterface
1516{
@@ -53,14 +54,20 @@ class PaymentDataBuilder implements BuilderInterface
5354 */
5455 private $ money ;
5556
57+ private $ capabilities ;
58+
5659 /**
5760 * @param \Omise\Payment\Helper\OmiseHelper $omiseHelper
5861 * @param Omise\Payment\Model\Config\Cc $ccConfig
5962 */
60- public function __construct (Cc $ ccConfig , OmiseMoney $ money )
61- {
63+ public function __construct (
64+ Cc $ ccConfig ,
65+ OmiseMoney $ money ,
66+ Capabilities $ capabilities
67+ ) {
6268 $ this ->money = $ money ;
6369 $ this ->ccConfig = $ ccConfig ;
70+ $ this ->capabilities = $ capabilities ;
6471 }
6572
6673 /**
@@ -99,8 +106,9 @@ public function build(array $buildSubject)
99106 $ requestBody [self ::WEBHOOKS_ENDPOINT ] = [$ webhookUrl ];
100107 }
101108
102- if (Installment::CODE === $ method ->getMethod ()) {
103- $ requestBody [self ::ZERO_INTEREST_INSTALLMENTS ] = $ this ->isZeroInterestInstallment ($ method );
109+ // Set zero_interest_installment to true for installment Maybank only
110+ if ($ this ->enableZeroInterestInstallments ($ method )) {
111+ $ requestBody [self ::ZERO_INTEREST_INSTALLMENTS ] = true ;
104112 }
105113
106114 if (Cc::CODE === $ method ->getMethod ()) {
@@ -110,9 +118,13 @@ public function build(array $buildSubject)
110118 return $ requestBody ;
111119 }
112120
113- public function isZeroInterestInstallment ($ method )
121+ /**
122+ * Set zero_interest_installment to true for installment Maybank
123+ */
124+ public function enableZeroInterestInstallments ($ method )
114125 {
126+ $ isInstallment = Installment::CODE === $ method ->getMethod ();
115127 $ installmentId = $ method ->getAdditionalInformation (InstallmentDataAssignObserver::OFFSITE );
116- return ( ' installment_mbb ' === $ installmentId );
128+ return $ isInstallment && (Installment:: MBB_ID === $ installmentId );
117129 }
118130}
0 commit comments