1: <?php
2: /*
3: * This class was auto-generated from the API references found at
4: * https://apireference.connect.worldline-solutions.com/
5: */
6: namespace Worldline\Connect\Sdk\V1\Merchant\Hostedcheckouts;
7:
8: use Worldline\Connect\Sdk\ApiResource;
9: use Worldline\Connect\Sdk\CallContext;
10: use Worldline\Connect\Sdk\Communication\ErrorResponseException;
11: use Worldline\Connect\Sdk\Communication\InvalidResponseException;
12: use Worldline\Connect\Sdk\Communication\ResponseClassMap;
13: use Worldline\Connect\Sdk\V1\ApiException;
14: use Worldline\Connect\Sdk\V1\AuthorizationException;
15: use Worldline\Connect\Sdk\V1\Domain\CreateHostedCheckoutRequest;
16: use Worldline\Connect\Sdk\V1\Domain\CreateHostedCheckoutResponse;
17: use Worldline\Connect\Sdk\V1\Domain\GetHostedCheckoutResponse;
18: use Worldline\Connect\Sdk\V1\ExceptionFactory;
19: use Worldline\Connect\Sdk\V1\IdempotenceException;
20: use Worldline\Connect\Sdk\V1\PlatformException;
21: use Worldline\Connect\Sdk\V1\ReferenceException;
22: use Worldline\Connect\Sdk\V1\ValidationException;
23:
24: /**
25: * Hosted Checkouts client.
26: */
27: class HostedcheckoutsClient extends ApiResource
28: {
29: /** @var ExceptionFactory|null */
30: private $responseExceptionFactory = null;
31:
32: /**
33: * Resource /{merchantId}/hostedcheckouts - Create hosted checkout
34: *
35: * @param CreateHostedCheckoutRequest $body
36: * @param CallContext $callContext
37: * @return CreateHostedCheckoutResponse
38: *
39: * @throws IdempotenceException
40: * @throws ValidationException
41: * @throws AuthorizationException
42: * @throws ReferenceException
43: * @throws PlatformException
44: * @throws ApiException
45: * @throws InvalidResponseException
46: * @link https://apireference.connect.worldline-solutions.com/s2sapi/v1/en_US/php/hostedcheckouts/create.html Create hosted checkout
47: */
48: public function create(CreateHostedCheckoutRequest $body, CallContext $callContext = null)
49: {
50: $responseClassMap = new ResponseClassMap();
51: $responseClassMap->defaultSuccessResponseClassName = '\Worldline\Connect\Sdk\V1\Domain\CreateHostedCheckoutResponse';
52: $responseClassMap->defaultErrorResponseClassName = '\Worldline\Connect\Sdk\V1\Domain\ErrorResponse';
53: try {
54: return $this->getCommunicator()->post(
55: $responseClassMap,
56: $this->instantiateUri('/v1/{merchantId}/hostedcheckouts'),
57: $this->getClientMetaInfo(),
58: $body,
59: null,
60: $callContext
61: );
62: } catch (ErrorResponseException $e) {
63: throw $this->getResponseExceptionFactory()->createException(
64: $e->getHttpStatusCode(),
65: $e->getErrorResponse(),
66: $callContext
67: );
68: }
69: }
70:
71: /**
72: * Resource /{merchantId}/hostedcheckouts/{hostedCheckoutId} - Get hosted checkout status
73: *
74: * @param string $hostedCheckoutId
75: * @param CallContext $callContext
76: * @return GetHostedCheckoutResponse
77: *
78: * @throws IdempotenceException
79: * @throws ValidationException
80: * @throws AuthorizationException
81: * @throws ReferenceException
82: * @throws PlatformException
83: * @throws ApiException
84: * @throws InvalidResponseException
85: * @link https://apireference.connect.worldline-solutions.com/s2sapi/v1/en_US/php/hostedcheckouts/get.html Get hosted checkout status
86: */
87: public function get($hostedCheckoutId, CallContext $callContext = null)
88: {
89: $this->context['hostedCheckoutId'] = $hostedCheckoutId;
90: $responseClassMap = new ResponseClassMap();
91: $responseClassMap->defaultSuccessResponseClassName = '\Worldline\Connect\Sdk\V1\Domain\GetHostedCheckoutResponse';
92: $responseClassMap->defaultErrorResponseClassName = '\Worldline\Connect\Sdk\V1\Domain\ErrorResponse';
93: try {
94: return $this->getCommunicator()->get(
95: $responseClassMap,
96: $this->instantiateUri('/v1/{merchantId}/hostedcheckouts/{hostedCheckoutId}'),
97: $this->getClientMetaInfo(),
98: null,
99: $callContext
100: );
101: } catch (ErrorResponseException $e) {
102: throw $this->getResponseExceptionFactory()->createException(
103: $e->getHttpStatusCode(),
104: $e->getErrorResponse(),
105: $callContext
106: );
107: }
108: }
109:
110: /**
111: * Resource /{merchantId}/hostedcheckouts/{hostedCheckoutId} - Delete hosted checkout
112: *
113: * @param string $hostedCheckoutId
114: * @param CallContext $callContext
115: * @return null
116: *
117: * @throws IdempotenceException
118: * @throws ValidationException
119: * @throws AuthorizationException
120: * @throws ReferenceException
121: * @throws PlatformException
122: * @throws ApiException
123: * @throws InvalidResponseException
124: * @link https://apireference.connect.worldline-solutions.com/s2sapi/v1/en_US/php/hostedcheckouts/delete.html Delete hosted checkout
125: */
126: public function delete($hostedCheckoutId, CallContext $callContext = null)
127: {
128: $this->context['hostedCheckoutId'] = $hostedCheckoutId;
129: $responseClassMap = new ResponseClassMap();
130: $responseClassMap->defaultErrorResponseClassName = '\Worldline\Connect\Sdk\V1\Domain\ErrorResponse';
131: try {
132: return $this->getCommunicator()->delete(
133: $responseClassMap,
134: $this->instantiateUri('/v1/{merchantId}/hostedcheckouts/{hostedCheckoutId}'),
135: $this->getClientMetaInfo(),
136: null,
137: $callContext
138: );
139: } catch (ErrorResponseException $e) {
140: throw $this->getResponseExceptionFactory()->createException(
141: $e->getHttpStatusCode(),
142: $e->getErrorResponse(),
143: $callContext
144: );
145: }
146: }
147:
148: /** @return ExceptionFactory */
149: private function getResponseExceptionFactory()
150: {
151: if (is_null($this->responseExceptionFactory)) {
152: $this->responseExceptionFactory = new ExceptionFactory();
153: }
154: return $this->responseExceptionFactory;
155: }
156: }
157: