zengram / pay-selection
Requires
- php: ^7.4 || ^8.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: *
- guzzlehttp/psr7: ^1.7 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.5
- phpunit/phpunit: ^8.0 || ^9.0
This package is not auto-updated.
Last update: 2024-10-01 17:32:13 UTC
README
PaySelection API specification # Request signature Все виды сообщений содержат параметр X-REQUEST-SIGNATURE в HTTP-заголовке, который содержит тестовое значение запроса, вычисленное с использованием алгоритма HMAC. При реализации проверки сообщений, обратите внимание, на следующие моменты: Сообщение содержит: 1 Reguest method 2 URL 3 X-SITE-ID 4 X-REQUEST-ID 5 Request body Пример: POST /payments/requests/single 16 1qazxsw23edc {\"Amount\": \"123\", \"Currency\": \"RUB\", \"ExtraData\": {\"custom\": \"field\", \"key\": \"value\"}, \"CustomerInfo\": {\"Address\": \"string\", \"Country\": \"string\", \"Email\": \"string\", \"Language\": \"string\", \"Phone\": \"string\", \"Town\": \"string\", \"ZIP\": \"string\"}, \"Description\": \"string\", \"OrderId\": \"string\", \"PaymentMethod\": \"card\", \"PaymentDetails\": {\"CardholderName\": \"string\", \"CardNumber\": \"4111111111111111\", \"CVC\": \"987\", \"ExpMonth\": \"12\", \"ExpYear\": \"22\"}, \"RebillFlag\": true} В качестве ключа используется значение параметра, например: \"sk16\" Хэш вычисляется функцией SHA256 (получаем данные в шестнадцатеричной (!) кодировке в нижнем регистре: \"5145fec78e5db15c51a83e520b61609e8bd934c912614be71ae3840a60e3b013\" Сайт для онлайн формирования подписи: http://beautifytools.com/hmac-generator.php Пример формирования X-REQUEST-SIGNATURE (Python): import hashlib import hmac def calc_signature(body: str, site_secret_value: str) -> str: signatire = hmac.new( key=site_secret_value.encode(), msg=body.encode(), digestmod=hashlib.sha256, ) return signature.hexdigest() Пример формирования Signature (PHP): function getSignature($body, $secretKey) { $hash = hash_hmac('sha256', $body, $secretKey, false); return $hash; } # Webhook signature X-WEBHOOK-SIGNATURE вычисляется по тем же правилам, что и Request signature, за исключением X-REQUEST-ID. Сообщение содержит: 1 Reguest method 2 URL (Notification URL to which WEBHOOK is sent) 3 X-SITE-ID 4 Request body Пример: POST https://webhook.site/notification/ 16 {\"Event\": \"Payment\", \"TransactionId\": \"PS00000000000007\", \"OrderId\": \"Ilya test\", \"Amount\": \"152.12\", \"Currency\": \"RUB\", \"DateTime\": \"16.09.2019 16.52.41\", \"IsTest\": 1, \"Email\": \"test@payselection.com\", \"Phone\": \"+1234567567890\", \"Description\": \"Test transaction\", \"CardMasked\": \"411111**1111\", \"CardHolder\": \"test card\", \"RebillId\": \"PS00000000000007\", \"ExpirationDate\": \"01/20\"} В качестве ключа используется значение параметра, например: \"sk16\" Хэш вычисляется функцией SHA256 (получаем данные в шестнадцатеричной (!) кодировке в нижнем регистре): \"a9cf187993620b64dd0551b1cae88119dd5bddf92ab18d830e5fce1c703cebcd\" # Webhook для проверки После ввода клиентом карточных данных вы можете получить webhook с данными из запроса для сопоставления их с заказом. Для настройки обратитесь в тех.поддержку: необходимо сообщить url приемника и какие параметры из запроса требуется передать для проверки. Ваш сервис приема должен отдавать 200 статус, если оплату можно продолжать, или любой из 4хх и 5хх статусов для прерывания оплаты. Webhook можно настроить в личном кабинете→ Сервис→ действие(редактировать) → URL оповещения → сохранить. Изменения вступят в силу в течении 15 мин. # Тестирование Тестовые карты: 5375437783733009 3DS SUССESS PAYMENT, SUССESS PAYOUT, SUCCESS REBILL 2175005001632383 3DS FAIL PAYMENT, FAIL PAYOUT 4113418297706145 non3DS SUССESS PAYMENT, SUCCESS PAYOUT, FAIL REBILL 4635224506614503 non3DS FAIL PAYMENT, FAIL PAYOUT 5260111696757102 3DS Redirect SUССESS PAYMENT, SUССESS PAYOUT, SUCCESS REBILL 2408684917843810 3DS Redirect FAIL PAYMENT, FAIL PAYOUT # Widget Для подключения виджета необходимо прописать на сайте скрипт в раздел head: `javascript Для появления платежной формы необходимо зарегистрировать функцию для вызова метода pay: javascript И прописать вызов функции на событие, например, нажатие кнопки «Оплатить»: javascript $('#checkout').click(pay); **Варианты настройки Return Urls для Виджета:** 1) Производится возврат на returnUrl из extraData или сервиса (но если returnUrl там не указаны, то виджет при инициации закрытия будет просто закрываться) javascript window.location.href = res.returnUrl; 2) Производится возврат на returnUrl из extraData или сервиса (но если returnUrl там не указаны, то виджет при инициации закрытия будет просто закрываться)javascript if (res.returnUrl) window.location.href = res.returnUrl; 3) Производится возврат на returnUrl из extraData или сервиса (но если returnUrl там не указаны, то виджет будет перенаправлять по указанному в скрипте returnUrl)javascript window.location.href = res.returnUrl || \"https://payselection.com/\" # Cryptogram Криптограмма — это идентификатор, представляющий собой случайную последовательность, ассоциированную с определённой платёжной картой. Формирование криптограмм выполняется на основании данных платёжных карт пользователей. Сформированная криптограмма используется в методах [Pay](#operation/Pay) и [Block](#operation/Block) Скрипт для криптографирования карточных данных представлен ниже, где rawPubKey - public key из личного кабинета мерчанта: javascript var eccrypto = require(\"eccrypto\"); var rawPubKey = '0405397f7577bd835210a57708aafe876786dc8e2d12e6880917d61a4ad1d03a75068ea6bc26554c7a1bf5b50ed40105837eee001178579279eca57f89bdff5fc2' var pubkey = Buffer.from(rawPubKey, 'hex'); eccrypto.encrypt(pubkey, Buffer(JSON.stringify({ \"TransactionDetails\": { \"Amount\": 100, \"Currency\": \"RUB\" }, \"PaymentMethod\": \"Card\", \"PaymentDetails\": { \"CardholderName\":\"TEST CARD\", \"CardNumber\":\"4111111111111111\", \"CVC\":\"123\", \"ExpMonth\":\"12\", \"ExpYear\":\"24\" }, \"MessageExpiration\": Date.now()+86400000, //24 hours }))) .then((encrypted) => { var sendData = { \"signedMessage\": JSON.stringify( { \"encryptedMessage\": encrypted.ciphertext.toString(\"base64\"), \"ephemeralPublicKey\": encrypted.ephemPublicKey.toString(\"base64\") } ), \"iv\": encrypted.iv.toString(\"base64\"), \"tag\": encrypted.mac.toString(\"base64\") }; var finalString = window.btoa(JSON.stringify(sendData)); console.log(finalString) } ) ` # Аутентификация покупателя Если требуется 3-D Secure аутентификация (получен статус wait_for_3ds), в ответе на запрос статуса добавляется объект StateDetails с полями: AcsUrl — URL сервера аутентификации 3-D Secure, для перенаправления на страницу подтверждения от эмитента; PaReq — зашифрованный запрос на аутентификацию 3-D Secure; MD - уникальный идентификатор транзакции. Для дополнительной проверки у эмитента выполните POST-запрос на URL сервера аутентификации 3-D Secure с параметрами: TermUrl — URL перенаправления покупателя после успешной аутентификации 3-D Secure; MD — уникальный идентификатор транзакции; PaReq — значение параметра pareq из ответа на платежный запрос. Далее информация о покупателе передаётся в платежную систему карты. Банк-эмитент либо предоставляет разрешение на списание средств без аутентификации (frictionless flow), либо принимает решение о необходимости аутентификации с помощью одноразового пароля (challenge flow). После прохождения проверки покупатель перенаправляется по адресу TermUrl с зашифрованным результатом проверки в параметре PaRes. При использовании карт, поддерживающих протокол 3-D Secure 2.0, механизм аутентификации остается тот же, за исключением необходимости выполнения метода Confirm в случае frictionless flow. Метод Confirm следует выполнять только при получении PaRes на TermUrl, также рекомендуется запросить статус транзакции, чтобы определить необходимость выполнения Confirm.
此PHP包由Swagger Codegen项目自动生成
- API版本: v3-oas3
- 构建包: io.swagger.codegen.v3.generators.php.PhpClientCodegen
要求
PHP 5.5及以后版本
安装与使用
Composer
要通过Composer安装绑定,请在composer.json中添加以下内容
{
"repositories": [
{
"type": "git",
"url": "https://github.com/git_user_id/git_repo_id.git"
}
],
"require": {
"git_user_id/git_repo_id": "*@dev"
}
}
然后运行composer install
手动安装
下载文件并包含autoload.php
require_once('/path/to/SwaggerClient-php/vendor/autoload.php');
测试
要运行单元测试
composer install
./vendor/bin/phpunit
入门指南
请遵循安装程序,然后运行以下命令
<?php
require_once(__DIR__ . '/vendor/autoload.php');
$apiInstance = new Swagger\Client\Api\OperationsApi(
// 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 GuzzleHttp\Client()
);
$x_site_id = "x_site_id_example"; // string | Идентификатор ТСП
$x_request_id = "x_request_id_example"; // string | Уникальный идентификатор запроса ТСП.
$x_request_signature = "x_request_signature_example"; // string | Request signature. [description](#section/Request-signature)
try {
$result = $apiInstance->balance($x_site_id, $x_request_id, $x_request_signature);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling OperationsApi->balance: ', $e->getMessage(), PHP_EOL;
}
$apiInstance = new Swagger\Client\Api\OperationsApi(
// 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 GuzzleHttp\Client()
);
$body = new \Swagger\Client\Model\NewPaymentRequest(); // \Swagger\Client\Model\NewPaymentRequest |
$x_site_id = "x_site_id_example"; // string | Идентификатор ТСП
$x_request_id = "x_request_id_example"; // string | Уникальный идентификатор запроса ТСП.
$x_request_signature = "x_request_signature_example"; // string | Request signature. [description](#section/Request-signature)
try {
$result = $apiInstance->block($body, $x_site_id, $x_request_id, $x_request_signature);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling OperationsApi->block: ', $e->getMessage(), PHP_EOL;
}
$apiInstance = new Swagger\Client\Api\OperationsApi(
// 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 GuzzleHttp\Client()
);
$body = new \Swagger\Client\Model\PaymentCancelRequest(); // \Swagger\Client\Model\PaymentCancelRequest |
$x_site_id = "x_site_id_example"; // string | Идентификатор ТСП
$x_request_id = "x_request_id_example"; // string | Уникальный идентификатор запроса ТСП.
$x_request_signature = "x_request_signature_example"; // string | Request signature. [description](#section/Request-signature)
try {
$result = $apiInstance->cancel($body, $x_site_id, $x_request_id, $x_request_signature);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling OperationsApi->cancel: ', $e->getMessage(), PHP_EOL;
}
$apiInstance = new Swagger\Client\Api\OperationsApi(
// 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 GuzzleHttp\Client()
);
$body = new \Swagger\Client\Model\PaymentChargeRequest(); // \Swagger\Client\Model\PaymentChargeRequest |
$x_site_id = "x_site_id_example"; // string | Идентификатор ТСП
$x_request_id = "x_request_id_example"; // string | Уникальный идентификатор запроса ТСП.
$x_request_signature = "x_request_signature_example"; // string | Request signature. [description](#section/Request-signature)
try {
$result = $apiInstance->charge($body, $x_site_id, $x_request_id, $x_request_signature);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling OperationsApi->charge: ', $e->getMessage(), PHP_EOL;
}
$apiInstance = new Swagger\Client\Api\OperationsApi(
// 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 GuzzleHttp\Client()
);
$body = new \Swagger\Client\Model\ConfirmationRequest(); // \Swagger\Client\Model\ConfirmationRequest |
$x_site_id = "x_site_id_example"; // string | Идентификатор ТСП
$x_request_id = "x_request_id_example"; // string | Уникальный идентификатор запроса ТСП.
$x_request_signature = "x_request_signature_example"; // string | Request signature. [description](#section/Request-signature)
try {
$result = $apiInstance->onfirm($body, $x_site_id, $x_request_id, $x_request_signature);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling OperationsApi->onfirm: ', $e->getMessage(), PHP_EOL;
}
$apiInstance = new Swagger\Client\Api\OperationsApi(
// 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 GuzzleHttp\Client()
);
$order_id = "order_id_example"; // string |
$x_site_id = "x_site_id_example"; // string | Идентификатор ТСП
$x_request_id = "x_request_id_example"; // string | Уникальный идентификатор запроса ТСП.
$x_request_signature = "x_request_signature_example"; // string | Request signature. [description](#section/Request-signature)
try {
$result = $apiInstance->ordersOrderId($order_id, $x_site_id, $x_request_id, $x_request_signature);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling OperationsApi->ordersOrderId: ', $e->getMessage(), PHP_EOL;
}
$apiInstance = new Swagger\Client\Api\OperationsApi(
// 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 GuzzleHttp\Client()
);
$body = new \Swagger\Client\Model\NewPaymentRequest(); // \Swagger\Client\Model\NewPaymentRequest |
$x_site_id = "x_site_id_example"; // string | Идентификатор ТСП
$x_request_id = "x_request_id_example"; // string | Уникальный идентификатор запроса ТСП.
$x_request_signature = "x_request_signature_example"; // string | Request signature. [description](#section/Request-signature)
try {
$result = $apiInstance->pay($body, $x_site_id, $x_request_id, $x_request_signature);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling OperationsApi->pay: ', $e->getMessage(), PHP_EOL;
}
$apiInstance = new Swagger\Client\Api\OperationsApi(
// 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 GuzzleHttp\Client()
);
$body = new \Swagger\Client\Model\NewPayoutRequest(); // \Swagger\Client\Model\NewPayoutRequest |
$x_site_id = "x_site_id_example"; // string | Идентификатор ТСП
$x_request_id = "x_request_id_example"; // string | Уникальный идентификатор запроса ТСП.
$x_request_signature = "x_request_signature_example"; // string | Request signature. [description](#section/Request-signature)
try {
$result = $apiInstance->payout($body, $x_site_id, $x_request_id, $x_request_signature);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling OperationsApi->payout: ', $e->getMessage(), PHP_EOL;
}
$apiInstance = new Swagger\Client\Api\OperationsApi(
// 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 GuzzleHttp\Client()
);
$body = new \Swagger\Client\Model\NewPaymentRequest(); // \Swagger\Client\Model\NewPaymentRequest |
$x_site_id = "x_site_id_example"; // string | Идентификатор ТСП
$x_request_id = "x_request_id_example"; // string | Уникальный идентификатор запроса ТСП.
try {
$result = $apiInstance->publicPay($body, $x_site_id, $x_request_id);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling OperationsApi->publicPay: ', $e->getMessage(), PHP_EOL;
}
$apiInstance = new Swagger\Client\Api\OperationsApi(
// 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 GuzzleHttp\Client()
);
$body = new \Swagger\Client\Model\RebillRequest(); // \Swagger\Client\Model\RebillRequest |
$x_site_id = "x_site_id_example"; // string | Идентификатор ТСП
$x_request_id = "x_request_id_example"; // string | Уникальный идентификатор запроса ТСП.
$x_request_signature = "x_request_signature_example"; // string | Request signature. [description](#section/Request-signature)
try {
$result = $apiInstance->rebill($body, $x_site_id, $x_request_id, $x_request_signature);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling OperationsApi->rebill: ', $e->getMessage(), PHP_EOL;
}
$apiInstance = new Swagger\Client\Api\OperationsApi(
// 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 GuzzleHttp\Client()
);
$body = new \Swagger\Client\Model\NewRecurringRequest(); // \Swagger\Client\Model\NewRecurringRequest |
$x_site_id = "x_site_id_example"; // string | Идентификатор ТСП
$x_request_id = "x_request_id_example"; // string | Уникальный идентификатор запроса ТСП.
$x_request_signature = "x_request_signature_example"; // string | Request signature. [description](#section/Request-signature)
try {
$result = $apiInstance->recurring($body, $x_site_id, $x_request_id, $x_request_signature);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling OperationsApi->recurring: ', $e->getMessage(), PHP_EOL;
}
$apiInstance = new Swagger\Client\Api\OperationsApi(
// 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 GuzzleHttp\Client()
);
$body = new \Swagger\Client\Model\NewRecurringChangeRequest(); // \Swagger\Client\Model\NewRecurringChangeRequest |
$x_site_id = "x_site_id_example"; // string | Идентификатор ТСП
$x_request_id = "x_request_id_example"; // string | Уникальный идентификатор запроса ТСП.
$x_request_signature = "x_request_signature_example"; // string | Request signature. [description](#section/Request-signature)
try {
$result = $apiInstance->recurringChange($body, $x_site_id, $x_request_id, $x_request_signature);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling OperationsApi->recurringChange: ', $e->getMessage(), PHP_EOL;
}
$apiInstance = new Swagger\Client\Api\OperationsApi(
// 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 GuzzleHttp\Client()
);
$body = new \Swagger\Client\Model\RecurringSearchBody(); // \Swagger\Client\Model\RecurringSearchBody |
$x_site_id = "x_site_id_example"; // string | Идентификатор ТСП
$x_request_id = "x_request_id_example"; // string | Уникальный идентификатор запроса ТСП.
$x_request_signature = "x_request_signature_example"; // string | Request signature. [description](#section/Request-signature)
try {
$result = $apiInstance->recurringSearch($body, $x_site_id, $x_request_id, $x_request_signature);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling OperationsApi->recurringSearch: ', $e->getMessage(), PHP_EOL;
}
$apiInstance = new Swagger\Client\Api\OperationsApi(
// 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 GuzzleHttp\Client()
);
$body = new \Swagger\Client\Model\NewRecurringUnsubscribeRequest(); // \Swagger\Client\Model\NewRecurringUnsubscribeRequest |
$x_site_id = "x_site_id_example"; // string | Идентификатор ТСП
$x_request_id = "x_request_id_example"; // string | Уникальный идентификатор запроса ТСП.
$x_request_signature = "x_request_signature_example"; // string | Request signature. [description](#section/Request-signature)
try {
$result = $apiInstance->recurringUnsubscribe($body, $x_site_id, $x_request_id, $x_request_signature);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling OperationsApi->recurringUnsubscribe: ', $e->getMessage(), PHP_EOL;
}
$apiInstance = new Swagger\Client\Api\OperationsApi(
// 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 GuzzleHttp\Client()
);
$body = new \Swagger\Client\Model\RefundRequest(); // \Swagger\Client\Model\RefundRequest |
$x_site_id = "x_site_id_example"; // string | Идентификатор ТСП
$x_request_id = "x_request_id_example"; // string | Уникальный идентификатор запроса ТСП.
$x_request_signature = "x_request_signature_example"; // string | Request signature. [description](#section/Request-signature)
try {
$result = $apiInstance->refund($body, $x_site_id, $x_request_id, $x_request_signature);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling OperationsApi->refund: ', $e->getMessage(), PHP_EOL;
}
$apiInstance = new Swagger\Client\Api\OperationsApi(
// 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 GuzzleHttp\Client()
);
$transaction_id = "transaction_id_example"; // string |
$x_site_id = "x_site_id_example"; // string | Идентификатор ТСП
$x_request_id = "x_request_id_example"; // string | Уникальный идентификатор запроса ТСП.
$x_request_signature = "x_request_signature_example"; // string | Сигнатура запроса [description](#section/Request-signature) (при типе авторизации public вместо секретного ключа сервиса используется секретный ключ транзакции)
$x_request_auth = "x_request_auth_example"; // string | Тип авторизации
try {
$result = $apiInstance->transactionstransactionId($transaction_id, $x_site_id, $x_request_id, $x_request_signature, $x_request_auth);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling OperationsApi->transactionstransactionId: ', $e->getMessage(), PHP_EOL;
}
$apiInstance = new Swagger\Client\Api\OperationsApi(
// 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 GuzzleHttp\Client()
);
$body = new \Swagger\Client\Model\UnsubscribeRequest(); // \Swagger\Client\Model\UnsubscribeRequest |
$x_site_id = "x_site_id_example"; // string | Идентификатор ТСП
$x_request_id = "x_request_id_example"; // string | Уникальный идентификатор запроса ТСП.
$x_request_signature = "x_request_signature_example"; // string | Request signature. [description](#section/Request-signature)
try {
$result = $apiInstance->unsubscribe($body, $x_site_id, $x_request_id, $x_request_signature);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling OperationsApi->unsubscribe: ', $e->getMessage(), PHP_EOL;
}
?>
API端点文档
所有URI均相对于https://gw.payselection.com/
| 类 | 方法 | HTTP请求 | 描述 |
|---|---|---|---|
| OperationsApi | balance | GET /balance | |
| OperationsApi | block | POST /payments/requests/block | |
| OperationsApi | cancel | POST /payments/cancellation | |
| OperationsApi | charge | POST /payments/charge | |
| OperationsApi | onfirm | POST /payments/confirmation | |
| OperationsApi | ordersOrderId | GET /orders/{OrderId} | |
| OperationsApi | pay | POST /payments/requests/single | |
| OperationsApi | payout | POST /payouts | |
| OperationsApi | publicPay | POST /payments/requests/public | |
| OperationsApi | rebill | POST /payments/requests/rebill | |
| OperationsApi | recurring | POST /payments/recurring | |
| OperationsApi | recurringChange | POST /payments/recurring/change | |
| OperationsApi | recurringSearch | POST /payments/recurring/search | |
| OperationsApi | recurringUnsubscribe | POST /payments/recurring/unsubscribe | |
| OperationsApi | refund | POST /payments/refund | |
| OperationsApi | transactionstransactionId | GET /transactions/{transactionId} | |
| OperationsApi | unsubscribe | POST /payments/unsubscribe | |
| WebhooksApi | webhooks | POST /webhooks | |
| Webhooks_Api | webhooksRecurring | POST /webhooks_recurring | |
| WebpayApi | create | POST /webpayments/create |
模型文档
- AccountId
- AcsUrl
- AddDetails
- AddDetailsRecurring
- AdditionalCheckProps
- AdditionalUserProps
- Address
- Amount
- AnyValue
- Balance
- BalanceResponse
- Bank
- BlockWebhook
- Brand
- CVC
- CancelResponse
- CancelWebhook
- Card
- CardDetails
- CardHolder
- CardMasked
- CardNumber
- Cashier
- ChangeRecurringByMerchantWebhook
- ChangeRecurringStateWebhook
- ChargeResponse
- Client
- CoinNameNumber
- ConfirmationRequest
- Country
- CountryCodeAlpha2
- Currency
- CustomFields
- CustomerInfo
- CustomerInfoPayout
- DateTime
- DeclineUrl
- 描述
- DoublePaymentResponse
- DoublePaymentResponseAddDetails
- DoubleWebPaymentResponse
- DoubleWebPaymentResponseAddDetails
- ErrorBalanceResponse
- ErrorCode
- ErrorDescription
- ErrorMessage
- ErrorResponse
- ErrorTransactionIdResponse
- Event
- ExpMonth
- ExpYear
- ExpirationDate
- Extra
- ExtraData
- ExtraDetails
- ExtraDetailsCreate
- ExtraDetailsPayout
- FailWebhook
- FalseCancelResponse
- FalseChargeResponse
- FalsePaymentResponse
- FalsePayoutResponse
- FalseRebillResponse
- 错误的周期性响应
- 错误的退款响应
- 错误的令牌响应
- 错误的取消订阅响应
- 联邦ID
- Ffd105
- Ffd105代理信息
- Ffd105代理信息1
- Ffd105代理信息货币转账操作员
- Ffd105代理信息支付代理
- Ffd105代理信息收取支付操作员
- Ffd105公司
- Ffd105项目
- Ffd105供应商信息
- Ffd105供应商信息1
- Ffd105增值税
- Ffd105增值税
- Ffd12
- Ffd12公司
- Ffd12项目
- Ffd12标记代码
- Ffd12标记数量
- Ffd12操作检查属性
- Ffd12行业项目属性
- Ffd12供应商信息
- Ffd12增值税
- 通用响应
- IP
- IPv4
- IPv6
- InlineResponse201
- 间隔
- 间隔更改
- 是否测试
- 语言
- MD
- 最大周期数
- Model3DSTransactionIdResponse
- Model3DSTransactionIdResponseStateDetails
- Model3DSWebhook
- 新余额响应
- 新取消响应
- 新收费响应
- 新表单请求
- 新表单成功响应
- 新支付请求
- 新支付响应
- 新付款请求
- 新付款响应
- 新公共支付响应
- 新重新收费响应
- 新周期性更改请求
- 新周期性更改响应
- 新周期性请求
- 新周期性响应
- 新周期性搜索账户请求
- 新周期性搜索重新收费请求
- 新周期性搜索周期性请求
- 新周期性搜索响应
- 新周期性取消订阅请求
- 新周期性取消订阅响应
- 新退款响应
- 新响应
- 新令牌响应
- 新交易ID响应
- 新交易ID响应状态详情
- 新取消订阅响应
- 新Webpay请求
- 新Webpay响应
- 命名法代码
- 数字价格
- 三位数格式
- OneOfFalsePaymentResponseAddDetails
- OneOfFalseRecurringResponseAddDetails
- OneOfReceiptDataReceipt
- 订单
- 订单ID
- 订单ID响应
- PaReq
- PaRes
- 支付令牌
- 支付取消请求
- 支付收费请求
- 支付方式
- 支付令牌
- 支付令牌支付详情
- 支付类型
- 支付
- 支付内部
- 支付总和格式
- 支付Webhook
- 支付卡
- 支付卡支付详情
- 支付确认响应
- 支付响应
- 支付令牌
- 支付令牌支付详情
- 支付Webhook
- 挂起的交易ID响应
- 周期
- 周期更改
- 电话
- 电话号码
- 预授权交易ID响应
- 处理金额
- 处理货币
- Qiwi
- Qiwi号码
- Qiwi支付详情
- RRN
- 重新收费标志
- 重新收费ID
- 重新收费请求
- 重新收费响应
- 收据数据
- 收据电子邮件
- 接收者号码
- 定期
- 周期性金额
- 周期性数据
- 周期性ID
- 周期性下次支付
- 周期性已支付次数
- 周期性搜索正文
- 周期性状态
- Redirect3DSWebhook
- 重定向方法
- 重定向参数
- 重定向交易ID
- 重定向交易ID响应
- 重定向交易ID响应状态详情
- 重定向URL
- 退款请求
- 退款响应
- 退款Webhook
- 注册周期性Webhook
- 剩余金额
- 返回URL
- 行业日期
- 行业编号
- 行业值
- 服务ID
- 开始日期
- 开始日期更改
- 状态
- 成功交易ID响应
- 成功URL
- 两个数字的总和格式
- 令牌
- 令牌响应
- 总格式
- 城镇
- 交易
- 交易ID
- 交易ID响应
- 交易状态
- 交易状态详情
- 交易状态
- 类型
- 类型格式
- 取消订阅周期性Webhook
- 取消订阅请求
- 取消订阅响应
- 增值税总和格式
- 增值税总和格式
- 作废交易ID响应
- Webhook
- Webhook周期性
- Webhook URL
- Webpay客户信息
- Webpay元数据
- Webpay新支付请求
- Webpay支付请求
- Webpay支付类型
- Webpay预览表单
- Webpay类型链接
- ZIP
授权文档
所有端点均不需要授权。
作者
support@payselection.com