108 lines
2.7 KiB
PHP
108 lines
2.7 KiB
PHP
|
|
<?php
|
||
|
|
/**
|
||
|
|
* ApiException
|
||
|
|
* PHP version 7.4
|
||
|
|
*
|
||
|
|
* @category Class
|
||
|
|
* @package Alipay\OpenAPISDK
|
||
|
|
* @author OpenAPI Generator team
|
||
|
|
* @link https://openapi-generator.tech
|
||
|
|
*/
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 支付宝开放平台API
|
||
|
|
*
|
||
|
|
* 支付宝开放平台v3协议文档
|
||
|
|
*
|
||
|
|
* The version of the OpenAPI document: 2023-12-20
|
||
|
|
* Generated by: https://openapi-generator.tech
|
||
|
|
* OpenAPI Generator version: 6.2.1
|
||
|
|
*/
|
||
|
|
|
||
|
|
/**
|
||
|
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||
|
|
* https://openapi-generator.tech
|
||
|
|
* Do not edit the class manually.
|
||
|
|
*/
|
||
|
|
|
||
|
|
namespace Alipay\OpenAPISDK;
|
||
|
|
|
||
|
|
use \Exception;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* ApiException Class Doc Comment
|
||
|
|
*
|
||
|
|
* @category Class
|
||
|
|
* @package Alipay\OpenAPISDK
|
||
|
|
* @author OpenAPI Generator team
|
||
|
|
* @link https://openapi-generator.tech
|
||
|
|
*/
|
||
|
|
class HeaderSelector
|
||
|
|
{
|
||
|
|
/**
|
||
|
|
* @param string[] $accept
|
||
|
|
* @param string[] $contentTypes
|
||
|
|
* @return array
|
||
|
|
*/
|
||
|
|
public function selectHeaders($accept, $contentTypes)
|
||
|
|
{
|
||
|
|
$headers = [];
|
||
|
|
|
||
|
|
$accept = $this->selectAcceptHeader($accept);
|
||
|
|
if ($accept !== null) {
|
||
|
|
$headers['Accept'] = $accept;
|
||
|
|
}
|
||
|
|
|
||
|
|
$headers['Content-Type'] = $this->selectContentTypeHeader($contentTypes);
|
||
|
|
return $headers;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @param string[] $accept
|
||
|
|
* @return array
|
||
|
|
*/
|
||
|
|
public function selectHeadersForMultipart($accept)
|
||
|
|
{
|
||
|
|
$headers = $this->selectHeaders($accept, []);
|
||
|
|
|
||
|
|
unset($headers['Content-Type']);
|
||
|
|
return $headers;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Return the header 'Accept' based on an array of Accept provided
|
||
|
|
*
|
||
|
|
* @param string[] $accept Array of header
|
||
|
|
*
|
||
|
|
* @return null|string Accept (e.g. application/json)
|
||
|
|
*/
|
||
|
|
private function selectAcceptHeader($accept)
|
||
|
|
{
|
||
|
|
if (count($accept) === 0 || (count($accept) === 1 && $accept[0] === '')) {
|
||
|
|
return null;
|
||
|
|
} elseif ($jsonAccept = preg_grep('~(?i)^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$~', $accept)) {
|
||
|
|
return implode(',', $jsonAccept);
|
||
|
|
} else {
|
||
|
|
return implode(',', $accept);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Return the content type based on an array of content-type provided
|
||
|
|
*
|
||
|
|
* @param string[] $contentType Array fo content-type
|
||
|
|
*
|
||
|
|
* @return string Content-Type (e.g. application/json)
|
||
|
|
*/
|
||
|
|
private function selectContentTypeHeader($contentType)
|
||
|
|
{
|
||
|
|
if (count($contentType) === 0 || (count($contentType) === 1 && $contentType[0] === '')) {
|
||
|
|
return 'application/json';
|
||
|
|
} elseif (preg_grep("/application\/json/i", $contentType)) {
|
||
|
|
return 'application/json';
|
||
|
|
} else {
|
||
|
|
return implode(',', $contentType);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|