提交服务端基础框架

This commit is contained in:
wanghao
2025-03-12 12:18:06 +08:00
parent b2dc631969
commit 7c1b4f1a4f
11794 changed files with 3510099 additions and 0 deletions

View File

@@ -0,0 +1,115 @@
<?php
/**
* AlipayOpenFileApiTest
* 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: 1.0
* Generated by: https://openapi-generator.tech
* OpenAPI Generator version: 6.0.0
*/
/**
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Please update the test case below to test the endpoint.
*/
namespace Alipay\OpenAPISDK\Test\Api;
use Alipay\OpenAPISDK\Api\AlipayOpenFileApi;
use \Alipay\OpenAPISDK\Configuration;
use \Alipay\OpenAPISDK\ApiException;
use Alipay\OpenAPISDK\Model\AlipayOpenFileUploadModel;
use \Alipay\OpenAPISDK\ObjectSerializer;
use Alipay\OpenAPISDK\Util\AlipayConfigUtil;
use Alipay\OpenAPISDK\Util\Model\AlipayConfig;
use GuzzleHttp\Client;
use PHPUnit\Framework\TestCase;
/**
* AlipayOpenFileApiTest Class Doc Comment
*
* @category Class
* @package Alipay\OpenAPISDK
* @author OpenAPI Generator team
* @link https://openapi-generator.tech
*/
class AlipayOpenFileApiTest extends TestCase
{
private $apiInstance;
/**
* Setup before running any test cases
*/
public static function setUpBeforeClass(): void
{
}
/**
* Setup before running each test case
*/
public function setUp(): void
{
$alipayConfig = new AlipayConfig();
$alipayConfig->setAppId('2021003126677278');
$alipayConfig->setPrivateKey('');
$alipayConfig->setAlipayPublicKey('MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlr+2Mir816Ye8ybsC8QgIigrG2oqVTwYeCjiJQPGP0x7iRVVwQuuM54rO+OyyfJcvI5UWFtfcpy+si+3JyaInKP69DA0AS4XkVPV/81xcIHMZP/CJAYOtLFLhhyEwp1CMoN45BtJes5lG65UXz/7QzVjcF+6AC+qVKx66HKSsT9b5HyWRxfDkOYixy1gZt39w+sgxaAPVt6pf7UZHX+ENE/gYpTCHHflVPzPfl8TIXTZmEMGqjBLY8GFXVJkvATX3h12VX3AwUlIndY4gJND9l1isFV9BfpmZYyv864z14UH6Kq9u8WVWdF5bsJevo4oU0Q0UB8EmyOdlxBPTDiOzwIDAQAB');
$alipayConfig->setEncryptKey('');
// $alipayConfig->setAppId('2021003156675030');
// $alipayConfig->setPrivateKey('');
// $alipayConfig->setAlipayPublicCertPath('test/cert/alipayCertPublicKey_RSA2.crt');
// $alipayConfig->setAppCertPath('test/cert/appCertPublicKey_2021003156675030.crt');
// $alipayConfig->setRootCertPath('test/cert/alipayRootCert.crt');
// $alipayConfig->setEncryptKey('');
$alipayConfigUtil = new AlipayConfigUtil($alipayConfig);
// $this->apiInstance = new AlipayOpenFileApi(
// // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
// // This is optional, `GuzzleHttp\Client` will be used as default.
// new Client()
// );
// $this->apiInstance->setAlipayConfigUtil($alipayConfigUtil);
}
/**
* Clean up after running each test case
*/
public function tearDown(): void
{
}
/**
* Clean up after running all test cases
*/
public static function tearDownAfterClass(): void
{
}
/**
* Test case for upload
*
* 支付宝文件上传接口.
*
*/
public function testUpload()
{
// $model = new AlipayOpenFileUploadModel();
// $model->setBizCode("content_creation");
// $this->apiInstance->upload(null,"", $model, "test/cert/pic.jpg");
// TODO: implement
// $this->markTestIncomplete('Not implemented');
}
}

View File

