WebMoney

Wiki

Ext WMKeeper

Сервис Keeper Embedded представляет собой набор web-методов для обеспечения финансового взаимодействия между участниками социальной сети.

С помощью данного сервиса участники социальной сети смогут создавать кошельки в различных типах титульных знаков, присоединять уже существующие кошельки WebMoney к своим аккаунтам, переводить средства или выставлять счета другим участникам социальной сети, пополнять мобильный телефон и т.д.

Каждой социальной сети, использующей Keeper Embedded, присваивается номер (SNID), который должен передаваться как параметр всем методам сервиса. Также каждой сети выдается уникальный секретный ключ, который участвует в формировании подписи (hash), которая тоже передается как параметр всем методам сервиса. В качестве алгоритма генерации используется алгоритм SHA1.
Кроме того, методы sendFunds, issueInvoice, issueInvoiceToWMID, payInvoice, rejectInvoice, topUpByCard, topUpPhone принимают параметр RequestN. Это 64-битное целое число, которое должно быть уникально для каждой социальной сети, т.е. для каждого SNID

В данный момент в Keeper Embedded реализованы следующие методы:

1. Создание кошелька участника.

int createPurse(int SNID, string USID, char Purse, string hash, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети, Purse - тип создаваемого кошелька, USID - ID участника, hash - хэш (SHA1) строки вида SNID+USID+Purse+SecretKey.
  • Возвращаемые параметры: errordesc - описание ошибки.
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.

2. Присоединение кошелька участник может выполнить, пройдя по ссылке

https://ext.wmkeeper.com/WMAPI/AddPurse.aspx?SNID={0}&USID={1}&ReturnUrl={2}&hash={3},

где SNID - ID социальной сети, USID - ID участника, ReturnUrl - URL куда нужно вернуть участника после окончания процедуры присоединения кошелька (на эту страницу будут также переданы параметры USID, совпадающий с исходным, err, содержащий код ошибки обработки запроса, и hash с хэшем строки вида USID+err+SecretKey), hash - хэш (SHA1) строки вида SNID+USID+ReturnUrl+SecretKey. Все параметры должны быть URL-некодированы.
После присоединения кошелька, участник должен активировать свой кошелек кодом активации, который высылается ему на WM Keeper. Активация происходит с помощью метода activatePurse (см. п.21) или с помощью перехода по URL, присылаемой участнику на WM Keeper.

3. Удаление кошелька (удаление созданного (не присоединенного) кошелька возможно только при отсутствии на нем средств).

int removePurse(int SNID, string USID, char purse, string hash, out string RedirectURL, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети, USID - ID участника, Purse - тип удаляемого кошелька , hash - хэш (SHA1) строки вида SNID+USID+Purse+SecretKey.
  • Возвращаемые параметры: RedirectURL - ссылка на страницу, на которой участник может убрать доверие (в случае удаления присоединенного кошелька), либо пустая строка,errordesc - описание ошибки выполнения запроса
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.

4. Получение списка кошельков участника.

int getUserPurses(int SNID, string USID, string hash, out char[] purses, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети, USID - ID участника, hash - хэш (SHA1) строки вида SNID+USID+SecretKey.
  • Возвращаемые параметры: Purses - массив символов, соответствующих типам кошельков, errordesc - описание ошибки.
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.

5. Получение баланса кошельков участника, а также данных о том разрешено ли участнику создавать новые кошельки и присоединять существующие кошельки к своему аккаунту

int getUserPursesBalance(int SNID, string USID, string hash, out bool AllowPurseCreation, out bool AllowPurseAddition, out PurseBalanceEntry[] PursesBalances, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети, USID - ID участника, hash - хэш (SHA1) строки вида SNID+USID+SecretKey.
  • Возвращаемые параметры: AllowPurseCreation - разрешено ли участнику создание кошельков, AllowPurseAddition - разрешено ли участнику присоединение существующих кошельков к своему аккаунту, Purses - массив структур вида:
     struct PurseBalanceEntry
     {
       public char Purse; //тип кошелька
       public double Balance; //баланс кошелька
       public bool Activated; //активирован кошелек или нет
     },
    errordesc - описание ошибки.
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.

6. Перевод средств между участниками.

int sendFunds(int SNID, long RequestN, string srcUSID, string destUSID, char purse, double amount, string description, string hash, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети, RequestN - уникальный номер запроса, srcUSID - ID участника отправителя средств, destUSID - ID участника получателя средств, Purse - тип кошелька, Amount - сумма перевода в указанном титульном знаке, Description - примечание к переводу, hash - хэш (SHA1) строки вида SNID+RequestN+srcUSID+destUSID+Purse+Amount+Description+SecretKey, где Amount записывается в формате '#0.00'.
  • Возвращаемые параметры: errordesc - описание ошибки выполнения запроса
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.

7. Получение максимальной суммы средств, которые один участник может передать другому.

int getMaxTransactionAmount(int SNID, char purse,string srcUSID, string destUSID, string hash, out double MaxAmount, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети, srcUSID - ID участника отправителя средств, destUSID - ID участника получателя средств, Purse - тип кошелька, hash - хэш (SHA1) строки вида SNID+srcUSID+destUSID+Purse+SecretKey.
  • Возвращаемые параметры: errordesc - описание ошибки выполнения запроса
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.

8. Выписка счета другому участнику.

int issueInvoice(int SNID, long RequestN, string srcUSID, string destUSID, char purse, double amount, int days, string description, string hash, out long InvID, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети, RequestN - уникальный номер запроса, srcUSID - ID участника отправителя средств, destUSID - ID участника получателя средств, Purse - тип кошелька, Amount - сумма перевода в указанном титульном знаке, Days - срок действия счета,Description - примечание к счету, hash - хэш (SHA1) строки вида SNID+RequestN+srcUSID+destUSID+Purse+Amount+Days+Description+SecretKey, где Amount записывается в формате '#0.00'.
  • Возвращаемые параметры: InvID - номер выписанного счета, errordesc - описание ошибки выполнения запроса
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.

9. Выписка счета участнику WebMoney.
int issueInvoiceToWMID(int SNID, long RequestN, string srcUSID, string destWMID, char purse, double amount, int days, string description, string hash, out long InvID, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети, RequestN - уникальный номер запроса, srcUSID - ID участника отправителя средств, destWMID - WMID участника WebMoney получателя средств, Purse - тип кошелька, Amount - сумма перевода в указанном титульном знаке, Days - срок действия счета,Description - примечание к счету, hash - хэш (SHA1) строки вида SNID+RequestN+srcUSID+destUSID+Purse+Amount+Days+Description+SecretKey, где Amount записывается в формате '#0.00'.
  • Возвращаемые параметры: InvID - номер выписанного счета, errordesc - описание ошибки выполнения запроса
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.

10. Оплата выставленного счета.
int payInvoice(int SNID, long RequestN, string USID, long InvID, string hash, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети, RequestN - уникальный номер запроса, USID - ID участника, InvID - номер выставленного счета, hash - хэш (SHA1) строки вида SNID+USID+InvID+SecretKey.
  • Возвращаемые параметры: errordesc - описание ошибки выполнения запроса
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.

11. Отказ от оплаты выставленного счета
int rejectInvoice(int SNID, long RequestN, string USID, long InvID, string hash, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети, RequestN - уникальный номер запроса, USID - ID участника, InvID - номер выставленного счета , hash - хэш (SHA1) строки вида SNID+USID+InvID+SecretKey.
  • Возвращаемые параметры: errordesc - описание ошибки выполнения запроса
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.

12. Пополнение кошелька предоплаченной картой (чеком) Paymer.

int topUpByCard(int SNID, long RequestN, string USID, char purse, string CardNumber, string CardCode, string hash, out double Amount, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети, RequestN - уникальный номер запроса, USID - ID участника, Purse - тип кошелька, на который будут зачислены средства, CardNumber - номер предоплаченной карты (чека), CardCode - пин-код предоплаченной карты (чека), hash - хэш (SHA1) строки вида SNID+RequestN+USID+Purse+CardNumber+CardCode+SecretKey.
  • Возвращаемые параметры: Amount - сумма пополнения, errordesc - описание ошибки выполнения запроса
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.

13. Пополнение телефона с кошелька участника.

int topUpPhone(int SNID, long RequestN, string USID, string PhoneNumber, double Amount, char Purse, string hash, out int TranID, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети, RequestN - номер запроса (должен быть уникальным), USID - ID участника, PhoneNumber - номер телефона в формате 9161231212, Amount - сумма пополнения, Purse - тип кошелька, с которого будет произведено списание средств, hash - хэш (SHA1) строки вида SNID+RequestN+USID+PhoneNumber+Amount+Purse+SecretKey, где Amount записывается в формате '#0.00'.
  • Возвращаемые параметры: errordesc - описание ошибки.
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.

14. Получение истории переводов средств участника за период времени

int getHistory(int SNID, string USID, DateTime start, DateTime finish, string hash, out HistoryEntry[] History, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети, USID - ID участника, dateStart - начало периода, dateFinish - конец периода, hash - хэш (SHA1) строки вида SNID+USID+dateStart+dateFinish+SecretKey, где dateStart и dateFinish записываются в формате 'yyyy/MM/dd HH:mm:ss'
  • Возвращаемые параметры: History - массив структур вида:
     struct HistoryEntry
     {
      DateTime Date; //дата операции
      char Purse; //тип кошелька
      string SourceUSID; //ID отправителя средств или WMID отправителя средств (см. параметр SourceIsWMID)
      string DestinationUSID; //ID получателя средств
      double Amount; //сумма
      double Fee; //комиссия за операцию
      double PurseRest; //остаток средств на кошельке участника
      bool InvoicePaid; //был ли перевод средств оплатой по счету
      bool SourceIsWMID; //является ли SourceUSID WMID'ом отправителя
      string Description; //комментарий к операции
     },
    errordesc - описание ошибки.
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.

15. Получение списка входящих счетов за период времени

int getIncomingInvoices(int SNID, string destUSID, DateTime dateStart, DateTime dateFinish, string hash, out InvoiceEntry[] Invoices, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети, USID - ID участника, dateStart - начало периода, dateFinish - конец периода, hash - хэш (SHA1) строки вида SNID+USID+dateStart+dateFinish+SecretKey, где dateStart и dateFinish записываются в формате 'yyyy/MM/dd HH:mm:ss'
  • Возвращаемые параметры: Invoices - массив структур вида:
     struct InvoiceEntry
     {
      DateTime Date; //Дата выписки счета
      long InvID; //Номер счета
      string USID; //ID отправителя счета
      char Purse; //Тип кошелька
      double Amount; //Сумма к оплате
      bool DestIsWMID; //Выставлен ли этот счет участнику WebMoney
      int ExpirationDays; //Срок действия счета
      int State; //Состояние счета (0 - оплачен, 1 - не оплачен, -1 - отклонен)
      string Description; //Комментарий к счету
     },
errordesc - описание ошибки.
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.

16. Получение списка исходящих счетов за период времени

int getOutgoingInvoices(int SNID, string USID, DateTime dateStart, DateTime dateFinish, string hash, out InvoiceEntry[] Invoices, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети, destUSID - ID участника, dateStart - начало периода, dateFinish - конец периода, hash - хэш (SHA1) строки вида SNID+USID+dateStart+dateFinish+SecretKey, где dateStart и dateFinish записываются в формате 'yyyy/MM/dd HH:mm:ss'
  • Возвращаемые параметры: Invoices - массив структур вида:
     struct InvoiceEntry
     {
      DateTime Date; //Дата выписки счета
      long InvID; //Номер счета
      string USID; //ID или WMID получателя счета (см. параметр DestIsWMID)
      char Purse; //Тип кошелька
      double Amount; //Сумма к оплате
      bool DestIsWMID; //Выставлен ли этот счет участнику WebMoney
      int ExpirationDays; //Срок действия счета
      int State; //Состояние счета (0 - оплачен, 1 - не оплачен, -1 - отклонен)
      string Description; //Комментарий к счету
     },
errordesc - описание ошибки.
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.

17. Получение истории пополнений кошельков предоплаченными картами (чеками) за период времени.

int getCardTopUpHistory(int SNID, string USID, DateTime dateFrom, DateTime dateTo, string hash, out CardTopUpHistoryEntry[] History, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети, USID - ID участника, dateStart - начало периода , dateFinish - конец периода, hash - хэш (SHA1) строки вида SNID+USID+dateStart+dateFinish+SecretKey, где dateStart и dateFinish записываются в формате 'yyyy/MM/dd HH:mm:ss'.
  • Возвращаемые параметры: History - массив структур вида:
     struct CardTopUpHistoryEntry
     {
       dateTime Date; //дата операции
       string USID; //ID участника
       string CardNumber; //номер карты (чека)
       string CardCode; //пин-код карты (чека)
       double Amount; //сумма пополнения
       char Purse; //тип кошелька, на который совершено пополнение
     },
    errordesc - описание ошибки выполнения запроса
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.

18. Получение истории пополнений телефонов за период времени

int getPhoneTopUpHistory(int SNID, string USID, DateTime dateFrom, DateTime dateTo, string hash, out PhoneTopUpHistoryEntry[] PhoneTopUpHistory, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети, USID - ID участника, dateStart - начало периода , dateFinish - конец периода, hash - хэш (SHA1) строки вида SNID+USID+dateStart+dateFinish+SecretKey, где dateStart и dateFinish записываются в формате 'yyyy/MM/dd HH:mm:ss'.
  • Возвращаемые параметры: PhoneTopUpHistory - массив структур вида:
     struct PhoneTopUpHistoryEntry
     {
      dateTime Date; //дата операции
      string USID; //ID участника
      char Purse; //тип кошелька (титульный знак пополнения)
      double Amount; //сумма пополнения в указанном титульном знаке
      string PhoneNumber; //номер телефона
      int State; //код завершения операции
      string Provider; //название оператора
      string Description; //примечание к переводу
     },
    errordesc - описание ошибки выполнения запроса
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.

19. Получение результата операции пополнения телефона

int getPhoneTopUpState(int SNID, string USID, int TranID, string hash, out int State, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети, USID - ID участника, TranID - уникальный номер пополнения, hash - хэш (SHA1) строки вида SNID+USID+TranID+SecretKey.
  • Возвращаемые параметры: State - код завершения операции (0 - успешно, 1 - результат ожидается, -1 - пополнение завершилось с ошибкой), errordesc - описание ошибки выполнения запроса
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.

20. Активация присоединенного кошелька участника.

int activatePurse(int SNID, string USID, char purse, string ActivationCode, string hash, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети,USID - ID участника, Purse - тип кошелька, ActivationCode - код активации, hash - хэш (SHA1) строки вида SNID+USID+Purse+ActivationCode+SecretKey.
  • Возвращаемые параметры: errordesc - описание ошибки.
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.

Код активации высылается участнику на его WebMoney Keeper сразу после присоединения кошелька.

21. Получение информации об участнике.
int getUserInfo(int SNID, string USID, string hash, out UserInfo userInfo, out string errordesc)

  • Передаваемые параметры: SNID - ID социальной сети,USID - ID участника, hash - хэш (SHA1) строки вида SNID+USID+SecretKey.
  • Возвращаемые параметры: userInfo - структура вида:
     struct UserInfo
     {
      string FirstName; //имя участника
      string MiddleName; //отчество участника
      string LastName; // фамилия участника
      string EMail; //е-mail участника
      string Phone; //телефон участника
      string Address; //адрес участника
      string URL; //домашняя страница
      string PassportType; //тип аттестата участника (110 - Формальный аттестат, 120 - Начальный аттестат, 130 - Персональный аттестат, 135 - Аттестат продавца).
     },
    errordesc - описание ошибки.
  • Возвращаемое значение: код ошибки или 0, если ошибки нет.
Коды ошибок:
  • 0 - Операция прошла успешно;
  • 1 - Ошибка проверки подписи;
  • 2 - Такой кошелек уже существует;
  • 3 - Нет такого кошелька (кошельков);
  • 4 - Невозможно присоединить кошелек;
  • 5 - Неверные параметры;
  • 6 - Неверный кошелек получателя;
  • 7 - Ошибка WebMoney;
  • 8 - Нет операций за указанный период времени;
  • 9 - Операция с таким RequestN уже выполнялась;
  • 10 - Некорректная сумма;
  • 11 - Нет счетов за указанный период времени;
  • 12 - Неизвестный участник;
  • 13 - Неверный код активации;
  • 14 - Неверный WMID;
  • 15 - Кошелек не пустой;
  • 16 - Недостаточно средств на кошельке;
  • 17 - Такого участника не существует;
  • 18 - Неверный тип титульного знака операции;
  • 19 - Неверный аккаунт (номер телефона, счета, договора);
  • 20 - Операция не авторизована;
  • 21 - Некорректный период времени;
  • 400 - TimeOut;
  • 500 - Ошибка сервера.

См. также:
WM Keeper Вконтакте
WM Keeper Одноклассники
WM Keeper Facebook