Skip to content

Commit ea7dc0f

Browse files
committed
Add optional attributes to BTF and Static. Update Timestamp.
1 parent b12f61a commit ea7dc0f

File tree

4 files changed

+24
-25
lines changed

4 files changed

+24
-25
lines changed

src/Builders/Request/StaticBuilder.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,11 @@ public function addRandomNonce(): StaticBuilder
5151

5252
public function addTimestamp(DateTimeInterface $dateTime): StaticBuilder
5353
{
54-
$this->appendElementTo('Timestamp', $dateTime->format('Y-m-d\TH:i:s\Z'), $this->instance);
54+
$milliseconds = (int)($dateTime->format('u') / 1000);
55+
56+
$formatted = $dateTime->format('Y-m-d\TH:i:s') . sprintf('.%03dZ', $milliseconds);
57+
58+
$this->appendElementTo('Timestamp', $formatted, $this->instance);
5559

5660
return $this;
5761
}
@@ -70,6 +74,13 @@ public function addUserId(string $userId): StaticBuilder
7074
return $this;
7175
}
7276

77+
public function addSystemId(string $systemId): StaticBuilder
78+
{
79+
$this->appendElementTo('SystemID', $systemId, $this->instance);
80+
81+
return $this;
82+
}
83+
7384
public function addProduct(string $product, string $language): StaticBuilder
7485
{
7586
$this->appendElementTo('Product', $product, $this->instance, ['Language' => $language]);

src/Contexts/BTFContext.php

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10,30 +10,17 @@
1010
*/
1111
abstract class BTFContext extends ServiceContext
1212
{
13-
private bool $signatureFlag = false;
14-
private bool $signatureFlagEds = false;
13+
private array $parameters = [];
1514

16-
public function setSignatureFlag(bool $signatureFlag): self
15+
public function setParameter(string $name, string $value): self
1716
{
18-
$this->signatureFlag = $signatureFlag;
17+
$this->parameters[$name] = $value;
1918

2019
return $this;
2120
}
2221

23-
public function getSignatureFlag(): bool
22+
public function getParameters(): array
2423
{
25-
return $this->signatureFlag;
26-
}
27-
28-
public function setSignatureFlagEds(bool $signatureFlagEds): self
29-
{
30-
$this->signatureFlagEds = $signatureFlagEds;
31-
32-
return $this;
33-
}
34-
35-
public function getSignatureFlagEds(): bool
36-
{
37-
return $this->signatureFlagEds;
24+
return $this->parameters;
3825
}
3926
}

src/Orders/BTD.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,5 +168,7 @@ private function addBTDOrderParams(
168168
);
169169
$xmlBTDOrderParams->appendChild($xmlDateRange);
170170
}
171+
172+
$orderDetailsBuilder->addParameters($xmlBTDOrderParams, $this->btdContext->getParameters());
171173
}
172174
}

src/Orders/BTU.php

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,7 @@ private function buildRequest(): Request
120120
->addDataDigest(
121121
$this->context->getSignatureVersion(),
122122
$this->context->getDataDigest()
123-
)
124-
->addAdditionalOrderInfo();
123+
);
125124
});
126125
});
127126
})
@@ -164,12 +163,12 @@ private function addBTUOrderParams(OrderDetailsBuilder $orderDetailsBuilder): vo
164163
$xmlMsgName->setAttribute('format', $this->btuContext->getMsgNameFormat());
165164
}
166165

167-
if (true === $this->btuContext->getSignatureFlag()) {
166+
if ($this->context->getWithES()) {
168167
$xmlSignatureFlag = $orderDetailsBuilder->appendEmptyElementTo('SignatureFlag', $xmlBTUOrderParams);
169168

170-
if (true === $this->btuContext->getSignatureFlagEds()) {
171-
$xmlSignatureFlag->setAttribute('requestEDS', 'true');
172-
}
169+
$xmlSignatureFlag->setAttribute('requestEDS', 'true');
173170
}
171+
172+
$orderDetailsBuilder->addParameters($xmlBTUOrderParams, $this->btuContext->getParameters());
174173
}
175174
}

0 commit comments

Comments
 (0)