Сервис 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 Вконтакте
Категория: Сервисы системы