@@ -0,0 +1,244 @@
<?php
/**
* OperationApiTest
* 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: 1.0
* Generated by: https://openapi-generator.tech
* OpenAPI Generator version: 6.0.0
*/
/**
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Please update the test case below to test the endpoint.
*/
namespace Alipay\OpenAPISDK\Test\Api;
use Alipay\OpenAPISDK\Api\AlipayTradeApi;
use \Alipay\OpenAPISDK\Configuration;
use \Alipay\OpenAPISDK\ApiException;
use Alipay\OpenAPISDK\Model\AlipayTradePayModel;
use \Alipay\OpenAPISDK\ObjectSerializer;
use Alipay\OpenAPISDK\Util\AlipayConfigUtil;
use Alipay\OpenAPISDK\Util\AlipaySignature;
use Alipay\OpenAPISDK\Util\GenericExecuteApi;
use Alipay\OpenAPISDK\Util\Model\AlipayConfig;
use Alipay\OpenAPISDK\Util\Model\CustomizedParams;
use Alipay\OpenAPISDK\Util\Model\OpenApiGenericRequest;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\GuzzleException;
use PHPUnit\Framework\TestCase;
/**
* OperationApiTest Class Doc Comment
*
* @category Class
* @package Alipay\OpenAPISDK
* @author OpenAPI Generator team
* @link https://openapi-generator.tech
*/
class OperationApiTest extends TestCase
{
private $apiInstance;
/**
* Setup before running any test cases
*/
public static function setUpBeforeClass(): void
{
}
/**
* Setup before running each test case
*/
public function setUp(): void
{
$alipayConfig = new AlipayConfig();
$alipayConfig->setServerUrl('https://openapipre.alipay.com');
$alipayConfig->setAppId('2021003126691367');
$alipayConfig->setPrivateKey('');
$alipayConfig->setAlipayPublicKey('MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlr+2Mir816Ye8ybsC8QgIigrG2oqVTwYeCjiJQPGP0x7iRVVwQuuM54rO+OyyfJcvI5UWFtfcpy+si+3JyaInKP69DA0AS4XkVPV/81xcIHMZP/CJAYOtLFLhhyEwp1CMoN45BtJes5lG65UXz/7QzVjcF+6AC+qVKx66HKSsT9b5HyWRxfDkOYixy1gZt39w+sgxaAPVt6pf7UZHX+ENE/gYpTCHHflVPzPfl8TIXTZmEMGqjBLY8GFXVJkvATX3h12VX3AwUlIndY4gJND9l1isFV9BfpmZYyv864z14UH6Kq9u8WVWdF5bsJevo4oU0Q0UB8EmyOdlxBPTDiOzwIDAQAB');
// $alipayConfig->setEncryptKey('');
// $alipayConfig->setAppId('2021003156675030');
// $alipayConfig->setPrivateKey('');
// $alipayConfig->setAlipayPublicCertPath('test/cert/alipayCertPublicKey_RSA2.crt');
// $alipayConfig->setAppCertPath('test/cert/appCertPublicKey_2021003156675030.crt');
// $alipayConfig->setRootCertPath('test/cert/alipayRootCert.crt');
// $alipayConfig->setEncryptKey('');
$alipayConfigUtil = new AlipayConfigUtil($alipayConfig);
$this->apiInstance = new AlipayTradeApi(
// If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
// This is optional, `GuzzleHttp\Client` will be used as default.
new Client()
);
$this->apiInstance->setAlipayConfigUtil($alipayConfigUtil);
}
/**
* Clean up after running each test case
*/
public function tearDown(): void
{
}
/**
* Clean up after running all test cases
*/
public static function tearDownAfterClass(): void
{
}
/**
* Test case for query
*
* 测试路由转发closelyrzone.
*
*/
public function testQuery()
{
$customizedParams = new CustomizedParams();
$customizedParams->setHeaderParams(["alipay-request-id"=>"222"]);
$model = new AlipayTradePayModel();
$model->setOutTradeNo('20210817010101001');
$model->setTotalAmount('0.011');
$model->setSubject('测试商品');
$model->setScene('bar_code');
$model->setAuthCode('28763443825664394');
try {
$result = $this->apiInstance->pay($model, $customizedParams);
print_r($result);
} catch (ApiException $e) {
var_dump($e->getResponseBody());
echo 'Exception when calling AlipayTradeApi->pay: ', $e->getMessage(), PHP_EOL;
echo 'body: ', $e->getResponseBody(), PHP_EOL;
echo 'header: ', $e->getResponseHeaders(), PHP_EOL;
}
}
public function testPageExecute(){
$execute = new GenericExecuteApi($this->apiInstance->getAlipayConfigUtil());
$execute->setLoadTest(true);
$customizedParams = new CustomizedParams();
$queryParams = ['notify_url' => 'https://www.aaa.com',
'return_url' => 'https://www.bbb.com'];
$customizedParams->setQueryParams($queryParams);
// $customizedParams->setBodyContent("{" .
// " \"body\":\"对一笔交易的具体描述信息。如果是多种商品请将商品描述字符串累加传给body。\"," .
// " \"subject\":\"测试\"," .
// " \"out_trade_no\":\"70501111111S001111119\"," .
// " \"timeout_express\":\"90m\"," .
// " \"total_amount\":9.00," .
// " \"product_code\":\"QUICK_WAP_WAY\"" .
// " }");
$bizParams = [];
$otherParams = [];
$otherParams['body'] = '对一笔交易的具体描述信息。如果是多种商品请将商品描述字符串累加传给body。';
$otherParams['out_trade_no'] = '70501111111S001111119';
$otherParams['timeout_express'] = '90m';
$otherParams['total_amount'] = 9.00;
$otherParams['product_code'] = 'QUICK_WAP_WAY';
$bizParams['biz_content'] = $otherParams;
// $alipayMarketingActivityOrdervoucherAppendModel = new \Alipay\OpenAPISDK\Model\AlipayMarketingActivityOrdervoucherAppendModel(); // \Alipay\OpenAPISDK\Model\AlipayMarketingActivityOrdervoucherAppendModel
// $alipayMarketingActivityOrdervoucherAppendModel->setOutBizNo('1231xxq12312ty111112xxxxqqewx');
// $alipayMarketingActivityOrdervoucherAppendModel->setProductVersion('2.0.0');
// $alipayMarketingActivityOrdervoucherAppendModel->setVoucherQuantity(15);
// $bizParams['biz_content'] = $alipayMarketingActivityOrdervoucherAppendModel;
$pageExecute = $execute->pageExecute("alipay.trade.wap.pay", "POST", $bizParams, "123sdc", null, $customizedParams);
var_dump($pageExecute);
$pageExecute2 = $execute->pageExecute("alipay.trade.wap.pay", "GET", $bizParams, "123sdc", null, $customizedParams);
var_dump($pageExecute2);
$sdkExecute = $execute->sdkExecute("alipay.trade.wap.pay", $bizParams, "123sdc", null, $customizedParams);
var_dump($sdkExecute);
}
public function testExecute(){
$execute = new GenericExecuteApi(
$this->apiInstance->getAlipayConfigUtil(),
new Client());
$request = new OpenApiGenericRequest();
$pathParams['activity_id'] = '123';
$pathParams['voucher_code'] = '券码1';
$request->setPathParams($pathParams);
$queryParams['return_url'] = 'www.baidu.com';
$request->setQueryParams($queryParams);
$bizParams['merchant_access_mode'] = 'AGENCY_MODE';
$bizParams['biz_dt'] = '2017-01-01 00:00:01';
$bizParams['out_biz_no'] = '1002600620019090123143254436';
$bizParams['total_fee'] = '999.99';
$request->setBizParams($bizParams);
$response = $execute->execute('/v3/alipay/marketing/activity/{activity_id}/ordervoucher/{voucher_code}/refund', 'POST', $request);
var_dump($response);
}
public function testFileExecute(){
$execute = new GenericExecuteApi(
$this->apiInstance->getAlipayConfigUtil(),
new Client());
$request = new OpenApiGenericRequest();
$queryParams['return_url'] = 'www.baidu.com';
$request->setQueryParams($queryParams);
$fileParams['app_logo'] = 'test/cert/pic.jpg';
$request->setFileParams($fileParams);
$bizParams['app_category_ids'] = '11_12;12_13';
$bizParams['app_english_name'] = 'demoexample';
$bizParams['app_name'] = '杭州支小宝潮流女装店';
$bizParams['service_email'] = 'example@mail.com';
$request->setBizParams($bizParams);
try {
$response = $execute->execute('/v3/alipay/open/mini/baseinfo/modify', 'POST', $request);
var_dump($response);
} catch (ApiException $e) {
var_dump($e->getResponseBody());
}
}
public function testSign()
{
$privateKey = "";
$aloneRsaSign = AlipaySignature::aloneRsaSign("ceshi", $privateKey);
var_dump($aloneRsaSign);
$publicKey = '';
$verify = AlipaySignature::verify("ceshi", $aloneRsaSign, $publicKey);
var_dump($verify);
$params = [];
$params['method'] = 'koubei.marketing.data.indicator.query';
$params['app_id'] = '201909036687xxx';
$params['sign_type'] = 'RSA2';
$params['sign'] = 'NQHIJKRCoCJCUXqzzK8WUtA/58m4/e3NGLutUFxFUD8udlauzRCgCINxDqs3atXrJ8KeSxpf8IU8nrnK7qzCQiYdj2XjfkXDrZllPEXlrelHitj9qpPqMXlAbP1HArNlBTpaGmq6hwvf/W50O/8kOjPEpmdpFcYZrlR/aA3uwdiOXHGNfd6p2wA7JjHiLQtPXGVm2oLLp+HDEtdhqxs66Br4bTQZPrQNKJrhqRcqwTzA5ZyDMQK724ECTYBI/+8PEvFCpi4Ny6piO78clFE/bSAuKCdhbivBzWDYkvmQymq0M86W3usljVENbnOyBatl7/y4f7S53Ht/yBmO/f+gYg==';
$rsaCheckV1 = AlipaySignature::rsaCheckV2($params, $publicKey);
var_dump($rsaCheckV1);
}
}

