fuc/vendor/alipaysdk/openapi/v3/src/Api/AlipayOpenSpOperationResultApi.php
2025-02-23 13:30:57 +08:00

635 lines
32 KiB
PHP
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* AlipayOpenSpOperationResultApi
* 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: 2024-05-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\Api;
use Alipay\OpenAPISDK\Util\AlipayConfigUtil;
use Alipay\OpenAPISDK\Util\AlipayLogger;
use Alipay\OpenAPISDK\Util\Model\CustomizedParams;
use GuzzleHttp\Client;
use GuzzleHttp\ClientInterface;
use GuzzleHttp\Exception\ConnectException;
use GuzzleHttp\Exception\RequestException;
use GuzzleHttp\Psr7\MultipartStream;
use GuzzleHttp\Psr7\Request;
use GuzzleHttp\RequestOptions;
use Alipay\OpenAPISDK\ApiException;
use Alipay\OpenAPISDK\Configuration;
use Alipay\OpenAPISDK\HeaderSelector;
use Alipay\OpenAPISDK\ObjectSerializer;
/**
* AlipayOpenSpOperationResultApi Class Doc Comment
*
* @category Class
* @package Alipay\OpenAPISDK
* @author OpenAPI Generator team
* @link https://openapi-generator.tech
*/
class AlipayOpenSpOperationResultApi
{
/**
* @var ClientInterface
*/
protected $client;
/**
* @var Configuration
*/
protected $config;
/**
* @var HeaderSelector
*/
protected $headerSelector;
/**
* @var int Host index
*/
protected $hostIndex;
/**
* @var AlipayConfigUtil
*/
protected $alipayConfigUtil;
/**
* @param ClientInterface $client
* @param Configuration $config
* @param HeaderSelector $selector
* @param int $hostIndex (Optional) host index to select the list of hosts if defined in the OpenAPI spec
* @param AlipayConfigUtil $alipayConfigUtil
*/
public function __construct(
ClientInterface $client = null,
Configuration $config = null,
HeaderSelector $selector = null,
$hostIndex = 0,
AlipayConfigUtil $alipayConfigUtil = null
) {
$this->client = $client ?: new Client();
$this->config = $config ?: new Configuration();
$this->headerSelector = $selector ?: new HeaderSelector();
$this->hostIndex = $hostIndex;
$this->alipayConfigUtil = $alipayConfigUtil ?: new AlipayConfigUtil();
}
/**
* @return AlipayConfigUtil
*/
public function getAlipayConfigUtil(): AlipayConfigUtil
{
return $this->alipayConfigUtil;
}
/**
* @param AlipayConfigUtil $alipayConfigUtil
*/
public function setAlipayConfigUtil(AlipayConfigUtil $alipayConfigUtil): void
{
$this->alipayConfigUtil = $alipayConfigUtil;
}
/**
* Set the host index
*
* @param int $hostIndex Host index (required)
*/
public function setHostIndex($hostIndex): void
{
$this->hostIndex = $hostIndex;
}
/**
* Get the host index
*
* @return int Host index
*/
public function getHostIndex()
{
return $this->hostIndex;
}
/**
* @return Configuration
*/
public function getConfig()
{
return $this->config;
}
/**
* Operation query
*
* 查询服务商代运营操作结果
*
* @param string $operateType 代运营操作类型。取值如下 ACCOUNT_BIND:账号绑定; OPERATION_AUTH:代运营授权。 (optional)
* @param string $batchNo 支付宝操作批次号。 batch_no提供基于操作批次的精确查询,只查询本操作批次的代运营操作结果,不反映最终代运营操作结果。 注意: 1.access_product_code、merchant_no、alipay_account三个参数组合与传入 batch_no 为两种查询方式,不可同时为空且以 batch_no 优先。 2.access_product_code、merchant_no、alipay_account三个参数组合可以查询最终代运营操作结果。 (optional)
* @param string $accessProductCode 接入的产品编号。未传batch_no时必填,枚举如下: OPENAPI_BIND_DEFAULT:操作类型为账号绑定; OPENAPI_AUTH_DEFAULT:操作类型为代运营授权。 (optional)
* @param string $merchantNo 支付宝商户号。支持间连、直连商户,值为2088开头。 未传batch_no时需注意: 若查询间连商户则 merchant_no 必填; 若查询直连商户,则merchant_no和alipay_account不能同时为空,都有值优先取merchant_no。 (optional)
* @param string $alipayAccount 支付宝登录账号,通常为手机号或者邮箱。未传batch_no时需注意: 1.当查询merchant_no为间连商户时: * 若 operate_type&#x3D;ACCOUNT_BIND,则alipay_account必填。 * 若 operate_type&#x3D;OPERATION_AUTH,则alipay_account无需传入。 2.当查询merchant_no为直连商户时: * merchant_no和alipay_account不能同时为空,都有值优先取merchant_no。 (optional)
* @param string $isvScenePermissions 场景授权列表结构结构:场景codeA:权限code1,权限code2;场景codeB:权限code1,权限code2; (optional)
* @param CustomizedParams $customizedParams
*
* @throws \Alipay\OpenAPISDK\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return \Alipay\OpenAPISDK\Model\AlipayOpenSpOperationResultQueryResponseModel|\Alipay\OpenAPISDK\Model\AlipayOpenSpOperationResultQueryDefaultResponse
*/
public function query($operateType = null, $batchNo = null, $accessProductCode = null, $merchantNo = null, $alipayAccount = null, $isvScenePermissions = null, CustomizedParams $customizedParams = null)
{
list($response) = $this->queryWithHttpInfo($operateType, $batchNo, $accessProductCode, $merchantNo, $alipayAccount, $isvScenePermissions, $customizedParams);
return $response;
}
/**
* Operation queryWithHttpInfo
*
* 查询服务商代运营操作结果
*
* @param string $operateType 代运营操作类型。取值如下 ACCOUNT_BIND:账号绑定; OPERATION_AUTH:代运营授权。 (optional)
* @param string $batchNo 支付宝操作批次号。 batch_no提供基于操作批次的精确查询,只查询本操作批次的代运营操作结果,不反映最终代运营操作结果。 注意: 1.access_product_code、merchant_no、alipay_account三个参数组合与传入 batch_no 为两种查询方式,不可同时为空且以 batch_no 优先。 2.access_product_code、merchant_no、alipay_account三个参数组合可以查询最终代运营操作结果。 (optional)
* @param string $accessProductCode 接入的产品编号。未传batch_no时必填,枚举如下: OPENAPI_BIND_DEFAULT:操作类型为账号绑定; OPENAPI_AUTH_DEFAULT:操作类型为代运营授权。 (optional)
* @param string $merchantNo 支付宝商户号。支持间连、直连商户,值为2088开头。 未传batch_no时需注意: 若查询间连商户则 merchant_no 必填; 若查询直连商户,则merchant_no和alipay_account不能同时为空,都有值优先取merchant_no。 (optional)
* @param string $alipayAccount 支付宝登录账号,通常为手机号或者邮箱。未传batch_no时需注意: 1.当查询merchant_no为间连商户时: * 若 operate_type&#x3D;ACCOUNT_BIND,则alipay_account必填。 * 若 operate_type&#x3D;OPERATION_AUTH,则alipay_account无需传入。 2.当查询merchant_no为直连商户时: * merchant_no和alipay_account不能同时为空,都有值优先取merchant_no。 (optional)
* @param string $isvScenePermissions 场景授权列表结构结构:场景codeA:权限code1,权限code2;场景codeB:权限code1,权限code2; (optional)
* @param CustomizedParams $customizedParams
*
* @throws \Alipay\OpenAPISDK\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return array of \Alipay\OpenAPISDK\Model\AlipayOpenSpOperationResultQueryResponseModel|\Alipay\OpenAPISDK\Model\AlipayOpenSpOperationResultQueryDefaultResponse, HTTP status code, HTTP response headers (array of strings)
*/
public function queryWithHttpInfo($operateType = null, $batchNo = null, $accessProductCode = null, $merchantNo = null, $alipayAccount = null, $isvScenePermissions = null, CustomizedParams $customizedParams = null)
{
$request = $this->queryRequest($operateType, $batchNo, $accessProductCode, $merchantNo, $alipayAccount, $isvScenePermissions, $customizedParams);
try {
$options = $this->createHttpClientOption();
try {
$response = $this->client->send($request, $options);
} catch (RequestException $e) {
if ($e->getResponse()) {
//验签
$this->alipayConfigUtil->verifyResponse((string)$e->getResponse()->getBody(),
$e->getResponse()->getHeaders(), true);
}
AlipayLogger::logBizError("code:{$e->getCode()}, message:{$e->getMessage()}");
throw new ApiException(
"[{$e->getCode()}] {$e->getMessage()}",
(int) $e->getCode(),
$e->getResponse() ? $e->getResponse()->getHeaders() : null,
$e->getResponse() ? (string) $e->getResponse()->getBody() : null
);
} catch (ConnectException $e) {
AlipayLogger::logBizError("code:{$e->getCode()}, message:{$e->getMessage()}");
throw new ApiException(
"[{$e->getCode()}] {$e->getMessage()}",
(int) $e->getCode(),
null,
null
);
}
$statusCode = $response->getStatusCode();
if ($statusCode < 200 || $statusCode > 299) {
//验签
$bodyStr = (string)$response->getBody();
$this->alipayConfigUtil->verifyResponse($bodyStr, $response->getHeaders(), true);
AlipayLogger::logBizError("code:{$statusCode}, message:{$bodyStr}");
throw new ApiException(
sprintf(
'[%d] Error connecting to the API (%s)',
$statusCode,
(string) $request->getUri()
),
$statusCode,
$response->getHeaders(),
$bodyStr
);
}
switch($statusCode) {
case 200:
if ('\Alipay\OpenAPISDK\Model\AlipayOpenSpOperationResultQueryResponseModel' === '\SplFileObject') {
$content = $response->getBody(); //stream goes to serializer
} else {
$content = (string) $response->getBody();
//验签
$this->alipayConfigUtil->verifyResponse($content, $response->getHeaders(), false);
//解密
$content = $this->alipayConfigUtil->decrypt($content);
if ('\Alipay\OpenAPISDK\Model\AlipayOpenSpOperationResultQueryResponseModel' !== 'string') {
$content = json_decode($content);
}
}
AlipayLogger::logBizResponseInfo($response->getStatusCode(), $content, $response->getHeaders());
return [
ObjectSerializer::deserialize($content, '\Alipay\OpenAPISDK\Model\AlipayOpenSpOperationResultQueryResponseModel', []),
$response->getStatusCode(),
$response->getHeaders()
];
default:
if ('\Alipay\OpenAPISDK\Model\AlipayOpenSpOperationResultQueryDefaultResponse' === '\SplFileObject') {
$content = $response->getBody(); //stream goes to serializer
} else {
$content = (string) $response->getBody();
//验签
$this->alipayConfigUtil->verifyResponse($content, $response->getHeaders(), true);
if ('\Alipay\OpenAPISDK\Model\AlipayOpenSpOperationResultQueryDefaultResponse' !== 'string') {
$content = json_decode($content);
}
}
AlipayLogger::logBizResponseInfo($response->getStatusCode(), $content, $response->getHeaders());
return [
//ObjectSerializer::deserialize($content, '\Alipay\OpenAPISDK\Model\AlipayOpenSpOperationResultQueryDefaultResponse', []),
$content,
$response->getStatusCode(),
$response->getHeaders()
];
}
$returnType = '\Alipay\OpenAPISDK\Model\AlipayOpenSpOperationResultQueryResponseModel';
if ($returnType === '\SplFileObject') {
$content = $response->getBody(); //stream goes to serializer
} else {
$content = (string) $response->getBody();
//验签
$this->alipayConfigUtil->verifyResponse($content, $response->getHeaders(), false);
//解密
$content = $this->alipayConfigUtil->decrypt($content);
if ($returnType !== 'string') {
$content = json_decode($content);
}
}
AlipayLogger::logBizResponseInfo($response->getStatusCode(), $content, $response->getHeaders());
return [
ObjectSerializer::deserialize($content, $returnType, []),
$response->getStatusCode(),
$response->getHeaders()
];
} catch (ApiException $e) {
switch ($e->getCode()) {
case 200:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Alipay\OpenAPISDK\Model\AlipayOpenSpOperationResultQueryResponseModel',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
default:
//$data = ObjectSerializer::deserialize(
// $e->getResponseBody(),
// '\Alipay\OpenAPISDK\Model\AlipayOpenSpOperationResultQueryDefaultResponse',
// $e->getResponseHeaders()
//);
//$e->setResponseObject($data);
break;
}
throw $e;
}
}
/**
* Operation queryAsync
*
* 查询服务商代运营操作结果
*
* @param string $operateType 代运营操作类型。取值如下 ACCOUNT_BIND:账号绑定; OPERATION_AUTH:代运营授权。 (optional)
* @param string $batchNo 支付宝操作批次号。 batch_no提供基于操作批次的精确查询,只查询本操作批次的代运营操作结果,不反映最终代运营操作结果。 注意: 1.access_product_code、merchant_no、alipay_account三个参数组合与传入 batch_no 为两种查询方式,不可同时为空且以 batch_no 优先。 2.access_product_code、merchant_no、alipay_account三个参数组合可以查询最终代运营操作结果。 (optional)
* @param string $accessProductCode 接入的产品编号。未传batch_no时必填,枚举如下: OPENAPI_BIND_DEFAULT:操作类型为账号绑定; OPENAPI_AUTH_DEFAULT:操作类型为代运营授权。 (optional)
* @param string $merchantNo 支付宝商户号。支持间连、直连商户,值为2088开头。 未传batch_no时需注意: 若查询间连商户则 merchant_no 必填; 若查询直连商户,则merchant_no和alipay_account不能同时为空,都有值优先取merchant_no。 (optional)
* @param string $alipayAccount 支付宝登录账号,通常为手机号或者邮箱。未传batch_no时需注意: 1.当查询merchant_no为间连商户时: * 若 operate_type&#x3D;ACCOUNT_BIND,则alipay_account必填。 * 若 operate_type&#x3D;OPERATION_AUTH,则alipay_account无需传入。 2.当查询merchant_no为直连商户时: * merchant_no和alipay_account不能同时为空,都有值优先取merchant_no。 (optional)
* @param string $isvScenePermissions 场景授权列表结构结构:场景codeA:权限code1,权限code2;场景codeB:权限code1,权限code2; (optional)
* @param CustomizedParams $customizedParams
*
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Promise\PromiseInterface
* @deprecated
*/
public function queryAsync($operateType = null, $batchNo = null, $accessProductCode = null, $merchantNo = null, $alipayAccount = null, $isvScenePermissions = null, CustomizedParams $customizedParams = null)
{
return $this->queryAsyncWithHttpInfo($operateType, $batchNo, $accessProductCode, $merchantNo, $alipayAccount, $isvScenePermissions, $customizedParams)
->then(
function ($response) {
return $response[0];
}
);
}
/**
* Operation queryAsyncWithHttpInfo
*
* 查询服务商代运营操作结果
*
* @param string $operateType 代运营操作类型。取值如下 ACCOUNT_BIND:账号绑定; OPERATION_AUTH:代运营授权。 (optional)
* @param string $batchNo 支付宝操作批次号。 batch_no提供基于操作批次的精确查询,只查询本操作批次的代运营操作结果,不反映最终代运营操作结果。 注意: 1.access_product_code、merchant_no、alipay_account三个参数组合与传入 batch_no 为两种查询方式,不可同时为空且以 batch_no 优先。 2.access_product_code、merchant_no、alipay_account三个参数组合可以查询最终代运营操作结果。 (optional)
* @param string $accessProductCode 接入的产品编号。未传batch_no时必填,枚举如下: OPENAPI_BIND_DEFAULT:操作类型为账号绑定; OPENAPI_AUTH_DEFAULT:操作类型为代运营授权。 (optional)
* @param string $merchantNo 支付宝商户号。支持间连、直连商户,值为2088开头。 未传batch_no时需注意: 若查询间连商户则 merchant_no 必填; 若查询直连商户,则merchant_no和alipay_account不能同时为空,都有值优先取merchant_no。 (optional)
* @param string $alipayAccount 支付宝登录账号,通常为手机号或者邮箱。未传batch_no时需注意: 1.当查询merchant_no为间连商户时: * 若 operate_type&#x3D;ACCOUNT_BIND,则alipay_account必填。 * 若 operate_type&#x3D;OPERATION_AUTH,则alipay_account无需传入。 2.当查询merchant_no为直连商户时: * merchant_no和alipay_account不能同时为空,都有值优先取merchant_no。 (optional)
* @param string $isvScenePermissions 场景授权列表结构结构:场景codeA:权限code1,权限code2;场景codeB:权限code1,权限code2; (optional)
* @param CustomizedParams $customizedParams
*
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Promise\PromiseInterface
* @deprecated
*/
public function queryAsyncWithHttpInfo($operateType = null, $batchNo = null, $accessProductCode = null, $merchantNo = null, $alipayAccount = null, $isvScenePermissions = null, CustomizedParams $customizedParams = null)
{
$returnType = '\Alipay\OpenAPISDK\Model\AlipayOpenSpOperationResultQueryResponseModel';
$request = $this->queryRequest($operateType, $batchNo, $accessProductCode, $merchantNo, $alipayAccount, $isvScenePermissions, $customizedParams);
return $this->client
->sendAsync($request, $this->createHttpClientOption())
->then(
function ($response) use ($returnType) {
if ($returnType === '\SplFileObject') {
$content = $response->getBody(); //stream goes to serializer
} else {
$content = (string) $response->getBody();
//验签
$this->alipayConfigUtil->verifyResponse($content, $response->getHeaders(), false);
//解密
$content = $this->alipayConfigUtil->decrypt($content);
if ($returnType !== 'string') {
$content = json_decode($content);
}
}
return [
ObjectSerializer::deserialize($content, $returnType, []),
$response->getStatusCode(),
$response->getHeaders()
];
},
function ($exception) {
$response = $exception->getResponse();
$statusCode = $response->getStatusCode();
//验签
$this->alipayConfigUtil->verifyResponse((string)$response->getBody(), $response->getHeaders(), true);
throw new ApiException(
sprintf(
'[%d] Error connecting to the API (%s)',
$statusCode,
$exception->getRequest()->getUri()
),
$statusCode,
$response->getHeaders(),
(string) $response->getBody()
);
}
);
}
/**
* Create request for operation 'query'
*
* @param string $operateType 代运营操作类型。取值如下 ACCOUNT_BIND:账号绑定; OPERATION_AUTH:代运营授权。 (optional)
* @param string $batchNo 支付宝操作批次号。 batch_no提供基于操作批次的精确查询,只查询本操作批次的代运营操作结果,不反映最终代运营操作结果。 注意: 1.access_product_code、merchant_no、alipay_account三个参数组合与传入 batch_no 为两种查询方式,不可同时为空且以 batch_no 优先。 2.access_product_code、merchant_no、alipay_account三个参数组合可以查询最终代运营操作结果。 (optional)
* @param string $accessProductCode 接入的产品编号。未传batch_no时必填,枚举如下: OPENAPI_BIND_DEFAULT:操作类型为账号绑定; OPENAPI_AUTH_DEFAULT:操作类型为代运营授权。 (optional)
* @param string $merchantNo 支付宝商户号。支持间连、直连商户,值为2088开头。 未传batch_no时需注意: 若查询间连商户则 merchant_no 必填; 若查询直连商户,则merchant_no和alipay_account不能同时为空,都有值优先取merchant_no。 (optional)
* @param string $alipayAccount 支付宝登录账号,通常为手机号或者邮箱。未传batch_no时需注意: 1.当查询merchant_no为间连商户时: * 若 operate_type&#x3D;ACCOUNT_BIND,则alipay_account必填。 * 若 operate_type&#x3D;OPERATION_AUTH,则alipay_account无需传入。 2.当查询merchant_no为直连商户时: * merchant_no和alipay_account不能同时为空,都有值优先取merchant_no。 (optional)
* @param string $isvScenePermissions 场景授权列表结构结构:场景codeA:权限code1,权限code2;场景codeB:权限code1,权限code2; (optional)
* @param CustomizedParams $customizedParams
*
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Psr7\Request
*/
public function queryRequest($operateType = null, $batchNo = null, $accessProductCode = null, $merchantNo = null, $alipayAccount = null, $isvScenePermissions = null, CustomizedParams $customizedParams = null)
{
$resourcePath = '/v3/alipay/open/sp/operation/result/query';
$formParams = [];
$queryParams = [];
$headerParams = [];
$httpBody = '';
$multipart = false;
$signContent = '';
$isEncrypt = $this->alipayConfigUtil->isEncrypt();
// query params
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
$operateType,
'operate_type', // param base name
'string', // openApiType
'form', // style
true, // explode
false // required
) ?? []);
// query params
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
$batchNo,
'batch_no', // param base name
'string', // openApiType
'form', // style
true, // explode
false // required
) ?? []);
// query params
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
$accessProductCode,
'access_product_code', // param base name
'string', // openApiType
'form', // style
true, // explode
false // required
) ?? []);
// query params
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
$merchantNo,
'merchant_no', // param base name
'string', // openApiType
'form', // style
true, // explode
false // required
) ?? []);
// query params
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
$alipayAccount,
'alipay_account', // param base name
'string', // openApiType
'form', // style
true, // explode
false // required
) ?? []);
// query params
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
$isvScenePermissions,
'isv_scene_permissions', // param base name
'string', // openApiType
'form', // style
true, // explode
false // required
) ?? []);
$headers = $this->headerSelector->selectHeaders(
['application/json'],
[]
);
if ($headers['Content-Type'] === 'multipart/form-data') {
$multipart = true;
unset($headers['Content-Type']);
}
// for model (json/xml)
if (count($formParams) > 0) {
if ($multipart) {
$multipartContents = [];
foreach ($formParams as $formParamName => $formParamValue) {
$formParamValueItems = is_array($formParamValue) ? $formParamValue : [$formParamValue];
foreach ($formParamValueItems as $formParamValueItem) {
if (is_string($formParamValueItem)) {
$signContent = $formParamValueItem;
}
//加密时非文件字段对应的Content-Type类型为text/plain
if ($isEncrypt && is_string($formParamValueItem)) {
$signContent = $this->alipayConfigUtil->encrypt($formParamValueItem, $headers, true);
$multipartContents[] = [
'name' => $formParamName,
'contents' => $signContent,
'headers' => ['Content-Type' => 'text/plain']
];
} else {
$multipartContents[] = [
'name' => $formParamName,
'contents' => $formParamValueItem,
'headers' => ['Content-Type' => 'application/json']
];
}
}
}
// for HTTP post (form)
$httpBody = new MultipartStream($multipartContents);
} elseif ($headers['Content-Type'] === 'application/json') {
$signContent = $this->alipayConfigUtil->encrypt(\GuzzleHttp\json_encode($formParams, JSON_UNESCAPED_UNICODE), $headers);
$httpBody = $signContent;
} else {
// for HTTP post (form)
$signContent = $this->alipayConfigUtil->encrypt(ObjectSerializer::buildQuery($formParams), $headers);
$httpBody = $signContent;
}
}
if ($isEncrypt) {
$headers['alipay-encrypt-type'] = $this->alipayConfigUtil->getEncryptType();
//除文件上传接口,加密后Content-Type均为"text/plain"
if (!$multipart) {
$headers['Content-Type'] = 'text/plain';
}
}
if ($customizedParams != null) {
//额外query参数
if (is_array($customizedParams->getQueryParams()) && count($customizedParams->getQueryParams()) >= 0) {
foreach ($customizedParams->getQueryParams() as $k => $v) {
if (is_array($v)) {
$v = ObjectSerializer::serializeCollection($v, 'form');
}
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue($v, $k) ?? []);
}
}
if (!$this->alipayConfigUtil->checkEmpty($customizedParams->getAppAuthToken())) {
$headerParams["alipay-app-auth-token"] = $customizedParams->getAppAuthToken();
}
//额外非全局header参数
if (is_array($customizedParams->getHeaderParams()) && count($customizedParams->getHeaderParams()) >= 0) {
foreach ($customizedParams->getHeaderParams() as $k => $v) {
if (is_array($v)) {
$v = ObjectSerializer::serializeCollection($v, 'form');
}
$headerParams[$k] = ObjectSerializer::toHeaderValue($v);
}
}
}
$defaultHeaders = [];
if ($this->config->getUserAgent()) {
$defaultHeaders['User-Agent'] = $this->config->getUserAgent();
}
if ($this->config->getSdkVersion()) {
$defaultHeaders['alipay-sdk-version'] = $this->config->getSdkVersion();
}
$headers = array_merge(
$defaultHeaders,
$headerParams,
$headers
);
if (!array_key_exists('alipay-request-id', $headers)) {
$headers['alipay-request-id'] = $this->alipayConfigUtil->createUuid();
}
$query = ObjectSerializer::buildQuery($queryParams);
$url = $resourcePath . ($query ? "?{$query}" : '');
//加签
$this->alipayConfigUtil->sign('GET', $url, $signContent, $headers);
$basePath = $this->alipayConfigUtil->checkEmpty($this->alipayConfigUtil->getServerUrl()) ? $this->config->getHost() : $this->alipayConfigUtil->getServerUrl();
AlipayLogger::logBizInfo($basePath . $url, $signContent, 'GET', $multipart ? "multipart/form-data" : $headers['Content-Type'], $headers['alipay-request-id']);
return new Request(
'GET',
$basePath . $url,
$headers,
$httpBody
);
}
/**
* Create http client option
*
* @throws \RuntimeException on file opening failure
* @return array of http client options
*/
protected function createHttpClientOption()
{
$options = [];
if ($this->config->getDebug()) {
$options[RequestOptions::DEBUG] = fopen($this->config->getDebugFile(), 'a');
if (!$options[RequestOptions::DEBUG]) {
throw new \RuntimeException('Failed to open the debug file: ' . $this->config->getDebugFile());
}
}
return $options;
}
}