andrepayone/payone-sdk-http-message
Http facade, middleware, Validator) without requiring custom boilerplate. For example, PSR-7 requests can be converted to Laravel Request objects for validation or middleware processing.Http client or facade, enabling standardized API calls to PAYONE. Example:
use Illuminate\Support\Facades\Http;
use Andrepayone\PayoneSdkHttpMessage\Request;
$psrRequest = new Request('POST', '/payment');
$psrRequest->getBody()->write(json_encode(['amount' => 100.00]));
$response = Http::withOptions(['decode' => false])
->send($psrRequest->toPsrRequest()); // Convert to PSR-7 if needed
$middleware = new class implements \Closure {
public function __invoke($request, \Closure $next) {
// Log request
\Log::info('PAYONE Request', ['headers' => $request->getHeaders()]);
return $next($request);
}
};
Response objects for consistency:
public function handleWebhook(Request $request) {
$psrResponse = $payoneService->processWebhook($request->toPsrRequest());
return new Response($psrResponse->getBody(), $psrResponse->getStatusCode(), $psrResponse->getHeaders());
}
$mockRequest = $this->createMock(\Psr\Http\Message\RequestInterface::class);
$mockRequest->method('getBody')->willReturn(new \Psr\Http\Message\StreamInterface());
$this->assertEquals('success', $payoneService->processPayment($mockRequest));
Symfony\Component\HttpFoundation\Request/Response (non-PSR) could simplify integration for some use cases.ProblemDetail responses or HTTP 4xx/5xx codes).Http client) suffice without it?HttpClient in terms of features, performance, and Laravel integration?Http client with raw JSON payloads (non-PSR) reduce complexity while meeting requirements?Http client integration, middleware support) to the package?Http client, middleware, and routing systems. For example:
Http client calls for PAYONE API interactions.Response objects.Validator to sanitize PAYONE request payloads before processing.$middleware = new class implements \Closure {
public function __invoke($request, \Closure $next) {
// Add PAYONE-specific headers
$request = $request->withHeader('X-Payone-API-Key', config('payone.api_key'));
return $next($request);
}
};
422 Unprocessable Entity for validation failures or 500 Internal Server Error for SDK errors).PayoneService logic in isolation.Http::fake() or Http::post() to simulate PAYONE API calls and webhook callbacks in integration tests.How can I help you explore Laravel packages today?