aiomoney


Nameaiomoney JSON
Version 1.0.11 PyPI version JSON
download
home_pagehttps://github.com/fofmow/aiomoney
SummaryПростая асинхронная библиотека для работы с API ЮMoney
upload_time2023-04-10 06:43:54
maintainer
docs_urlNone
authorfofmow
requires_python>=3.10
licenseMIT
keywords yoomoney python async
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # aiomoney — простая асинхронная библиотека для работы с API ЮMoney

### Авторизация приложения

1. Зарегистрируйте новое приложение YooMoney по ссылке https://yoomoney.ru/myservices/new
   (без указания чекбокса OAuth2!).
2. Получите и скопируйте `client_id` после создания приложения
3. Создайте запрос на получение api-токена.
   [О правах приложения](https://yoomoney.ru/docs/wallet/using-api/authorization/protocol-rights)

   ```python
   import asyncio
   from os import environ
   from aiomoney import authorize_app
   
   
   async def main():
       await authorize_app(
           client_id=environ.get("CLIENT_ID"),
           redirect_uri=environ.get("REDIRECT_URI"),
           app_permissions=[
               "account-info",
               "operation-history",
               "operation-details",
               "incoming-transfers",
               "payment-p2p",
               "payment-shop",
           ]
       )
   
   
   if __name__ == "__main__":
       asyncio.run(main())
   ```

4. Во время перенаправления по `redirect_uri` в адресной строке появится параметр `code=`.
   Скопируйте значение и вставьте его в консоль
5. Если авторизация прошла успешно, в консоли отобразится Ваш api-token.
   Сохраните его в переменную окружения (рекомендация)

### Получение основной информации об аккаунте

```python
import asyncio
from aiomoney.types import AccountInfo, Operation, OperationDetails
from aiomoney.wallet import YooMoneyWallet


async def main():
    wallet = YooMoneyWallet(access_token="ACCESS_TOKEN")
    
    account_info: AccountInfo = await wallet.account_info
    operation_history: list[Operation] = await wallet.get_operation_history()
    operation_details: OperationDetails = await wallet.get_operation_details(operation_id="999")


if __name__ == "__main__":
    asyncio.run(main())
```

### Создание платёжной формы и проверка оплаты

```python
import asyncio
from aiomoney.wallet import YooMoneyWallet, PaymentSource


async def main():
    wallet = YooMoneyWallet(access_token="ACCESS_TOKEN")
    
    payment_form = await wallet.create_payment_form(
        amount_rub=990,
        unique_label="myproject_second_unicorn",
        payment_source=PaymentSource.YOOMONEY_WALLET,
        success_redirect_url="https://t.me/fofmow (nonono =/)"
    )
    # проверка платежа по label
    payment_is_completed: bool = await wallet.check_payment_on_successful(payment_form.payment_label)
    
    print(f"Ссылка на оплату:\n{payment_form.link_for_customer}\n\n"
          f"Форма оплачена: {'Да' if payment_is_completed else 'Нет'}")


if __name__ == "__main__":
    asyncio.run(main())

```


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/fofmow/aiomoney",
    "name": "aiomoney",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "",
    "keywords": "yoomoney python async",
    "author": "fofmow",
    "author_email": "fofmow@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/cd/bd/4d6eb3d4617184ababaf5685464a5ea8e636ef9a5974611b9cca76168083/aiomoney-1.0.11.tar.gz",
    "platform": null,
    "description": "# aiomoney \u2014 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 API \u042eMoney\r\n\r\n### \u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\r\n\r\n1. \u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0439\u0442\u0435 \u043d\u043e\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 YooMoney \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 https://yoomoney.ru/myservices/new\r\n   (\u0431\u0435\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0447\u0435\u043a\u0431\u043e\u043a\u0441\u0430 OAuth2!).\r\n2. \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 `client_id` \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\r\n3. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 api-\u0442\u043e\u043a\u0435\u043d\u0430.\r\n   [\u041e \u043f\u0440\u0430\u0432\u0430\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f](https://yoomoney.ru/docs/wallet/using-api/authorization/protocol-rights)\r\n\r\n   ```python\r\n   import asyncio\r\n   from os import environ\r\n   from aiomoney import authorize_app\r\n   \r\n   \r\n   async def main():\r\n       await authorize_app(\r\n           client_id=environ.get(\"CLIENT_ID\"),\r\n           redirect_uri=environ.get(\"REDIRECT_URI\"),\r\n           app_permissions=[\r\n               \"account-info\",\r\n               \"operation-history\",\r\n               \"operation-details\",\r\n               \"incoming-transfers\",\r\n               \"payment-p2p\",\r\n               \"payment-shop\",\r\n           ]\r\n       )\r\n   \r\n   \r\n   if __name__ == \"__main__\":\r\n       asyncio.run(main())\r\n   ```\r\n\r\n4. \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e `redirect_uri` \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 `code=`.\r\n   \u0421\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438 \u0432\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0435\u0433\u043e \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\r\n5. \u0415\u0441\u043b\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0448\u043b\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e, \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u0441\u044f \u0412\u0430\u0448 api-token.\r\n   \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0435\u0433\u043e \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f (\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f)\r\n\r\n### \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0431 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0435\r\n\r\n```python\r\nimport asyncio\r\nfrom aiomoney.types import AccountInfo, Operation, OperationDetails\r\nfrom aiomoney.wallet import YooMoneyWallet\r\n\r\n\r\nasync def main():\r\n    wallet = YooMoneyWallet(access_token=\"ACCESS_TOKEN\")\r\n    \r\n    account_info: AccountInfo = await wallet.account_info\r\n    operation_history: list[Operation] = await wallet.get_operation_history()\r\n    operation_details: OperationDetails = await wallet.get_operation_details(operation_id=\"999\")\r\n\r\n\r\nif __name__ == \"__main__\":\r\n    asyncio.run(main())\r\n```\r\n\r\n### \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043b\u0430\u0442\u0451\u0436\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u044b \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043e\u043f\u043b\u0430\u0442\u044b\r\n\r\n```python\r\nimport asyncio\r\nfrom aiomoney.wallet import YooMoneyWallet, PaymentSource\r\n\r\n\r\nasync def main():\r\n    wallet = YooMoneyWallet(access_token=\"ACCESS_TOKEN\")\r\n    \r\n    payment_form = await wallet.create_payment_form(\r\n        amount_rub=990,\r\n        unique_label=\"myproject_second_unicorn\",\r\n        payment_source=PaymentSource.YOOMONEY_WALLET,\r\n        success_redirect_url=\"https://t.me/fofmow (nonono =/)\"\r\n    )\r\n    # \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u043f\u043e label\r\n    payment_is_completed: bool = await wallet.check_payment_on_successful(payment_form.payment_label)\r\n    \r\n    print(f\"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u043f\u043b\u0430\u0442\u0443:\\n{payment_form.link_for_customer}\\n\\n\"\r\n          f\"\u0424\u043e\u0440\u043c\u0430 \u043e\u043f\u043b\u0430\u0447\u0435\u043d\u0430: {'\u0414\u0430' if payment_is_completed else '\u041d\u0435\u0442'}\")\r\n\r\n\r\nif __name__ == \"__main__\":\r\n    asyncio.run(main())\r\n\r\n```\r\n\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "\u041f\u0440\u043e\u0441\u0442\u0430\u044f \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 API \u042eMoney",
    "version": "1.0.11",
    "split_keywords": [
        "yoomoney",
        "python",
        "async"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cdbd4d6eb3d4617184ababaf5685464a5ea8e636ef9a5974611b9cca76168083",
                "md5": "e8d2aceaa1e2d5e50e45df1b440c9e81",
                "sha256": "c8097ff6016efab9322b0b4085a4293799ff65f4b04cb824165b9bab2c7f82a0"
            },
            "downloads": -1,
            "filename": "aiomoney-1.0.11.tar.gz",
            "has_sig": false,
            "md5_digest": "e8d2aceaa1e2d5e50e45df1b440c9e81",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 7108,
            "upload_time": "2023-04-10T06:43:54",
            "upload_time_iso_8601": "2023-04-10T06:43:54.690328Z",
            "url": "https://files.pythonhosted.org/packages/cd/bd/4d6eb3d4617184ababaf5685464a5ea8e636ef9a5974611b9cca76168083/aiomoney-1.0.11.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-04-10 06:43:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "fofmow",
    "github_project": "aiomoney",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "aiomoney"
}
        
Elapsed time: 0.06278s