{ "info": { "author": "tanjm", "author_email": "tjm0510@163.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing :: Indexing", "Topic :: Utilities" ], "description": "Minipay\n=======\n\npython\u7248\u672c: python3\n^^^^^^^^^^^^^^^^^^^\n\n\u7528django\u6846\u67b6\u5b9e\u73b0\u7684\u7b80\u5355demo\uff0c\u8bf7\u53c2\u89c1\uff1ahttps://github.com/dkodoc/minipay\\_demo\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n\u5b89\u88c5\u65b9\u6cd5\n^^^^^^^^\n\n\u65b9\u6cd51\uff1a\u4e0b\u8f7d\u538b\u7f29\u5305\uff0c\u89e3\u538b\n\n.. code:: bash\n\n tar -xzvf minipay-x.x.x.tar.gz\n cd minipay\n python setup.py install\n\n\u65b9\u6cd52\uff1a\n\n.. code:: bash\n\n pip install minipay\n\nconfig\u914d\u7f6e\n^^^^^^^^^^\n\n\u5728\u9879\u76ee\u521d\u59cb\u5316\u65f6\uff0c\u8981\u5148\u52a0\u8f7dminipay\u7684\u914d\u7f6e\uff0c\u5982\u5728django\u4e2d\u7684settings.py\u4e2d\u6309\u7167\u4ee5\u4e0b\u793a\u4f8b\u5199\u5165\u914d\u7f6e\n\n.. code:: python\n\n from minipay.config import MiniAppsConfig\n\n # \u5c0f\u7a0b\u5e8fappid\n MiniAppsConfig.APP_ID = None \n\n # \u5546\u5bb6mch_id\n MiniAppsConfig.MCH_ID = None \n\n # \u5c0f\u7a0b\u5e8fsecret\n MiniAppsConfig.SECRET = None \n\n # \u5c0f\u7a0b\u5e8f\u968f\u673a\u5b57\u7b26\u4e32\n MiniAppsConfig.NONCE_STR = None\n\n # \u5c0f\u7a0b\u5e8fKEY\uff0c\u7528\u4e8e\u89e3\u5bc6\u9000\u6b3e\u901a\u77e5\n MiniAppsConfig.KEY = None \n\n # \u5f00\u53d1\u8005\u81ea\u5df1\u7684\u652f\u4ed8\u901a\u77e5\u63a5\u53e3\uff0c\u6bd4\u5982 https://www.xxxx.com/api/notification/payment\n MiniAppsConfig.PAYMENT_NOTIFY_URL = None\n\n #\u5f00\u53d1\u8005\u81ea\u5df1\u7684\u9000\u6b3e\u901a\u77e5\u63a5\u53e3,\u6bd4\u5982 https://www.xxxx.com/api/nitification/refund\n MiniAppsConfig.REFUND_NOTIFY_URL = None\n\n # \u5fae\u4fe1\u9000\u6b3e\u9700\u8981\u7528\u5230\u7684\u5546\u6237\u8bc1\u4e66\uff0c\u6ca1\u6709\u914d\u7f6e\u7684\u8bdd\u8bf7\u6c42\u9000\u6b3e\u4f1a\u51fa\u9519\n # \u8be6\u60c5\u89c1\uff1ahttps://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=4_3\n # \u4f8b\u5982\n # CERT = '/appclient.pem'\n # CERT_KEY = '/appclient_key.pem'\n # \u7533\u8bf7\u9000\u6b3eAPI\u9700\u8981\u7528\u5230\u7684\u5546\u6237\u8bc1\u4e66\u672c\u5730\u8def\u5f84\uff0c\u5982\u8981\u4f7f\u7528\u7533\u8bf7\u9000\u6b3eAPI\uff0c\u5fc5\u987b\u914d\u7f6e\u4ee5\u4e0b\u4e24\u4e2a\u53c2\u6570\n MiniAppsConfig.CERT = None\n MiniAppsConfig.CERT_KEY = None\n\n # \u6a21\u5f0f\u3002\u53c2\u6570\u503c\u6709ignore\u548cstore\uff0c store\u5219\u5fc5\u987b\u63d0\u4f9bORM\u6a21\u578b\u7c7b\u7528\u6765\u4fdd\u5b58\u8bf7\u6c42\u548c\u54cd\u5e94\u8bb0\u5f55, ignore\u6a21\u5f0f\u4e0d\u4fdd\u5b58\u8bb0\u5f55\n # \u8be5\u529f\u80fd\u76ee\u524d\u4ec5\u80fd\u4fdd\u8bc1\u548cdjangoORM\u517c\u5bb9\n # \u8be5\u53c2\u6570\u53ef\u4ee5\u5728\u4f7f\u7528minipayAPI\u7684\u65f6\u5019\u518d\u4f20\u8fdb\u53bb\uff0c\u4f46\u662f\u540c\u65f6\u9700\u8981\u591a\u52a0\u4e00\u4e2amodels\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u5165ORM\u7c7b\n # \u5177\u4f53\u4f7f\u7528\u5728\u793a\u4f8b\u4e2d\n MiniAppsConfig.DEFAULT_MODE = 'ignore'\n\n # \u9ed8\u8ba4\u7684ORM\u6a21\u578b\u7c7b\uff0c\u53ef\u4ee5\u5230\u7528\u7684\u65f6\u5019\u518d\u586b\n MiniAppsConfig.DEFAULT_MODEL = None\n\n # \u9ed8\u8ba4\u8bf7\u6c42\u65b9\u6cd5 post or get\n MiniAppsConfig.DEFAULT_METHOD = 'post'\n\nAPI\n^^^\n\n1 \u7edf\u4e00\u4e0b\u5355\n''''''''''\n\n.. code:: python\n\n import minipay\n\n # \u4ee5\u4e0b\u4e09\u4e2a\u4e3a\u5fc5\u4f20\u53c2\u6570\n data = {\n \"out_trade_no\": \"2018112312321321\",\n \"body\": \"XX\u516c\u53f8-\u73cd\u73e0\u5976\u8336\",\n \"total_fee\": \"700\", # \u8fd9\u91cc\u5355\u4f4d\u662f\uff08\u5206\uff09 200=2\u5143\n }\n unified = minipay.UnifiedOrder(**data)\n result = unified.request()\n if unified.is_success:\n print(\"\u8bf7\u6c42\u6210\u529f\")\n elif unified.is_fail:\n print(\"\u8bf7\u6c42\u5931\u8d25\")\n\n2 \u8ba2\u5355\u67e5\u8be2\n''''''''''\n\n.. code:: python\n\n import minipay\n\n out_trade_no = 'abv2010102333112'\n query = minipay.OrderQuery(out_trade_no=out_trade_no)\n response = query.request()\n if query.is_success:\n print(response)\n print(query.response_data)\n else:\n print(query.error)\n print(response)\n\n3 \u5173\u95ed\u8ba2\u5355\n''''''''''\n\n.. code:: python\n\n import minipay\n\n close_order = minipay.CloseOrder(out_trade_no=\"abv2010102333112\")\n close_order.request()\n if close_order.is_success:\n print(close_order.response_data)\n else:\n print(close_order.error)\n\n4 \u7533\u8bf7\u9000\u6b3e\n''''''''''\n\n.. code:: python\n\n import minipay\n\n refund_fee = 100\n total_fee = 200\n refund = minipay.Refund(\n out_trade_no=\"12313123\",\n total_fee=total_fee,\n refund_fee=refund_fee\n )\n response = refund.request()\n if refund.is_success:\n pass\n else:\n pass\n\n5 \u9000\u6b3e\u67e5\u8be2\n''''''''''\n\n.. code:: python\n\n import minipay\n\n # out_trade_no\uff0cout_refund_no\uff0ctransaction_id\u4e09\u90091\n query = minipay.RefundQuery(out_trade_no=\"asdasd\")\n query.request()\n if query.is_success:\n pass\n else:\n pass\n\n6 \u652f\u4ed8\u6210\u529f\u901a\u77e5\u5904\u7406\n''''''''''''''''''\n\n.. code:: python\n\n # \u652f\u4ed8\u901a\u77e5\u5904\u7406\n # \u5fae\u4fe1\u53d1\u8fc7\u6765\u7684\u662fXML\u683c\u5f0f\u7684\u6570\u636e\uff0c\u76f4\u63a5\u4e22\u8fdb\u7c7b\u91cc\u9762\u5904\u7406\u5373\u53ef\n # django \u793a\u4f8b\n from django.http import HttpResponse\n from models.models import PayNotice\n\n import minipay\n\n def payment_notification(request):\n notice = minipay.PaymentNotification(\n data=request.body,\n model=PayNotice,\n mode='store'\n )\n response = notice.handle()\n return HttpResponse(response, content_type='application/xml')\n\n7 \u9000\u6b3e\u6210\u529f\u901a\u77e5\u5904\u7406\n''''''''''''''''''\n\n.. code:: python\n\n import minipay\n from models.models import RefundNotice\n from django.http import HttpResponse\n\n\n def refund_notification(request):\n notice = minipay.RefundNotification(\n data=request.body,\n model=RefundNotice,\n mode='store',\n )\n response = notice.handle()\n return HttpResponse(response, content_type='application/xml')\n\n\nBaseMiniPay\nBaseMiniPay\u5bf9\u8c61\uff0c\u4f8b\u5982\u4ee5\u4e0a\u7684unified\u3001notice\u3001close\\_order\u7b49\u3002\u6709\u4e00\u4e9b\u5c5e\u6027\u548c\u65b9\u6cd5\u53ef\u4ee5\u4f7f\u7528\u3002\n\n###### .request()\n\u53d1\u8d77\u8bf7\u6c42\u52a8\u4f5c\uff0c\u8fd4\u56de\\ *.response\\_data*\\ \uff0c\u5982\u679c\u8bf7\u6c42\u4e1a\u52a1\u5931\u8d25\uff0c\u5219\u8fd4\u56de\\ *.error*\n\n###### .is\\_success \u8bf7\u6c42\u4e1a\u52a1\u662f\u5426\u6210\u529f\uff0c\u6210\u529f\u8fd4\u56deTrue\uff0c\u5931\u8d25\u8fd4\u56deFalse\u3002\n\n###### .is\\_fail \u8bf7\u6c42\u4e1a\u52a1\u662f\u5426\u5931\u8d25\uff0c\u662f\u8fd4\u56deTrue\uff0c\u5426\u8fd4\u56deFalse\u3002\n\n###### .response\\_data \u5fae\u4fe1\u7aef\u8fd4\u56de\u7684\u54cd\u5e94\u5185\u5bb9\uff0c\u4e3adict\u7c7b\u578b\u3002\n\n###### .error dict\u7c7b\u578b\uff0c\u5f53\u8bf7\u6c42\u5931\u8d25\u65f6\uff0c\u6709\u9519\u8bef\u7801code\u952e\u548c\u9519\u8bef\u8bf4\u660edesc\u952e\u3002{\"code\": \"\",\n\"desc\": \"\"}\u3002 \u5982\u679c\u8bf7\u6c42\u6210\u529f\uff0c\u5219\u4e3a\u7a7a\u5b57\u5178\n\n###### .request\\_data\\_xml \u8c03\u7528\\ *.request*\\ \u4e4b\u540e\uff0c\u518d\u8c03\u7528\u8fd9\u4e2a\u5c5e\u6027\u3002\u5b83\u8fd4\u56de\u672c\u6b21\u8bf7\u6c42\u7684\u5185\u5bb9\uff08xml\u683c\u5f0f\uff09\uff0c\u4e00\u822c\u7528\u4e8e\u5728\u5fae\u4fe1\u7b7e\u540d\u6821\u9a8c\u5de5\u5177\n\n###### .mini\\_formatted() \u8fd4\u56de\u4e00\u4e2a\u7279\u5b9a\u683c\u5f0f\u7684\u5b57\u5178\uff0c\u7528\u4e8e\u7ed9\u5c0f\u7a0b\u5e8fwx.requestPaymentAPI\u8c03\u8d77\u652f\u4ed8\u3002\u8be6\u60c5\u89c1\uff1ahttps://developers.weixin.qq.com/miniprogram/dev/api/wx.requestPayment.html", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tanjm/minipay", "keywords": "wechat,minipay,mini program,pay,sdk", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "minipay", "package_url": "https://pypi.org/project/minipay/", "platform": "any", "project_url": "https://pypi.org/project/minipay/", "project_urls": { "Homepage": "https://github.com/tanjm/minipay" }, "release_url": "https://pypi.org/project/minipay/0.1.5/", "requires_dist": null, "requires_python": "", "summary": "\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u652f\u4ed8SDK", "version": "0.1.5" }, "last_serial": 4872199, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "2be21f242cbbb92e2e938ffe28512f16", "sha256": "886a244ca3c912ef59a23da79212eeea44971b065b027f90eadea53e793e6a09" }, "downloads": -1, "filename": "minipay-0.0.10.tar.gz", "has_sig": false, "md5_digest": "2be21f242cbbb92e2e938ffe28512f16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10546, "upload_time": "2019-01-28T02:42:57", "url": "https://files.pythonhosted.org/packages/2a/4b/c63c4712e9accfb0d7411f8cfff05806923bccd709b07693d6b7c28d3d6d/minipay-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "defe6f24920ddf384dec57e00c897d7a", "sha256": "fe3c1d4da850af2085b6bcfafd0d3b5bee948355f8e7724ba1bc9b1414785229" }, "downloads": -1, "filename": "minipay-0.0.11.tar.gz", "has_sig": false, "md5_digest": "defe6f24920ddf384dec57e00c897d7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10694, "upload_time": "2019-01-28T02:51:34", "url": "https://files.pythonhosted.org/packages/24/0b/804e89d041bbd01f7f7ea2c57e2bf0582c7e987e0275db06d58d60fc8a35/minipay-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "02444979c85a8719f1b5cedcd0e40a87", "sha256": "dfeeb98a6b8e89fcd35b47e6ed0cf8f05cf4c8740f26bcd1b754490061ef8588" }, "downloads": -1, "filename": "minipay-0.0.12.tar.gz", "has_sig": false, "md5_digest": "02444979c85a8719f1b5cedcd0e40a87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10737, "upload_time": "2019-01-28T10:22:41", "url": "https://files.pythonhosted.org/packages/a8/b4/db68a53e4c36cbc3bacf528f249aa1d14cd1bf007067d20035cf73b47752/minipay-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "b19f75726ed880ae406f11f39cb6bc98", "sha256": "b19695693bff34a52edb05b0d032c9018ac151c6259104b766ed49f5dc12aa25" }, "downloads": -1, "filename": "minipay-0.0.13.tar.gz", "has_sig": false, "md5_digest": "b19f75726ed880ae406f11f39cb6bc98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10641, "upload_time": "2019-01-29T15:20:53", "url": "https://files.pythonhosted.org/packages/3f/f2/a91059b04cde7c3c515b16bd8a6fc2bd2eaca411cf475a82951fc72416aa/minipay-0.0.13.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "e4f819877e256ef27603184cf0c5e94b", "sha256": "bbab37a3e21c30146c9bc470a4150aeaf56c9e71a1149711f505657f9613168e" }, "downloads": -1, "filename": "minipay-0.0.6.tar.gz", "has_sig": false, "md5_digest": "e4f819877e256ef27603184cf0c5e94b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9052, "upload_time": "2019-01-16T10:18:35", "url": "https://files.pythonhosted.org/packages/3d/50/12a404f2bc98eb811a8f2045608483c79aef220011defc04293923a7a4f5/minipay-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "64db3f08c098aabdeca6f458586cac03", "sha256": "3da8ade2c6cd62a768532576dec9672f8cb5d40b4f27e14716aa46c8340003e8" }, "downloads": -1, "filename": "minipay-0.0.7.tar.gz", "has_sig": false, "md5_digest": "64db3f08c098aabdeca6f458586cac03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10539, "upload_time": "2019-01-18T05:08:31", "url": "https://files.pythonhosted.org/packages/29/50/41e7782803cbaf2c7926dfbabf7b947d9aa336b86f85effd0fa481520aec/minipay-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "cf4b882c7e79e4b8fee55dc1d768e96b", "sha256": "695fc8d4b6c70860e9e6ca2f8ed944290f645d61a9781d14fb72d9bd6cc066aa" }, "downloads": -1, "filename": "minipay-0.0.8.tar.gz", "has_sig": false, "md5_digest": "cf4b882c7e79e4b8fee55dc1d768e96b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10545, "upload_time": "2019-01-21T02:19:43", "url": "https://files.pythonhosted.org/packages/e3/13/4b3e6fd0041fd058defe34f1f224b73b668da62efba9f547466189e29d0f/minipay-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "6fa845262b800765881cdd10ddffbaa9", "sha256": "9f1659b6b3662681112b10d10febdadb949b278103b202313992e2572565a332" }, "downloads": -1, "filename": "minipay-0.0.9.tar.gz", "has_sig": false, "md5_digest": "6fa845262b800765881cdd10ddffbaa9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10550, "upload_time": "2019-01-28T02:38:40", "url": "https://files.pythonhosted.org/packages/34/a0/23108a2c87e33c641513d9ad2dc0ea47595cd1e458c9cbebdda266d051c9/minipay-0.0.9.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "d0d4333c4736b2429773edbc77b96c41", "sha256": "0210cd83002cd58ba264fcea194aeb671226a1065f71ff1ae7d7a866f61831ab" }, "downloads": -1, "filename": "minipay-0.1.0.tar.gz", "has_sig": false, "md5_digest": "d0d4333c4736b2429773edbc77b96c41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10945, "upload_time": "2019-02-13T08:56:02", "url": "https://files.pythonhosted.org/packages/30/0f/d5b90c95e729df81afa26e53fa7b1a4bd265659cb8777857dc9ec23be397/minipay-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "434e85c12ced514c67c92c99bc57604c", "sha256": "64d2bc71b73000c2b6010b2c24b098cb13933e6940eb37472e05e5cd3e81c516" }, "downloads": -1, "filename": "minipay-0.1.1.tar.gz", "has_sig": false, "md5_digest": "434e85c12ced514c67c92c99bc57604c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10942, "upload_time": "2019-02-13T09:05:37", "url": "https://files.pythonhosted.org/packages/22/57/49af7077b727644332f1dbd3e808a454e13557fd475c8768a2319a651d78/minipay-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "0007bb055353a58685fd8c7760c1495d", "sha256": "818fb8d55d891b5a9e58653be94d712eb1e4578a860fabb8347c21537f143b05" }, "downloads": -1, "filename": "minipay-0.1.2.tar.gz", "has_sig": false, "md5_digest": "0007bb055353a58685fd8c7760c1495d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10840, "upload_time": "2019-02-19T02:44:54", "url": "https://files.pythonhosted.org/packages/e2/78/7e42a91a2d91dc5306e2c96d300b1faca26b052ced4ae709861b386f3aa6/minipay-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "a72b4e5673bb53500735ae6dbd41e5f2", "sha256": "cbc5ac1aab5ca457c299024fe368d913d57cc4603b560882cf9a341935b1ab77" }, "downloads": -1, "filename": "minipay-0.1.3.tar.gz", "has_sig": false, "md5_digest": "a72b4e5673bb53500735ae6dbd41e5f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10892, "upload_time": "2019-02-20T11:09:12", "url": "https://files.pythonhosted.org/packages/9d/d6/e67fc6e4b98d57c804542ec33409192ef9a1b3d4e5b3f4b1464a9b7a88e9/minipay-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "804dd2433610d4d457bb633fad7ee5c0", "sha256": "785db7da52c1aab0389cfa149a4debc46dc12ce469fab89ec201d8070f8e61fb" }, "downloads": -1, "filename": "minipay-0.1.4.tar.gz", "has_sig": false, "md5_digest": "804dd2433610d4d457bb633fad7ee5c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10884, "upload_time": "2019-02-20T11:19:17", "url": "https://files.pythonhosted.org/packages/ea/da/32b8be1678d0dd36dc7096c12e7b8c52b981bf9166935f116606c6ae45c6/minipay-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "feee90ef57e87b4025e2efa6cdce942f", "sha256": "bf9664b632c6b026670986479f7edb4f10e90919f57369da9942004feba30531" }, "downloads": -1, "filename": "minipay-0.1.5.tar.gz", "has_sig": false, "md5_digest": "feee90ef57e87b4025e2efa6cdce942f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10912, "upload_time": "2019-02-27T01:45:14", "url": "https://files.pythonhosted.org/packages/a4/4d/03fce1fe11cf7a0530af5c2bd1bbc7e0768d8173eb813b7e7f4aea34a38c/minipay-0.1.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "feee90ef57e87b4025e2efa6cdce942f", "sha256": "bf9664b632c6b026670986479f7edb4f10e90919f57369da9942004feba30531" }, "downloads": -1, "filename": "minipay-0.1.5.tar.gz", "has_sig": false, "md5_digest": "feee90ef57e87b4025e2efa6cdce942f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10912, "upload_time": "2019-02-27T01:45:14", "url": "https://files.pythonhosted.org/packages/a4/4d/03fce1fe11cf7a0530af5c2bd1bbc7e0768d8173eb813b7e7f4aea34a38c/minipay-0.1.5.tar.gz" } ] }