View File

@@ -0,0 +1,43 @@
-----BEGIN CERTIFICATE-----
MIIDpjCCAo6gAwIBAgIQICIEIE/sJR28aoyobKtqKzANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE
BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0
aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs
YXNzIDIgUjEwHhcNMjIwNDIwMDgwOTQ1WhcNMjcwNDE5MDgwOTQ1WjCBhjELMAkGA1UEBhMCQ04x
ITAfBgNVBAoMGOiXj+eusea/gOa1i+ivleeahOWFrOWPuDEPMA0GA1UECwwGQWxpcGF5MUMwQQYD
VQQDDDrmlK/ku5jlrp0o5Lit5Zu9Kee9kee7nOaKgOacr+aciemZkOWFrOWPuC0yMDg4NDQxMTY4
MzQ2NzYyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlr+2Mir816Ye8ybsC8QgIigr
G2oqVTwYeCjiJQPGP0x7iRVVwQuuM54rO+OyyfJcvI5UWFtfcpy+si+3JyaInKP69DA0AS4XkVPV
/81xcIHMZP/CJAYOtLFLhhyEwp1CMoN45BtJes5lG65UXz/7QzVjcF+6AC+qVKx66HKSsT9b5HyW
RxfDkOYixy1gZt39w+sgxaAPVt6pf7UZHX+ENE/gYpTCHHflVPzPfl8TIXTZmEMGqjBLY8GFXVJk
vATX3h12VX3AwUlIndY4gJND9l1isFV9BfpmZYyv864z14UH6Kq9u8WVWdF5bsJevo4oU0Q0UB8E
myOdlxBPTDiOzwIDAQABoxIwEDAOBgNVHQ8BAf8EBAMCA/gwDQYJKoZIhvcNAQELBQADggEBAK9Y
T8LTp7B9NYjOY6E5D2Tz6gefiozcU6ExXzAfDIIfEDG0KAUWvif1kdA9NlAC9H5ZJXHE4R4dLbrn
nW95vIvCp7fvgI/Xw+N5kwAetP88u8Cf2B/NzQD8YayBcoPXyfwxB7pV94EzPwpWs8XzflwD1QxW
QQ/S+AgbM+InZdITbS24n3gbdAHjaavOIYJ1GM11DFfC+kWHpbD8AHmfjQIUkEWQGRHPkLKHavXp
eM1VYDxGadXERTupR+9Q5EwzGILK7G7UsoExgiDbQXi4LN8uUdiHbdo+vrmo/80bTw09c9HbNAhi
6c+LfNwFVfyV83xS86TuNkZfZFoveXQJdgI=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIE4jCCAsqgAwIBAgIIYsSr5bKAMl8wDQYJKoZIhvcNAQELBQAwejELMAkGA1UEBhMCQ04xFjAU
BgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5MTEw
LwYDVQQDDChBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFIxMB4XDTE4MDMy
MjE0MzQxNVoXDTM3MTEyNjE0MzQxNVowgYIxCzAJBgNVBAYTAkNOMRYwFAYDVQQKDA1BbnQgRmlu
YW5jaWFsMSAwHgYDVQQLDBdDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTE5MDcGA1UEAwwwQW50IEZp
bmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBDbGFzcyAyIFIxMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAsLMfYaoRoPRbmDcAfXPCmKf43pWRN5yTXa/KJWO0l+mrgQvs89bA
NEvbDUxlkGwycwtwi5DgBuBgVhLliXu+R9CYgr2dXs8D8Hx/gsggDcyGPLmVrDOnL+dyeauheARZ
fA3du60fwEwwbGcVIpIxPa/4n3IS/ElxQa6DNgqxh8J9Xwh7qMGl0JK9+bALuxf7B541Gr4p0WEN
G8fhgjBV4w4ut9eQLOoa1eddOUSZcy46Z7allwowwgt7b5VFfx/P1iKJ3LzBMgkCK7GZ2kiLrL7R
iqV+h482J7hkJD+ardoc6LnrHO/hIZymDxok+VH9fVeUdQa29IZKrIDVj65THQIDAQABo2MwYTAf
BgNVHSMEGDAWgBRfdLQEwE8HWurlsdsio4dBspzhATAdBgNVHQ4EFgQUSqHkYINtUSAtDPnS8Xoy
oP9p7qEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIB
AIQ8TzFy4bVIVb8+WhHKCkKNPcJe2EZuIcqvRoi727lZTJOfYy/JzLtckyZYfEI8J0lasZ29wkTt
a1IjSo+a6XdhudU4ONVBrL70U8Kzntplw/6TBNbLFpp7taRALjUgbCOk4EoBMbeCL0GiYYsTS0mw
7xdySzmGQku4GTyqutIGPQwKxSj9iSFw1FCZqr4VP4tyXzMUgc52SzagA6i7AyLedd3tbS6lnR5B
L+W9Kx9hwT8L7WANAxQzv/jGldeuSLN8bsTxlOYlsdjmIGu/C9OWblPYGpjQQIRyvs4Cc/mNhrh+
14EQgwuemIIFDLOgcD+iISoN8CqegelNcJndFw1PDN6LkVoiHz9p7jzsge8RKay/QW6C03KNDpWZ
EUCgCUdfHfo8xKeR+LL1cfn24HKJmZt8L/aeRZwZ1jwePXFRVtiXELvgJuM/tJDIFj2KD337iV64
fWcKQ/ydDVGqfDZAdcU4hQdsrPWENwPTQPfVPq2NNLMyIH9+WKx9Ed6/WzeZmIy5ZWpX1TtTolo6
OJXQFeItMAjHxW/ZSZTok5IS3FuRhExturaInnzjYpx50a6kS34c5+c8hYq7sAtZ/CNLZmBnBCFD
aMQqT8xFZJ5uolUaSeXxg7JFY1QsYp5RKvj4SjFwCGKJ2+hPPe9UyyltxOidNtxjaknOCeBHytOr
-----END CERTIFICATE-----

