Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            QIWI_API_Class                q_raw                = new QIWI_API_Class("f98sf8d7f6s9d8f7sd9f6s9df6");                                        // <сюда введите свой токен API>
            QiwiPaymentsDataClass         payments             = q_raw.PaymentHistory();                                                                  // Получить историю транзакций
            QiwiTotalPaymentsClass        total_payments       = q_raw.PaymentsTotal(DateTime.Now.AddDays(-90), DateTime.Now);                            // Получить оборотную суммарную статистику за интересующий период
            QiwiPaymentClass              transaction_info     = q_raw.TransactionIdInfo(12158385869, "OUT");                                             // Получить информацию о транзакции
            QiwiCurrentBalanceClass       cur_balance          = q_raw.CurrentBalance;                                                                    // Получить информацию о балансе кошелька
            QiwiCommissionByProviderClass CommissionByProvider = q_raw.CommissionByProvider("1963");                                                      // Получить тариф на перевод по коду провайдера
            QiwiResponseCalculationOnlineCommissionClass CalculationOnlineCommission = q_raw.CalculationOnlineCommission("1963", "4444555577773333", 10); // Рассчитать точную коммиссию по полным реквизитам
            ////////////////////////////////////////////////////////////////////
            QiwiTransactionsUniversalDetailsPaymentClass details_universal_transaction = new QiwiTransactionsUniversalDetailsPaymentClass();              // Этот набор реквизитов универсален. Подходит для перевода на QIWI, для пополнения баланса, для перевода на карту банка и другие переводы, которые требуют один реквизит [номер получателя]

            details_universal_transaction.comment    = "Отправка денег на QIWI";                                                                          // комментарий
            details_universal_transaction.sum.amount = 0.5;                                                                                               // сумма
            details_universal_transaction.fields     = new QiwiFieldsPaymentUniversalDirectClass()
            {
                account = "79672570993"
            };                                                                                                                 // такой формат подойдёт для пеервода на QIWI, на карту банка или для пополнения баланса телефона
            QiwiResultSendUniversalPaymentClass SendUniversalPayment = q_raw.SendPayment("99", details_universal_transaction); // отправить платёж. Получатель для пополнения баланса мобильного телефона без семёрки/восмёрки (формат: 9995554422). Для перевода на киви в с семёркой (формат: 79995554422). Либо номер карты и т.п.

            //
            details_universal_transaction            = new QiwiTransactionsUniversalDetailsPaymentClass();
            details_universal_transaction.comment    = "Отправка денег на карту сбербанка. "; // Код провайдера предварительно определил при помощи метода DetectCachCardProvider
            details_universal_transaction.sum.amount = 50;
            details_universal_transaction.fields     = new QiwiFieldsPaymentUniversalDirectClass()
            {
                account = "4444555577773333"
            };
            SendUniversalPayment = q_raw.SendPayment("1963", details_universal_transaction);
            //
            QiwiTransactionsPartnerBankDetailsPaymentClass details_bank_partner_transaction = new QiwiTransactionsPartnerBankDetailsPaymentClass(); // этот набор реквизитов используется для отправки денег в банк-партнёр. Либо по номеру счёта, либо по номеру карты, либо по номеру договора. Допустимые комбинации реквизитов необходимо уточнять

            details_bank_partner_transaction.comment             = "Вывод средств в банк-партнёр";
            details_bank_partner_transaction.sum.amount          = 50;
            details_bank_partner_transaction.fields.account      = "1111222233334444";
            details_bank_partner_transaction.fields.exp_date     = "0419";
            details_bank_partner_transaction.fields.account_type = "1";                                                                 // Тип банковского идентификатора. Примеры значений: для Тинькофф Банк - карта 1, договор 3. для Альфа-Банка - карта 1, счет 2. для Промсвязьбанка -карта 7, счет 9. для банка Русский Стандарт -карта 1, счет 2, договор 3. Для подробной актуальной информации по этому вопросу необходимо уточнять в QIWI
            QiwiResultSendToBankParnerPaymentClass SendBankPartnerPayment = q_raw.SendPayment("466", details_bank_partner_transaction); // Это пример перевода на карту банка партнёра Тинькоф по номеру карты и сроку действия карты
            //
            QiwiResultDetectProviderClass DetectProvider = q_raw.DetectMobileOperatorProvider("+79995552211");                          // определить номер провайдера оплаты для пополнения счёта мобильного по номеру сотового (в международном формате +79991112233)

            DetectProvider = q_raw.DetectCachCardProvider("4444555577773333");                                                          // Определить по номеру карты номер провайдера
            Console.ReadLine();
        }
        /// <summary>
        /// Отправить платёж банку-партнёру по номеру счёта/договора и т.д.
        /// </summary>
        /// <param name="provider_id">Номер провайдера оплаты</param>
        /// <param name="details_bank_partner_transaction">Реквизиты для передачи банку-партнёру</param>
        /// <returns>Результат операции перевода банку-партнёру  либо null в случае ошибки</returns>
        public QiwiResultSendToBankParnerPaymentClass SendPayment(string provider_id, QiwiTransactionsPartnerBankDetailsPaymentClass details_bank_partner_transaction)
        {
            Console.Out.WriteLine("Отправка денег [provider=" + provider_id + "] [сумма=" + details_bank_partner_transaction.sum.amount.ToString() + "] [получатель=" + details_bank_partner_transaction.fields.account + "] [exp_date = " + details_bank_partner_transaction.fields.exp_date + "] [account_type = " + details_bank_partner_transaction.fields.account_type + "] [комментарий=" + details_bank_partner_transaction.comment + "]");
            string json_data = MultiTool.glob_tools.SerialiseJSON(details_bank_partner_transaction);

            if (SendPayment("https://edge.qiwi.com/sinap/api/v2/terms/" + provider_id + "/payments", json_data))
            {
                return((QiwiResultSendToBankParnerPaymentClass)MultiTool.glob_tools.DeSerialiseJSON(typeof(QiwiResultSendToBankParnerPaymentClass), HttpResponseResult));
            }
            else
            {
                return(null);
            }
        }