{ "info": { "author": "adison", "author_email": "adison5321@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: MacOS", "Operating System :: POSIX", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities" ], "description": "python \u652f\u4ed8\u6574\u5408\u5f00\u53d1\u5305\n=====================\n\n\u8f7b\u91cf\u7ea7\u652f\u4ed8\u65b9\u5f0f\u6574\u5408\u96c6\u6210\uff0c\u5b9e\u73b0\u652f\u4ed8\u4e0e\u4e1a\u52a1\u5b8c\u5168\u5265\u79bb\uff0c\u5feb\u901f\u7b80\u5355\u5b8c\u6210\u652f\u4ed8\u6a21\u5757\u7684\u5f00\u53d1\n\n\u7279\u6027\n----\n\n1. \u5c4f\u853d\u652f\u4ed8\u65b9\u5f0f\u4e4b\u95f4\u63a5\u5165API\u548c\u6570\u636e\u7ed3\u6784\u7684\u5dee\u5f02\uff0c\u7edf\u4e00API\u548c\u6570\u636e\u7ed3\u6784\n2. \u652f\u6301\u652f\u4ed8\u7c7b\u578b\u6a2a\u5411\u6269\u5c55\n3. \u7edf\u4e00\u5f02\u5e38\u5904\u7406\n\n\u652f\u6301\u652f\u4ed8\u65b9\u5f0f\u53ca\u529f\u80fd\n------------------\n\n\u652f\u4ed8\u65b9\u5f0f\n~~~~~~~~\n\n- \u652f\u4ed8\u5b9d(\\ ``pay_type=ali_pay``)\n- \u5fae\u4fe1\u652f\u4ed8(\\ ``pay_type=wx_pay``)\n\n\u901a\u7528\u529f\u80fd\n~~~~~~~~\n\n- `\u7535\u8111\u7f51\u7ad9\u652f\u4ed8 <#trade_page_pay>`__\n- `\u624b\u673a\u7f51\u7ad9\u652f\u4ed8 <#trade_wap_pay>`__\n- `APP\u652f\u4ed8 <#trade_app_pay>`__\n- `\u5f02\u6b65\u901a\u77e5\u6821\u9a8c <#parse_and_verify_result>`__\n- `\u4ea4\u6613\u67e5\u8be2 <#trade_query>`__\n- `\u4ea4\u6613\u53d6\u6d88 <#trade_cancel>`__\n- `\u9000\u6b3e <#trade_refund>`__\n- `\u9000\u6b3e\u67e5\u8be2 <#trade_refund_query>`__\n\n\u5e73\u53f0\u7279\u6709\u529f\u80fd\n~~~~~~~~~~~~\n\n- `\u5fae\u4fe1JS\u652f\u4ed8 <#trade_js_pay>`__\n- `\u5fae\u4fe1\u4f01\u4e1a\u4ed8\u6b3e\u5230\u96f6\u94b1 <#enterprise_pay>`__\n\n\u4f7f\u7528\u8bf4\u660e\n--------\n\n\u6838\u5fc3\u8bf4\u660e\n~~~~~~~~\n\n- \u914d\u7f6e(dict)\n\n.. code:: shell\n\n ALIPAY_CONFIG = {\n 'pay_type': 'ali_pay', # \u5fc5\u586b \u533a\u5206\u652f\u4ed8\u7c7b\u578b\n 'app_id': 'xxx', #\u5fc5\u586b \u5e94\u7528id\n 'private_key_path': 'xxx', #\u5fc5\u586b \u79c1\u94a5\n 'public_key_path': 'xxx',#\u5fc5\u586b \u516c\u94a5\n 'notify_url': 'xxx',# \u5f02\u6b65\u56de\u8c03\u5730\u5740\n 'sign_type': 'RSA2', # \u7b7e\u540d\u7b97\u6cd5 RSA \u6216\u8005 RSA2\n 'debug': False, # \u662f\u5426\u662f\u6c99\u7bb1\u6a21\u5f0f\n }\n\n WECHAT_CONFIG = {\n 'pay_type': 'wx_pay', # \u5fc5\u586b \u533a\u5206\u652f\u4ed8\u7c7b\u578b\n 'app_id': 'xxx', # \u5fc5\u586b,\u5e94\u7528id\n 'mch_key': 'xxx', # \u5fc5\u586b,\u5546\u6237\u5e73\u53f0\u5bc6\u94a5\n 'mch_id': 'xxx', # \u5fc5\u586b,\u5fae\u4fe1\u652f\u4ed8\u5206\u914d\u7684\u5546\u6237\u53f7\n 'app_secret': 'xxx', # \u5e94\u7528\u5bc6\u94a5\n 'notify_url': 'xxx'# \u5f02\u6b65\u56de\u8c03\u5730\u5740\n 'api_cert_path': 'xxx', # API\u8bc1\u4e66\n 'api_key_path': 'xxx' # API\u8bc1\u4e66 key\n }\n\n\u5176\u4e2d\n``pay_type``\\ \u4e3a\u672c\u9879\u76ee\u6240\u9700\uff0c\u7528\u6765\u533a\u5206\u652f\u4ed8\u7c7b\u578b\uff0c\u5176\u4f59\u4e3a\u5bf9\u5e94\u652f\u4ed8\u65b9\u5f0f\u6240\u9700\u914d\u7f6e\u53c2\u6570\uff0c\u5177\u4f53\u53c2\u8003\u5bf9\u5e94\u652f\u4ed8\u65b9\u5f0f\u5bf9\u5e94\u7684\u5b98\u65b9\u6587\u6863\u3002\n\n- `Pay `__\n\n**\u652f\u4ed8\u7f51\u5173\uff0c\u652f\u4ed8\u65b9\u5f0f\u5206\u914d\u548c\u8f6c\u53d1\u5165\u53e3**\n\n- `PayOrder `__\n\n**\u7edf\u4e00\u5c01\u88c5\u652f\u4ed8\u8ba2\u5355\u4fe1\u606f\uff0c\u4e3b\u8981\u7528\u4e8e\u652f\u4ed8\u4e0b\u5355** \u751f\u6210\u7edf\u4e00\u8ba2\u5355\u4f8b\u5b50\n\n.. code:: python\n\n order = PayOrder.Builder().subject('\u5546\u54c1\u6807\u9898') .out_trade_no('\u5546\u54c1\u8ba2\u5355\u53f7').total_fee('\u5546\u54c1\u8d39\u7528').build()\n\n\u901a\u8fc7\\ ``Builder\u6a21\u5f0f+\u94fe\u5f0f\u8c03\u7528``\\ \u7075\u6d3b\u7ec4\u5408\u901a\u7528\u53c2\u6570\u548c\u7279\u6b8a\u53c2\u6570\n\u66f4\u591a\u53c2\u6570\u8bf4\u660e\u53c2\u89c1\\ `\u6e90\u7801 `__\n\n- `PayResponse `__\n\n\u662f\\ **\u7edf\u4e00\u5c01\u88c5\u652f\u4ed8\u8fd4\u56de\u4e1a\u52a1\u4fe1\u606f\uff0c\u4e3b\u8981\u7528\u4e8e\u652f\u4ed8\u67e5\u8be2**\n\n\u751f\u6210\u7edf\u4e00\u56de\u5355\u4f8b\u5b50\n\n.. code:: python\n\n response = PayResponse.Builder().trade_no('\u5e73\u53f0\u8ba2\u5355\u53f7').out_trade_no('\u5546\u5bb6\u8ba2\u5355\u53f7').build()\n\n\u901a\u8fc7\\ ``Builder\u6a21\u5f0f+\u94fe\u5f0f\u8c03\u7528``\\ \u7075\u6d3b\u7ec4\u5408\u901a\u7528\u53c2\u6570\u548c\u7279\u6b8a\u53c2\u6570\n\u66f4\u591a\u53c2\u6570\u8bf4\u660e\u53c2\u89c1\\ `\u6e90\u7801 `__\n\ndemo\n~~~~\n\n.. code:: python\n\n ALIPAY_CONFIG = {\n 'pay_type': 'ali_pay', # \u5fc5\u586b \u533a\u5206\u652f\u4ed8\u7c7b\u578b\n 'app_id': 'xxx', #\u5fc5\u586b \u5e94\u7528id\n 'private_key_path': 'xxx', #\u5fc5\u586b \u79c1\u94a5\n 'public_key_path': 'xxx',#\u5fc5\u586b \u516c\u94a5\n 'notify_url': 'xxx',# \u5f02\u6b65\u56de\u8c03\u5730\u5740\n 'sign_type': 'RSA2', # \u7b7e\u540d\u7b97\u6cd5 RSA \u6216\u8005 RSA2\n 'debug': False, # \u662f\u5426\u662f\u6c99\u7bb1\u6a21\u5f0f\n }\n # \u989d\u5916\u53c2\u6570\uff0c\u67d0\u4e9b\u652f\u4ed8\u65b9\u5f0f\u6709\u4e9b\u9009\u586b\u7684\u53c2\u6570\u5728PayOrder\u5e76\u6ca1\u6709\u5c01\u88c5\uff0c\u53ef\u4ee5\u81ea\u884c\u4f20\u9012\n extra_params= {\n 'xxx':'xxx'\n 'xxx':'xxx'\n 'xxx':'xxx'\n }\n order = PayOrder.Builder().subject('\u5546\u54c1\u6807\u9898') .out_trade_no('\u5546\u54c1\u8ba2\u5355\u53f7').total_fee('\u5546\u54c1\u8d39\u7528').build()\n pay = Pay(ALIPAY_CONFIG) # \u4f20\u5165\u5bf9\u5e94\u652f\u4ed8\u65b9\u5f0f\u914d\u7f6e\n order_res= pay.trade_page_pay(order,extra_params)# \u4f20\u5165\u5bf9\u5e94\u8ba2\u5355\u548c\u989d\u5916\u53c2\u6570\uff08\u8981\u662f\u9700\u8981\uff09\n\n\u529f\u80fd\u8bf4\u660e\n~~~~~~~~\n\n\u7535\u8111\u7f51\u7ad9\u652f\u4ed8[trade\\_page\\_pay]\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n pay = Pay(ALIPAY_CONFIG) # \u4f20\u5165\u5bf9\u5e94\u652f\u4ed8\u65b9\u5f0f\u914d\u7f6e\n order_res= pay.trade_page_pay(order)# \u4f20\u5165\u5bf9\u5e94\u8ba2\u5355\n\n\u624b\u673a\u7f51\u7ad9\u652f\u4ed8[trade\\_wap\\_pay]\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n pay = Pay(ALIPAY_CONFIG) # \u4f20\u5165\u5bf9\u5e94\u652f\u4ed8\u65b9\u5f0f\u914d\u7f6e\n order_res= pay.trade_wap_pay(order)# \u4f20\u5165\u5bf9\u5e94\u8ba2\u5355\n\nAPP\u652f\u4ed8[trade\\_app\\_pay]\n^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n pay = Pay(ALIPAY_CONFIG) # \u4f20\u5165\u5bf9\u5e94\u652f\u4ed8\u65b9\u5f0f\u914d\u7f6e\n order_res= pay.trade_app_pay(order)# \u4f20\u5165\u5bf9\u5e94\u8ba2\u5355\n\n\u5f02\u6b65\u901a\u77e5\u6821\u9a8c[parse\\_and\\_verify\\_result]\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n # \u4f20\u5165\u5bf9\u5e94\u652f\u4ed8\u65b9\u5f0f\u914d\u7f6e\n pay = Pay(WECHAT_CONFIG)\n # \u4f20\u5165\u5bf9\u5e94\u652f\u4ed8\u65b9\u5f0f\u8fd4\u56de\u7684\u539f\u59cb\u6570\u636e\uff0c\u6821\u9a8c\u6210\u529f\u4f1a\u8fd4\u56de\u89e3\u6790\u6210json\u6570\u636e\n data = pay.parse_and_verify_result(req_xml)\n\n\u5fae\u4fe1JS\u652f\u4ed8[trade\\_js\\_pay]\n^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n # \u4f20\u5165\u5bf9\u5e94\u652f\u4ed8\u65b9\u5f0f\u914d\u7f6e\n pay = Pay(WECHAT_CONFIG)\n # \u4f20\u5165\u5bf9\u5e94\u8ba2\u5355\n data = pay.trade_js_pay(order)\n\n\u5fae\u4fe1\u4f01\u4e1a\u4ed8\u6b3e\u5230\u96f6\u94b1[enterprise\\_pay]\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n # \u4f20\u5165\u5bf9\u5e94\u652f\u4ed8\u65b9\u5f0f\u914d\u7f6e\n pay = Pay(WECHAT_CONFIG)\n # \u4f20\u5165\u5bf9\u5e94\u8ba2\u5355\n data = pay.enterprise_pay(order)\n\n\u4ea4\u6613\u67e5\u8be2[trade\\_query]\n^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n # \u4f20\u5165\u5bf9\u5e94\u652f\u4ed8\u65b9\u5f0f\u914d\u7f6e\n pay = Pay(WECHAT_CONFIG)\n # \u4f20\u5165\u5bf9\u5e94\u56de\u5355\u4fe1\u606f\n data = pay.trade_query(response)\n\n\u4ea4\u6613\u53d6\u6d88[trade\\_cancel]\n^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n # \u4f20\u5165\u5bf9\u5e94\u652f\u4ed8\u65b9\u5f0f\u914d\u7f6e\n pay = Pay(WECHAT_CONFIG)\n # \u4f20\u5165\u5bf9\u5e94\u56de\u5355\u4fe1\u606f\n data = pay.trade_cancel(response)\n\n\u9000\u6b3e[trade\\_refund]\n^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n # \u4f20\u5165\u5bf9\u5e94\u652f\u4ed8\u65b9\u5f0f\u914d\u7f6e\n pay = Pay(WECHAT_CONFIG)\n # \u4f20\u5165\u5bf9\u5e94\u56de\u5355\u4fe1\u606f\n data = pay.trade_refund(response)\n\n\u9000\u6b3e\u67e5\u8be2[trade\\_refund\\_query]\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n # \u4f20\u5165\u5bf9\u5e94\u652f\u4ed8\u65b9\u5f0f\u914d\u7f6e\n pay = Pay(WECHAT_CONFIG)\n # \u4f20\u5165\u5bf9\u5e94\u56de\u5355\u4fe1\u606f\n data = pay.trade_refund_query(response)\n\n\u8d21\u732e\n----\n\n\u672c\u9879\u76ee\u76ee\u524d\u652f\u6301\u7684\u652f\u4ed8\u65b9\u5f0f\u548cAPI\u8fd8\u4e0d\u591a\uff0c\u6b22\u8fce\u4f60\u7ed9\u672c\u9879\u76ee\u63d0pull\nrequest\uff0c\u6269\u5c55\u65b0\u7684\u7684\u652f\u4ed8\u63a5\u53e3\uff0c\u540c\u65f6\u5982\u679c\u4f60\u6709\u597d\u7684\u610f\u89c1\u6216\u5efa\u8bae\uff0c\u4e5f\u6b22\u8fce\u7ed9\u672c\u9879\u76ee\u63d0issue\n\n\u58f0\u660e\uff1a\n------\n\n\u672c\u9879\u76ee\u4e3b\u8981\u76ee\u6807\u7684\u662f\u652f\u4ed8\u6574\u5408\uff0c\u7edf\u4e00\u652f\u4ed8API\u548c\u6570\u636e\u7ed3\u6784\uff0c\u5728\u5177\u4f53\u652f\u4ed8\u6a21\u5757\u7684\u63a5\u5165\u5b9e\u73b0\u53c2\u8003\u4e86\u4e00\u4e9b\u5f00\u6e90\u9879\u76ee\n\n\u652f\u4ed8\u5b9d\u6a21\u5757\u57fa\u4e8e\\ `python-alipay-sdk `__\n\n\u5fae\u4fe1\u6a21\u5757\u57fa\u4e8e\\ `wx\\_pay\\_python `__\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/adisonhuang/pay-python", "keywords": "WeChatpay,AliPay,Pay", "license": "MIT", "maintainer": "adison", "maintainer_email": "adison5321@gmail.com", "name": "all-pay", "package_url": "https://pypi.org/project/all-pay/", "platform": "", "project_url": "https://pypi.org/project/all-pay/", "project_urls": { "Homepage": "https://github.com/adisonhuang/pay-python" }, "release_url": "https://pypi.org/project/all-pay/1.0.3/", "requires_dist": [ "requests (==2.21.0)", "pycryptodome (==3.7.2)", "xmltodict (==0.11.0)" ], "requires_python": "", "summary": "Python SDK for multi pay ,such as AliPay\u3001WeChatpay", "version": "1.0.3" }, "last_serial": 4849059, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "2ee24a33415e1cfbddc24d54c1600009", "sha256": "54e5ca257b7a49e1767c92fe02a09045154f7bf51f399ee07e94fad20b6f8aab" }, "downloads": -1, "filename": "all_pay-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2ee24a33415e1cfbddc24d54c1600009", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16343, "upload_time": "2019-01-21T07:42:44", "url": "https://files.pythonhosted.org/packages/4e/73/e01cb12248973bf1d0856a712b5f3e5174189871a518f88d0b404d099646/all_pay-1.0.0-py2.py3-none-any.whl" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "822622d515248e2c04bdd8d0386141c2", "sha256": "4ab477ae8d15f0ab9b1279d3c3db4ce5e3a289aa784716ceb4679def77415ee3" }, "downloads": -1, "filename": "all_pay-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "822622d515248e2c04bdd8d0386141c2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16352, "upload_time": "2019-01-21T07:48:52", "url": "https://files.pythonhosted.org/packages/c4/ab/e9192d0aca2fa9124268d11b59fa3ab3554a5b05b48742fe7f5cbfd5aaa4/all_pay-1.0.1-py2.py3-none-any.whl" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "1f3a6d8c6e1407ea10c203e0e9c7afd7", "sha256": "ec8b0dbd790bbd9f79b5354f3540dd24b1f4f338f640f492138a982f43370283" }, "downloads": -1, "filename": "all_pay-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1f3a6d8c6e1407ea10c203e0e9c7afd7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16370, "upload_time": "2019-02-21T07:41:45", "url": "https://files.pythonhosted.org/packages/10/6c/e1c329354e7f742d3c159cf374c08153288cf3a0916c41d00ea41bb9608d/all_pay-1.0.2-py2.py3-none-any.whl" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "0b3b0c968cd528fdd38ec8c1b940bb08", "sha256": "13e837206c487c22d901baf74d70ae3bce27f94b9ee5f68c9c82567a4deced15" }, "downloads": -1, "filename": "all_pay-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0b3b0c968cd528fdd38ec8c1b940bb08", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16380, "upload_time": "2019-02-21T08:06:17", "url": "https://files.pythonhosted.org/packages/cd/59/4d0b15a5dc564458dc494ba35800760adbf61214eabc291a1a7729476f60/all_pay-1.0.3-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0b3b0c968cd528fdd38ec8c1b940bb08", "sha256": "13e837206c487c22d901baf74d70ae3bce27f94b9ee5f68c9c82567a4deced15" }, "downloads": -1, "filename": "all_pay-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0b3b0c968cd528fdd38ec8c1b940bb08", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16380, "upload_time": "2019-02-21T08:06:17", "url": "https://files.pythonhosted.org/packages/cd/59/4d0b15a5dc564458dc494ba35800760adbf61214eabc291a1a7729476f60/all_pay-1.0.3-py2.py3-none-any.whl" } ] }