All Projects → morpher-ru → Yandex.Checkout.V3

morpher-ru / Yandex.Checkout.V3

Licence: MIT license
.NET-клиент для Яндекс.Кассы

Programming Languages

C#
18002 projects
HTML
75241 projects

Projects that are alternatives of or similar to Yandex.Checkout.V3

yandex-checkout-node
Node.js SDK for Yandex.Checkout (unofficial)
Stars: ✭ 64 (+113.33%)
Mutual labels:  payments, yandex-kassa, yandex-checkout
gringotts payment
Demo Phoenix app showing gringotts payment library integrations.
Stars: ✭ 24 (-20%)
Mutual labels:  payments
pos-android-sdk
A selection of APIs and associated samples that enables developers to build applications for different stages of the point of sale journey
Stars: ✭ 18 (-40%)
Mutual labels:  payments
laravel-sibs-payments
Laravel library to communicate with SIBS - Open Payment Platform. The library includes payments: MBWAY, VISA, MASTER, AMEX, VPAY, MAESTRO, VISADEBIT, VISAELECTRON.
Stars: ✭ 30 (+0%)
Mutual labels:  payments
yookassa-sdk-python
Python SDK for YooKassa Payments API
Stars: ✭ 31 (+3.33%)
Mutual labels:  payments
sdk-android
Add card payments from Zettle to your own app
Stars: ✭ 18 (-40%)
Mutual labels:  payments
ShareLoginPay
ThirdParty login,share and pay lib
Stars: ✭ 16 (-46.67%)
Mutual labels:  payments
hub20
Self-hosted payment gateway for Ethereum and any ERC20 token, integrates with Raiden for almost-zero fees.
Stars: ✭ 59 (+96.67%)
Mutual labels:  payments
python-tbk
Unofficial TBK Web Services Python SDK
Stars: ✭ 42 (+40%)
Mutual labels:  payments
africastalking.Net
Africa's Talking API Wrapper for C#
Stars: ✭ 16 (-46.67%)
Mutual labels:  payments
terms-dictionary
Simple definitions of terms, acronyms, abbreviations, companies, and projects related to financial services and Moov.
Stars: ✭ 48 (+60%)
Mutual labels:  payments
Far-From-Home
A cross-platform mobile developed using Flutter and Firestore for House Rental Application with integrated payment module
Stars: ✭ 27 (-10%)
Mutual labels:  payments
OneAgent-SDK-for-dotnet
Enables custom tracing of .NET applications in Dynatrace
Stars: ✭ 14 (-53.33%)
Mutual labels:  sdk-dotnet
afterpay
PHP Afterpay Integration exposing the Merchant and InStore APIs - Unsupported since April 2021
Stars: ✭ 12 (-60%)
Mutual labels:  payments
pinax-stripe-light
a payments Django app for Stripe
Stars: ✭ 670 (+2133.33%)
Mutual labels:  payments
awesome-bitcoin-cash
Bitcoin Cash projects & resources
Stars: ✭ 28 (-6.67%)
Mutual labels:  payments
omise-ruby
Omise Ruby Library
Stars: ✭ 38 (+26.67%)
Mutual labels:  payments
subscribie
Collect recurring payments online - subscription payments collection automation
Stars: ✭ 36 (+20%)
Mutual labels:  payments
recurly-integration-examples
Examples to get you integrated with Recurly in any language.
Stars: ✭ 64 (+113.33%)
Mutual labels:  payments
woocommerce-plugin
Accept bitcoins on your wordpress site, payments go directly into your wallet
Stars: ✭ 22 (-26.67%)
Mutual labels:  payments

Build status | Nuget Package

.NET-клиент для Яндекс.Кассы

Swith to English

Клиент разработан на основе документации по API.

Клиент поддерживает классическую синхронную модель вызовов (класс Client) и async / await (класс AsyncClient).

Покрытие API почти полное и включает в себя создание платежа, подтверждение, возврат или отмену платежа, авиабилеты и чеки по ФЗ-54.

Начало использования

Для проведения платежей сайт вашего магазина должен быть доступен для получения уведомлений от Яндекс.Кассы. URL для уведомлений нужно указать в настройках магазина.

Все вызовы API проводятся через класс Client. Для его создания нужны номер магазина и секретный ключ:

    var client = new Yandex.Checkout.V3.Client(
        shopId: "12345", 
        secretKey: "ASDLsdFgsJnbKeJnOuQImWuJEuRPyIrOEwsRK");

Чтобы использовать async/await, создайте AsyncClient:

    AsyncClient asyncClient = client.MakeAsync();

AsyncClient содержит те же методы, что и Client, только с суффиксом "Async". Дальше пример для Client.

Для проведения платежа по инструкции Быстрый старт (шаги 1-3):

    // 1. Создайте платеж и получите ссылку для оплаты
    var newPayment = new NewPayment
    {
        Amount = new Amount { Value = 100.00m, Currency = "RUB" },
        Confirmation = new Confirmation { 
            Type = ConfirmationType.Redirect,
            ReturnUrl = "http://myshop.ru/thankyou"
        }
    };
    Payment payment = client.CreatePayment(newPayment);
    
    // 2. Перенаправьте пользователя на страницу оплаты
    string url = payment.Confirmation.ConfirmationUrl;
    Response.Redirect(url);

    // 3. Дождитесь получения уведомления
    Message message = Client.ParseMessage(Request.HttpMethod, Request.ContentType, Request.InputStream);
    Payment payment = message?.Object;
    
    if (message?.Event == Event.PaymentWaitingForCapture && payment.Paid)
    {
        // 4. Подтвердите готовность принять платеж
        _client.CapturePayment(payment.Id);
    }

Полный код в примере на ASP.NET.

Минимальные требования

Nuget-пакет содержит версии для трех платформ:

  • .NET 4.0: нет поддержки async / await, не содержит класса AsyncClient.
  • .NET 4.5
  • .NET Standard 2.0: этот вариант подойдет для большинства современных проектов.

Нужный вариант библиотеки выбирается автоматически при установке пакета. Инструкции по установке на странице nuget.org.

Политика версионирования

Версия пакета задается тегом <Version> в Yandex.Checkout.V3.csproj и следует правилам семантического версионирования.

Устранение проблем

"Authentication failed because the remote party has closed the transport stream."

Если вы получили эту ошибку при попытке создания платежа, возможно, вы используете протокол, не поддерживаемый Яндекс.Кассой. По состоянию на июль 2018 поддерживается TLS 1.2, что может измениться в будущем. Добавьте следующий код перед посылкой запроса:

    using System.Net;

    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

Или, если вы используете .NET 4.0 или ниже:

    ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;

Совместная работа над проектом

Если вы решили взять в работу одну из открытых задач, сообщите об этом в комментарии к задаче, чтобы предотвратить дублирование усилий.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].