{"id":26507406,"url":"https://github.com/odya-llc/flask_clickuz","last_synced_at":"2025-03-20T23:19:20.026Z","repository":{"id":61939325,"uuid":"556369786","full_name":"Odya-LLC/flask_clickuz","owner":"Odya-LLC","description":"Click.uz integration with Flask application, (only for Uzbekistan)","archived":false,"fork":false,"pushed_at":"2022-10-23T20:03:43.000Z","size":1906,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-20T07:16:35.182Z","etag":null,"topics":["click","clickuz","flask","merchant","odya","payment","payment-gateway","payment-integration","uzbekistan"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Odya-LLC.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-10-23T17:45:35.000Z","updated_at":"2024-04-02T17:41:08.000Z","dependencies_parsed_at":"2022-10-23T21:15:24.341Z","dependency_job_id":null,"html_url":"https://github.com/Odya-LLC/flask_clickuz","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Odya-LLC%2Fflask_clickuz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Odya-LLC%2Fflask_clickuz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Odya-LLC%2Fflask_clickuz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Odya-LLC%2Fflask_clickuz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Odya-LLC","download_url":"https://codeload.github.com/Odya-LLC/flask_clickuz/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244706545,"owners_count":20496571,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["click","clickuz","flask","merchant","odya","payment","payment-gateway","payment-integration","uzbekistan"],"created_at":"2025-03-20T23:19:14.851Z","updated_at":"2025-03-20T23:19:20.020Z","avatar_url":"https://github.com/Odya-LLC.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Flask-ClickUz\n\u003e Only for Uzbekistan\n\n\nClick.uz integration for Flask\n\n## Links\n* [About ClickUz](https://click.uz/)\n* [ClickUz Docs](https://docs.click.uz/)\n\n## How it Works\n\n### Install\n\n```\npip install Flask-ClickUz\n```\n\n### Add your credentials from ClickUz to config file\n\n```python\nCLICK_SECRET = 'Your secret key'\nCLICK_SERVICE_ID = 'Your service ID'\nCLICK_MERCHANT_ID = \"123\" \n```\n\n### Create Flask App With Flask-ClickUz\n\n```python\nfrom flask import Flask\nfrom flask_clickuz import Click\nfrom flask_sqlalchemy import SQLAlchemy\ndb = SQLAlchemy()\nclick = Click(db)\norders = [525]\n\ndef Check_Allowment(data):\n    \"\"\"Calls when click sends request to server\n\n    Args:\n        data (dict): Click data, contains merchant_trans_id to check allownment\n\n    Returns:\n        Boolen: Return True if allownment is valid else False\n    \"\"\"    \n    merchant_trans_id = data.get('merchant_trans_id')\n    if int(merchant_trans_id) in orders:\n        return True\n    return False\n\ndef Click_Callback(transaction):\n    \"\"\"Calls when transaction is completed or cancelled, \n    if transaction is completed, transaction.action is 1\n    else transaction.action is 0\n    \n    Args:\n        transaction (Click_Transaction): SQLAlchemy model of Click_Transaction\n    \"\"\"   \n    action = transaction.action # 0 - cancaled, 1 - paid\n    pass\n\ndef create_app():\n    app = Flask(__name__)\n    app.config.from_pyfile('config.py')\n    db.init_app(app)\n    \n    click.Register_Callback(Click_Callback) # Register callback\n    click.Register_Validator(Check_Allowment) # Register validator\n    click.init_app(app)\n    \n    # Generate url for new orders\n    url = click.Generate_Transaction(order_id=123, amount=50000, return_url = '/return_url')\n    \n    return app\n```\n\n### Flask-ClickUz models schema\n\n```python\n\"\"\"\nFlask-ClickUz uses Flask-SQLAlchemy models to save data in database, it prefers to use Postgresql\n\"\"\"\nclass Click_Transaction(db.Model):\n    __tablename__ = 'click_transaction'\n    id = db.Column(db.Integer, primary_key=True)\n    click_trans_id = db.Column(db.Integer, unique=True)\n    service_id = db.Column(db.Integer)\n    click_paydoc_id = db.Column(db.Integer)\n    merchant_trans_id = db.Column(db.String(255))\n    amount = db.Column(db.Float)\n    action = db.Column(db.Integer)\n    error = db.Column(db.Integer)\n    error_note = db.Column(db.String(255))\n    sign_time = db.Column(db.DateTime)\n    sign_string = db.Column(db.String(255))\n```\n\n### Accessing Models\nSelect data from models\n\n```python\nclick.model # Click_Transaction \nClick_Transaction = click.model\ntransaction = Click_Transaction.query.all() # You can select or filter data\n```\n\nAdd model view to Flask-Admin\n\n```python\nfrom flask_admin.contrib.sqla import ModelView\nadmin.add_view(ModelView(click.model, db.session))\n```\n\n\n\n## Task List\n\n### SHOP-API methods\n\n- [x] Prepare\n- [x] Complete\n\n\n### Merchant API methods\n\n- [ ] create_invoice\n- [ ] check_invoice\n- [ ] create_card_token\n- [ ] verify_card_token\n- [ ] payment_with_card_token\n- [ ] delete_card_token\n- [ ] check_payment\n- [ ] merchant_trans_id\n- [ ] cancel\n\n\n\n\n## Licence\nThis project is licensed under the MIT License (see the `LICENSE` file for details).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fodya-llc%2Fflask_clickuz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fodya-llc%2Fflask_clickuz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fodya-llc%2Fflask_clickuz/lists"}