View File

@@ -0,0 +1,88 @@
-----BEGIN CERTIFICATE-----
MIIBszCCAVegAwIBAgIIaeL+wBcKxnswDAYIKoEcz1UBg3UFADAuMQswCQYDVQQG
EwJDTjEOMAwGA1UECgwFTlJDQUMxDzANBgNVBAMMBlJPT1RDQTAeFw0xMjA3MTQw
MzExNTlaFw00MjA3MDcwMzExNTlaMC4xCzAJBgNVBAYTAkNOMQ4wDAYDVQQKDAVO
UkNBQzEPMA0GA1UEAwwGUk9PVENBMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE
MPCca6pmgcchsTf2UnBeL9rtp4nw+itk1Kzrmbnqo05lUwkwlWK+4OIrtFdAqnRT
V7Q9v1htkv42TsIutzd126NdMFswHwYDVR0jBBgwFoAUTDKxl9kzG8SmBcHG5Yti
W/CXdlgwDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFEwysZfZ
MxvEpgXBxuWLYlvwl3ZYMAwGCCqBHM9VAYN1BQADSAAwRQIgG1bSLeOXp3oB8H7b
53W+CKOPl2PknmWEq/lMhtn25HkCIQDaHDgWxWFtnCrBjH16/W3Ezn7/U/Vjo5xI
pDoiVhsLwg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIF0zCCA7ugAwIBAgIIH8+hjWpIDREwDQYJKoZIhvcNAQELBQAwejELMAkGA1UE
BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmlj
YXRpb24gQXV0aG9yaXR5MTEwLwYDVQQDDChBbnQgRmluYW5jaWFsIENlcnRpZmlj
YXRpb24gQXV0aG9yaXR5IFIxMB4XDTE4MDMyMTEzNDg0MFoXDTM4MDIyODEzNDg0
MFowejELMAkGA1UEBhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNV
BAsMF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5MTEwLwYDVQQDDChBbnQgRmluYW5j
aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFIxMIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEAtytTRcBNuur5h8xuxnlKJetT65cHGemGi8oD+beHFPTk
rUTlFt9Xn7fAVGo6QSsPb9uGLpUFGEdGmbsQ2q9cV4P89qkH04VzIPwT7AywJdt2
xAvMs+MgHFJzOYfL1QkdOOVO7NwKxH8IvlQgFabWomWk2Ei9WfUyxFjVO1LVh0Bp
dRBeWLMkdudx0tl3+21t1apnReFNQ5nfX29xeSxIhesaMHDZFViO/DXDNW2BcTs6
vSWKyJ4YIIIzStumD8K1xMsoaZBMDxg4itjWFaKRgNuPiIn4kjDY3kC66Sl/6yTl
YUz8AybbEsICZzssdZh7jcNb1VRfk79lgAprm/Ktl+mgrU1gaMGP1OE25JCbqli1
Pbw/BpPynyP9+XulE+2mxFwTYhKAwpDIDKuYsFUXuo8t261pCovI1CXFzAQM2w7H
DtA2nOXSW6q0jGDJ5+WauH+K8ZSvA6x4sFo4u0KNCx0ROTBpLif6GTngqo3sj+98
SZiMNLFMQoQkjkdN5Q5g9N6CFZPVZ6QpO0JcIc7S1le/g9z5iBKnifrKxy0TQjtG
PsDwc8ubPnRm/F82RReCoyNyx63indpgFfhN7+KxUIQ9cOwwTvemmor0A+ZQamRe
9LMuiEfEaWUDK+6O0Gl8lO571uI5onYdN1VIgOmwFbe+D8TcuzVjIZ/zvHrAGUcC
AwEAAaNdMFswCwYDVR0PBAQDAgEGMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFF90
tATATwda6uWx2yKjh0GynOEBMB8GA1UdIwQYMBaAFF90tATATwda6uWx2yKjh0Gy
nOEBMA0GCSqGSIb3DQEBCwUAA4ICAQCVYaOtqOLIpsrEikE5lb+UARNSFJg6tpkf
tJ2U8QF/DejemEHx5IClQu6ajxjtu0Aie4/3UnIXop8nH/Q57l+Wyt9T7N2WPiNq
JSlYKYbJpPF8LXbuKYG3BTFTdOVFIeRe2NUyYh/xs6bXGr4WKTXb3qBmzR02FSy3
IODQw5Q6zpXj8prYqFHYsOvGCEc1CwJaSaYwRhTkFedJUxiyhyB5GQwoFfExCVHW
05ZFCAVYFldCJvUzfzrWubN6wX0DD2dwultgmldOn/W/n8at52mpPNvIdbZb2F41
T0YZeoWnCJrYXjq/32oc1cmifIHqySnyMnavi75DxPCdZsCOpSAT4j4lAQRGsfgI
kkLPGQieMfNNkMCKh7qjwdXAVtdqhf0RVtFILH3OyEodlk1HYXqX5iE5wlaKzDop
PKwf2Q3BErq1xChYGGVS+dEvyXc/2nIBlt7uLWKp4XFjqekKbaGaLJdjYP5b2s7N
1dM0MXQ/f8XoXKBkJNzEiM3hfsU6DOREgMc1DIsFKxfuMwX3EkVQM1If8ghb6x5Y
jXayv+NLbidOSzk4vl5QwngO/JYFMkoc6i9LNwEaEtR9PhnrdubxmrtM+RjfBm02
77q3dSWFESFQ4QxYWew4pHE0DpWbWy/iMIKQ6UZ5RLvB8GEcgt8ON7BBJeMc+Dyi
kT9qhqn+lw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICiDCCAgygAwIBAgIIQX76UsB/30owDAYIKoZIzj0EAwMFADB6MQswCQYDVQQG
EwJDTjEWMBQGA1UECgwNQW50IEZpbmFuY2lhbDEgMB4GA1UECwwXQ2VydGlmaWNh
dGlvbiBBdXRob3JpdHkxMTAvBgNVBAMMKEFudCBGaW5hbmNpYWwgQ2VydGlmaWNh
dGlvbiBBdXRob3JpdHkgRTEwHhcNMTkwNDI4MTYyMDQ0WhcNNDkwNDIwMTYyMDQ0
WjB6MQswCQYDVQQGEwJDTjEWMBQGA1UECgwNQW50IEZpbmFuY2lhbDEgMB4GA1UE
CwwXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxMTAvBgNVBAMMKEFudCBGaW5hbmNp
YWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRTEwdjAQBgcqhkjOPQIBBgUrgQQA
IgNiAASCCRa94QI0vR5Up9Yr9HEupz6hSoyjySYqo7v837KnmjveUIUNiuC9pWAU
WP3jwLX3HkzeiNdeg22a0IZPoSUCpasufiLAnfXh6NInLiWBrjLJXDSGaY7vaokt
rpZvAdmjXTBbMAsGA1UdDwQEAwIBBjAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRZ
4ZTgDpksHL2qcpkFkxD2zVd16TAfBgNVHSMEGDAWgBRZ4ZTgDpksHL2qcpkFkxD2
zVd16TAMBggqhkjOPQQDAwUAA2gAMGUCMQD4IoqT2hTUn0jt7oXLdMJ8q4vLp6sg
wHfPiOr9gxreb+e6Oidwd2LDnC4OUqCWiF8CMAzwKs4SnDJYcMLf2vpkbuVE4dTH
Rglz+HGcTLWsFs4KxLsq7MuU+vJTBUeDJeDjdA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDxTCCAq2gAwIBAgIUEMdk6dVgOEIS2cCP0Q43P90Ps5YwDQYJKoZIhvcNAQEF
BQAwajELMAkGA1UEBhMCQ04xEzARBgNVBAoMCmlUcnVzQ2hpbmExHDAaBgNVBAsM
E0NoaW5hIFRydXN0IE5ldHdvcmsxKDAmBgNVBAMMH2lUcnVzQ2hpbmEgQ2xhc3Mg
MiBSb290IENBIC0gRzMwHhcNMTMwNDE4MDkzNjU2WhcNMzMwNDE4MDkzNjU2WjBq
MQswCQYDVQQGEwJDTjETMBEGA1UECgwKaVRydXNDaGluYTEcMBoGA1UECwwTQ2hp
bmEgVHJ1c3QgTmV0d29yazEoMCYGA1UEAwwfaVRydXNDaGluYSBDbGFzcyAyIFJv
b3QgQ0EgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOPPShpV
nJbMqqCw6Bz1kehnoPst9pkr0V9idOwU2oyS47/HjJXk9Rd5a9xfwkPO88trUpz5
4GmmwspDXjVFu9L0eFaRuH3KMha1Ak01citbF7cQLJlS7XI+tpkTGHEY5pt3EsQg
wykfZl/A1jrnSkspMS997r2Gim54cwz+mTMgDRhZsKK/lbOeBPpWtcFizjXYCqhw
WktvQfZBYi6o4sHCshnOswi4yV1p+LuFcQ2ciYdWvULh1eZhLxHbGXyznYHi0dGN
z+I9H8aXxqAQfHVhbdHNzi77hCxFjOy+hHrGsyzjrd2swVQ2iUWP8BfEQqGLqM1g
KgWKYfcTGdbPB1MCAwEAAaNjMGEwHQYDVR0OBBYEFG/oAMxTVe7y0+408CTAK8hA
uTyRMB8GA1UdIwQYMBaAFG/oAMxTVe7y0+408CTAK8hAuTyRMA8GA1UdEwEB/wQF
MAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBLnUTfW7hp
emMbuUGCk7RBswzOT83bDM6824EkUnf+X0iKS95SUNGeeSWK2o/3ALJo5hi7GZr3
U8eLaWAcYizfO99UXMRBPw5PRR+gXGEronGUugLpxsjuynoLQu8GQAeysSXKbN1I
UugDo9u8igJORYA+5ms0s5sCUySqbQ2R5z/GoceyI9LdxIVa1RjVX8pYOj8JFwtn
DJN3ftSFvNMYwRuILKuqUYSHc2GPYiHVflDh5nDymCMOQFcFG3WsEuB+EYQPFgIU
1DHmdZcz7Llx8UOZXX2JupWCYzK1XhJb+r4hK5ncf/w8qGtYlmyJpxk3hr1TfUJX
Yf4Zr0fJsGuv
-----END CERTIFICATE-----

