1: <?php
2: /*
3: * This file was automatically generated.
4: */
5: namespace Worldline\Acquiring\Sdk\V1\Acquirer\Merchant\Balanceinquiries;
6:
7: use Worldline\Acquiring\Sdk\ApiResource;
8: use Worldline\Acquiring\Sdk\CallContext;
9: use Worldline\Acquiring\Sdk\Communication\ErrorResponseException;
10: use Worldline\Acquiring\Sdk\Communication\InvalidResponseException;
11: use Worldline\Acquiring\Sdk\Communication\ResponseClassMap;
12: use Worldline\Acquiring\Sdk\V1\ApiException;
13: use Worldline\Acquiring\Sdk\V1\AuthorizationException;
14: use Worldline\Acquiring\Sdk\V1\Domain\ApiBalanceInquiryRequest;
15: use Worldline\Acquiring\Sdk\V1\Domain\ApiBalanceInquiryResponse;
16: use Worldline\Acquiring\Sdk\V1\ExceptionFactory;
17: use Worldline\Acquiring\Sdk\V1\PlatformException;
18: use Worldline\Acquiring\Sdk\V1\ReferenceException;
19: use Worldline\Acquiring\Sdk\V1\ValidationException;
20:
21: /**
22: * BalanceInquiries client.
23: *
24: * @package Worldline\Acquiring\Sdk\V1\Acquirer\Merchant\Balanceinquiries
25: */
26: class BalanceInquiriesClient extends ApiResource
27: {
28: /**
29: * @var ExceptionFactory|null
30: */
31: private ?ExceptionFactory $responseExceptionFactory = null;
32:
33: /**
34: * Resource /processing/v1/{acquirerId}/{merchantId}/balance-inquiries - Balance inquiry
35: *
36: * @param ApiBalanceInquiryRequest $body
37: * @param CallContext|null $callContext
38: *
39: * @return ApiBalanceInquiryResponse
40: * @throws ValidationException
41: * @throws AuthorizationException
42: * @throws ReferenceException
43: * @throws PlatformException
44: * @throws ApiException
45: * @throws InvalidResponseException
46: * @link https://docs.acquiring.worldline-solutions.com/api-reference#tag/Balance-Inquiries/operation/processBalanceInquiry Balance inquiry
47: */
48: public function processBalanceInquiry(ApiBalanceInquiryRequest $body, ?CallContext $callContext = null): ApiBalanceInquiryResponse
49: {
50: $responseClassMap = new ResponseClassMap();
51: $responseClassMap->defaultSuccessResponseClassName = '\Worldline\Acquiring\Sdk\V1\Domain\ApiBalanceInquiryResponse';
52: $responseClassMap->defaultErrorResponseClassName = '\Worldline\Acquiring\Sdk\V1\Domain\ApiPaymentErrorResponse';
53: try {
54: return $this->getCommunicator()->post(
55: $responseClassMap,
56: $this->instantiateUri('/processing/v1/{acquirerId}/{merchantId}/balance-inquiries'),
57: $body,
58: null,
59: $callContext
60: );
61: } catch (ErrorResponseException $e) {
62: throw $this->getResponseExceptionFactory()->createException(
63: $e->getHttpStatusCode(),
64: $e->getErrorResponse(),
65: $callContext
66: );
67: }
68: }
69:
70: /**
71: * @return ExceptionFactory
72: */
73: private function getResponseExceptionFactory(): ExceptionFactory
74: {
75: if (is_null($this->responseExceptionFactory)) {
76: $this->responseExceptionFactory = new ExceptionFactory();
77: }
78: return $this->responseExceptionFactory;
79: }
80: }
81: