METADATA 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. Metadata-Version: 2.0
  2. Name: alipay-sdk-python
  3. Version: 3.3.398
  4. Summary: The official Aliyun SDK for Python.
  5. Home-page: https://github.com/alipay/alipay-sdk-python-all
  6. Author: antopen
  7. Author-email: antopen@aliyun.com
  8. License: Apache
  9. Keywords: alipay,sdk
  10. Platform: any
  11. Classifier: Intended Audience :: Developers
  12. Classifier: License :: OSI Approved :: Apache Software License
  13. Classifier: Programming Language :: Python
  14. Classifier: Programming Language :: Python :: 2.6
  15. Classifier: Programming Language :: Python :: 2.7
  16. Classifier: Programming Language :: Python :: 3
  17. Classifier: Programming Language :: Python :: 3.3
  18. Classifier: Topic :: Software Development
  19. Requires-Dist: pycrypto
  20. Requires-Dist: rsa
  21. alipay-sdk-python
  22. ==================
  23. The official Alipay SDK for Python.
  24. 访问蚂蚁金服开放平台的官方SDK。
  25. Links
  26. -----
  27. * Website: https://open.alipay.com
  28. Example
  29. ----------------
  30. .. code-block:: python
  31. #!/usr/bin/env python
  32. # -*- coding: utf-8 -*-
  33. import logging
  34. import traceback
  35. from alipay.aop.api.AlipayClientConfig import AlipayClientConfig
  36. from alipay.aop.api.DefaultAlipayClient import DefaultAlipayClient
  37. from alipay.aop.api.FileItem import FileItem
  38. from alipay.aop.api.domain.AlipayTradeAppPayModel import AlipayTradeAppPayModel
  39. from alipay.aop.api.domain.AlipayTradePagePayModel import AlipayTradePagePayModel
  40. from alipay.aop.api.domain.AlipayTradePayModel import AlipayTradePayModel
  41. from alipay.aop.api.domain.GoodsDetail import GoodsDetail
  42. from alipay.aop.api.domain.SettleDetailInfo import SettleDetailInfo
  43. from alipay.aop.api.domain.SettleInfo import SettleInfo
  44. from alipay.aop.api.domain.SubMerchant import SubMerchant
  45. from alipay.aop.api.request.AlipayOfflineMaterialImageUploadRequest import AlipayOfflineMaterialImageUploadRequest
  46. from alipay.aop.api.request.AlipayTradeAppPayRequest import AlipayTradeAppPayRequest
  47. from alipay.aop.api.request.AlipayTradePagePayRequest import AlipayTradePagePayRequest
  48. from alipay.aop.api.request.AlipayTradePayRequest import AlipayTradePayRequest
  49. from alipay.aop.api.response.AlipayOfflineMaterialImageUploadResponse import AlipayOfflineMaterialImageUploadResponse
  50. from alipay.aop.api.response.AlipayTradePayResponse import AlipayTradePayResponse
  51. logging.basicConfig(
  52. level=logging.INFO,
  53. format='%(asctime)s %(levelname)s %(message)s',
  54. filemode='a',)
  55. logger = logging.getLogger('')
  56. if __name__ == '__main__':
  57. """
  58. 设置配置,包括支付宝网关地址、app_id、应用私钥、支付宝公钥等,其他配置值可以查看AlipayClientConfig的定义。
  59. """
  60. alipay_client_config = AlipayClientConfig()
  61. alipay_client_config.server_url = 'https://openapi.alipay.com/gateway.do'
  62. alipay_client_config.app_id = '[your app_id]'
  63. alipay_client_config.app_private_key = '[your app private key]'
  64. alipay_client_config.alipay_public_key = '[alipay public key]'
  65. """
  66. 得到客户端对象。
  67. 注意,一个alipay_client_config对象对应一个DefaultAlipayClient,定义DefaultAlipayClient对象后,alipay_client_config不得修改,如果想使用不同的配置,请定义不同的DefaultAlipayClient。
  68. logger参数用于打印日志,不传则不打印,建议传递。
  69. """
  70. client = DefaultAlipayClient(alipay_client_config=alipay_client_config, logger=logger)
  71. """
  72. 系统接口示例:alipay.trade.pay
  73. """
  74. # 对照接口文档,构造请求对象
  75. model = AlipayTradePayModel()
  76. model.auth_code = "282877775259787048"
  77. model.body = "Iphone6 16G"
  78. goods_list = list()
  79. goods1 = GoodsDetail()
  80. goods1.goods_id = "apple-01"
  81. goods1.goods_name = "ipad"
  82. goods1.price = 10
  83. goods1.quantity = 1
  84. goods_list.append(goods1)
  85. model.goods_detail = goods_list
  86. model.operator_id = "yx_001"
  87. model.out_trade_no = "20180510AB014"
  88. model.product_code = "FACE_TO_FACE_PAYMENT"
  89. model.scene = "bar_code"
  90. model.store_id = ""
  91. model.subject = "huabeitest"
  92. model.timeout_express = "90m"
  93. model.total_amount = 1
  94. request = AlipayTradePayRequest(biz_model=model)
  95. # 如果有auth_token、app_auth_token等其他公共参数,放在udf_params中
  96. # udf_params = dict()
  97. # from alipay.aop.api.constant.ParamConstants import *
  98. # udf_params[P_APP_AUTH_TOKEN] = "xxxxxxx"
  99. # request.udf_params = udf_params
  100. # 执行请求,执行过程中如果发生异常,会抛出,请打印异常栈
  101. response_content = None
  102. try:
  103. response_content = client.execute(request)
  104. except Exception as e:
  105. print(traceback.format_exc())
  106. if not response_content:
  107. print("failed execute")
  108. else:
  109. response = AlipayTradePayResponse()
  110. # 解析响应结果
  111. response.parse_response_content(response_content)
  112. print(response.body)
  113. if response.is_success():
  114. # 如果业务成功,则通过respnse属性获取需要的值
  115. print("get response trade_no:" + response.trade_no)
  116. else:
  117. # 如果业务失败,则从错误码中可以得知错误情况,具体错误码信息可以查看接口文档
  118. print(response.code + "," + response.msg + "," + response.sub_code + "," + response.sub_msg)
  119. """
  120. 带文件的系统接口示例:alipay.offline.material.image.upload
  121. """
  122. # 如果没有找到对应Model类,则直接使用Request类,属性在Request类中
  123. request = AlipayOfflineMaterialImageUploadRequest()
  124. request.image_name = "我的店"
  125. request.image_type = "jpg"
  126. # 设置文件参数
  127. f = open("/Users/foo/Downloads/IMG.jpg", "rb")
  128. request.image_content = FileItem(file_name="IMG.jpg", file_content=f.read())
  129. f.close()
  130. response_content = None
  131. try:
  132. response_content = client.execute(request)
  133. except Exception as e:
  134. print(traceback.format_exc())
  135. if not response_content:
  136. print("failed execute")
  137. else:
  138. response = AlipayOfflineMaterialImageUploadResponse()
  139. response.parse_response_content(response_content)
  140. if response.is_success():
  141. print("get response image_url:" + response.image_url)
  142. else:
  143. print(response.code + "," + response.msg + "," + response.sub_code + "," + response.sub_msg)
  144. """
  145. 页面接口示例:alipay.trade.page.pay
  146. """
  147. # 对照接口文档,构造请求对象
  148. model = AlipayTradePagePayModel()
  149. model.out_trade_no = "pay201805020000226"
  150. model.total_amount = 50
  151. model.subject = "测试"
  152. model.body = "支付宝测试"
  153. model.product_code = "FAST_INSTANT_TRADE_PAY"
  154. settle_detail_info = SettleDetailInfo()
  155. settle_detail_info.amount = 50
  156. settle_detail_info.trans_in_type = "userId"
  157. settle_detail_info.trans_in = "2088302300165604"
  158. settle_detail_infos = list()
  159. settle_detail_infos.append(settle_detail_info)
  160. settle_info = SettleInfo()
  161. settle_info.settle_detail_infos = settle_detail_infos
  162. model.settle_info = settle_info
  163. sub_merchant = SubMerchant()
  164. sub_merchant.merchant_id = "2088301300153242"
  165. model.sub_merchant = sub_merchant
  166. request = AlipayTradePagePayRequest(biz_model=model)
  167. # 得到构造的请求,如果http_method是GET,则是一个带完成请求参数的url,如果http_method是POST,则是一段HTML表单片段
  168. response = client.page_execute(request, http_method="GET")
  169. print("alipay.trade.page.pay response:" + response)
  170. """
  171. 构造唤起支付宝客户端支付时传递的请求串示例:alipay.trade.app.pay
  172. """
  173. model = AlipayTradeAppPayModel()
  174. model.timeout_express = "90m"
  175. model.total_amount = "9.00"
  176. model.seller_id = "2088301194649043"
  177. model.product_code = "QUICK_MSECURITY_PAY"
  178. model.body = "Iphone6 16G"
  179. model.subject = "iphone"
  180. model.out_trade_no = "201800000001201"
  181. request = AlipayTradeAppPayRequest(biz_model=model)
  182. response = client.sdk_execute(request)
  183. print("alipay.trade.app.pay response:" + response)