View File

@@ -0,0 +1,23 @@
-----BEGIN CERTIFICATE-----
MIIEpTCCA42gAwIBAgIQICIQEWAdG+OScLQ9BUkWbDANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE
BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0
aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs
YXNzIDEgUjEwHhcNMjIxMDExMTIxNDA1WhcNMjcxMDEwMTIxNDA1WjBtMQswCQYDVQQGEwJDTjEh
MB8GA1UECgwY6JeP566x5r+A5rWL6K+V55qE5YWs5Y+4MQ8wDQYDVQQLDAZBbGlwYXkxKjAoBgNV
BAMMITIwODg0NDExNjgzNDY3NjItMjAyMTAwMzE1NjY3NTAzMDCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAItp7Yix0yeK9rnPlYHEqlOji4NDloVxQYmr4lo7YRhYWNPQG7Otk/mW0FRL
JNsBRUbnz0Od5rewf5mcv7wj7EcpEVXfqkjpEsLJqaadPJa7PpllvTd3xM0tl50oh5D2Wq1Q3Tpl
RHPEM/EUriynXgSP0OtS8tzJAp/L59c32tOyZUihEvCAfkEScsB6lANjN08tOTd0iOXzSB8JyNoH
Z/GdS8VyVqSSFGJZHXvojXv2GE1IqxUD8no6izWZ3d3DqjG3lzNL/+KPDge8P0ssrxWYJAVY1a5o
QjT22M0Y17TbzTwH5rfQPgU4bobETgYljgpREVKjqi+wtMkRwomtm4ECAwEAAaOCASkwggElMB8G
A1UdIwQYMBaAFHEH4gRhFuTl8mXrMQ/J4PQ8mtWRMB0GA1UdDgQWBBTkqiqTHPMKbvIXX4hsLP2S
RI1j8DBABgNVHSAEOTA3MDUGB2CBHAFuAQEwKjAoBggrBgEFBQcCARYcaHR0cDovL2NhLmFsaXBh
eS5jb20vY3BzLnBkZjAOBgNVHQ8BAf8EBAMCBsAwLwYDVR0fBCgwJjAkoCKgIIYeaHR0cDovL2Nh
LmFsaXBheS5jb20vY3JsNzAuY3JsMGAGCCsGAQUFBwEBBFQwUjAoBggrBgEFBQcwAoYcaHR0cDov
L2NhLmFsaXBheS5jb20vY2E2LmNlcjAmBggrBgEFBQcwAYYaaHR0cDovL2NhLmFsaXBheS5jb206
ODM0MC8wDQYJKoZIhvcNAQELBQADggEBADtR7z4zZHp6CyjeADLFMIQdDqAmrywy0kJBOs+r6TYu
hkLXShA3lvCLOFnBg+ARXFo4dCbXP5xQ1Cnewmx5JMhDzjfzvea9Qj2ju8lr27RTiyKAYzT0HoNR
q6h/qT4MUu+DZINfkQUEDTR4S6xTOWGllx1K9MY6ppynAc8l2q5SCALbqCAmTxhfknVeX7GKzy9g
TD/JgtCCpvX6947c8l8yumCkilCGJeSJQkLMJEIvqRKdSOwqAbk0qJ4pxXTZdrUzF3r+glx4GGUA
Ph077lPea17aoP4GH2MDOcYpQfIWfBGxgHzTWIe+q6oS6ANPI8vNglnZogk+fM7Af/b+9Y8=
-----END CERTIFICATE-----

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB