jdTest.py 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  1. # coding=utf-8
  2. import os
  3. from collections import OrderedDict
  4. os.environ.update({"DJANGO_SETTINGS_MODULE": "configs.testing"})
  5. from base import init_env
  6. init_env(False)
  7. from apps.web.dealer.models import Dealer
  8. from apps.web.merchant.models import MerchantSourceInfo
  9. from library.jd import JDAggrePay
  10. # from apps.web.device.models import Device
  11. # from apps.web.core.services import ActionDeviceBuilder
  12. from apps.web.core.exceptions import ServiceException
  13. # dev = Device.get_dev("862167050126352")
  14. # box = ActionDeviceBuilder.create_action_device(dev)
  15. #
  16. #
  17. # # 测试几个获取功能
  18. # test_function = [
  19. # # 启动 2号
  20. # ("02A7", "000000000000000000000A00000A", u"启动2号端口"),
  21. # # 停止 2号
  22. # ("02D6", "01", u"停止2号端口"),
  23. # # 获取当前电流
  24. # ("01B3", "01", u"获取当前电流"),
  25. # # 获取标准电流
  26. # ("01C3", "01", u"获取标准电流"),
  27. # # 获取总投币消费
  28. # ("01C1", "01", u"获取总投币消费"),
  29. # # 获取刷卡消费
  30. # ("01C2", "01", u"获取刷卡消费"),
  31. # # 获取空载时间
  32. # ("01E6", "01", u"获取空载时间"),
  33. # # 获取空载功率
  34. # ("01E4", "01", u"获取空载功率"),
  35. # # 获取功率分档
  36. # ("01F2", "01", u"获取功率分档"),
  37. # # 获取时间计费规则
  38. # ("01B8", "01", u"获取时间计费规则"),
  39. # # 获取电量计费规则
  40. # ("01F7", "01", u"获取电量计费规则"),
  41. # # 获取端口状态
  42. # ("01ED", "0100", u"获取端口状态"),
  43. # # 获取端口详情
  44. # ("02EF", "00", u"获取2号端口详情"),
  45. # # 获取端口实时电量
  46. # ("01E9", "01", u"获取端口实时电量")
  47. #
  48. # ]
  49. #
  50. # for _fun in test_function:
  51. # try:
  52. # box._send_data(_fun[0], _fun[1], timeout=10)
  53. # except ServiceException:
  54. # print _fun[2]
  55. # break
  56. #
  57. # username = "18637193073"
  58. # dealer = Dealer.objects.get(username=username)
  59. # sourceRecord = MerchantSourceInfo.get_source_record(str(dealer.id))
  60. # payload = sourceRecord.to_dict()
  61. #
  62. # # 待确认的状态的时候,提供用户测试支付的url
  63. # merchantAgent = sourceRecord.merchantAgent.fetch()
  64. #
  65. # pay = JDAggrePay(
  66. # merchant_no=sourceRecord.merchantNo,
  67. # desKey=sourceRecord.desKey,
  68. # saltMd5Key=sourceRecord.mdKey,
  69. # systemId=merchantAgent.agentSystemId
  70. # )
  71. # url = pay.create_pay_static_url(notify_url=None)
  72. # print url
  73. #
  74. # dev = Device.get_dev("866262048861487")
  75. # box = ActionDeviceBuilder.create_action_device(dev)
  76. # box._stop("5", 0)
  77. # box._stop("4", 0)
  78. # box._stop("3", 0)
  79. # box._stop("2", 0)
  80. # box._stop("1", 0)
  81. #
  82. #
  83. # from apps.web.merchant.models import MerchantSourceInfo
  84. # record = MerchantSourceInfo()
  85. # record2 = MerchantSourceInfo()
  86. #
  87. # fields = [
  88. # "merchantType",
  89. # "bankCardCode",
  90. # "bankCardName",
  91. # "bankCardSubCode",
  92. # "bankCardSubName",
  93. # "bankCardUrl",
  94. # "identifyCardAUrl",
  95. # "identifyCardAddr",
  96. # "identifyCardArea",
  97. # "identifyCardAreaCode",
  98. # "identifyCardBUrl",
  99. # "identifyCardCUrl",
  100. # "identifyCardCity",
  101. # "identifyCardCityCode",
  102. # "identifyCardCode",
  103. # "identifyCardEndTime",
  104. # "identifyCardLongTime",
  105. # "identifyCardName",
  106. # "identifyCardProvince",
  107. # "identifyCardProvinceCode",
  108. # "identifyCardStartTime",
  109. # "shopAddr",
  110. # "shopArea",
  111. # "shopAreaCode",
  112. # "shopCity",
  113. # "shopCityCode",
  114. # "shopProvince",
  115. # "shopProvinceCode",
  116. # "storeAUrl",
  117. # "storeBUrl",
  118. # "storeCUrl",
  119. # "storeShotName",
  120. # ]
  121. import pandas as pd
  122. import datetime
  123. #
  124. # df = pd.DataFrame(data=records)
  125. # groupBygroup = list()
  126. # for _key, _v in df.groupby(u"地址"):
  127. #
  128. # itemOrderList = [
  129. # (u"", _key)
  130. # ]
  131. #
  132. # for __k, __v in _v.groupby(u"支付类型"):
  133. # itemOrderList.append((__k, __v[u"分得金额"].astype(float).sum()))
  134. # groupBygroup.append(
  135. # OrderedDict([
  136. # (u"地址", _key),
  137. # (u"分得金额", _v[u"分得金额"].astype(float).sum()),
  138. # (u"总金额", _v[u"总金额"].astype(float).sum()),
  139. # (u"订单数量", len(_v))
  140. # ])
  141. # )
  142. # itemOrderList.append((u"分得金额", _v[u"分得金额"].astype(float)))
  143. # groupBygroup.append(OrderedDict(itemOrderList))
  144. # df2 = pd.DataFrame(data=groupBygroup)
  145. #
  146. #
  147. # writer = pd.ExcelWriter("C:/Users/Administrator/Desktop/test.xlsx")
  148. # df.to_excel(writer, sheet_name="1")
  149. # df2.to_excel(writer, sheet_name="2", index=False)
  150. #
  151. # writer.save()
  152. # dev = Device.get_dev("866262048861487")
  153. # box = ActionDeviceBuilder.create_action_device(dev)
  154. # box._stop("5", 0)
  155. # box._stop("4", 0)
  156. # box._stop("3", 0)
  157. # box._stop("2", 0)
  158. # box._stop("1", 0)
  159. #
  160. #
  161. # from apps.web.merchant.models import MerchantSourceInfo
  162. # record = MerchantSourceInfo()
  163. # record2 = MerchantSourceInfo()
  164. #
  165. # fields = [
  166. # "merchantType",
  167. # "bankCardCode",
  168. # "bankCardName",
  169. # "bankCardSubCode",
  170. # "bankCardSubName",
  171. # "bankCardUrl",
  172. # "identifyCardAUrl",
  173. # "identifyCardAddr",
  174. # "identifyCardArea",
  175. # "identifyCardAreaCode",
  176. # "identifyCardBUrl",
  177. # "identifyCardCUrl",
  178. # "identifyCardCity",
  179. # "identifyCardCityCode",
  180. # "identifyCardCode",
  181. # "identifyCardEndTime",
  182. # "identifyCardLongTime",
  183. # "identifyCardName",
  184. # "identifyCardProvince",
  185. # "identifyCardProvinceCode",
  186. # "identifyCardStartTime",
  187. # "shopAddr",
  188. # "shopArea",
  189. # "shopAreaCode",
  190. # "shopCity",
  191. # "shopCityCode",
  192. # "shopProvince",
  193. # "shopProvinceCode",
  194. # "storeAUrl",
  195. # "storeBUrl",
  196. # "storeCUrl",
  197. # "storeShotName",
  198. # ]
  199. # data = {
  200. # 'businessCode': 'MEMBER',#
  201. # 'subTradeType': 'SALE', #
  202. # 'merchantNo': '115825387',#
  203. # 'tradeRefundNo': u'',
  204. # 'payFinishTime': '20210419115823',
  205. # 'couponAmount': 0,
  206. # 'currency': 'RMB',#
  207. # 'amount': 1,
  208. # 'version': 'V3.0',
  209. # 'outRefundNo': u'',
  210. # 'outTradeNo': '20210419115814PQ0000000888999PU0',
  211. # 'tradeNo': '167218067175',
  212. # 'payStatus': 'FINISH',
  213. # 'resultCode': 'SUCCESS',
  214. # 'piAmount': 1,
  215. # 'merchantCouponAmount': 0
  216. # }
  217. # from apps.web.common.transaction.pay.jdaggre import JDJosPayRecordPoller
  218. # from apps.web.user.models import RechargeRecord
  219. # record = RechargeRecord.objects.get(orderNo="20210420121631PQ0000000888999TU3")
  220. # from apps.web.core.payment import PaymentGateway
  221. # payment_gateway = PaymentGateway.from_gateway_key(
  222. # record.gateway,
  223. # record.payGatewayKey,
  224. # record.payAppType) # type: cast(PaymentGateway)
  225. # from pprint import pprint
  226. #
  227. # pprint(JDJosPayRecordPoller("", "", "", "", "").action_of_pay(payment_gateway, record))
  228. # from apps.web.core.adapter.huopo import MoneyCaculation
  229. # print MoneyCaculation(duration="1410", unit=u"分钟", package={"1": {"maxHour": 24, "price": 2, "unit": u"小时"}}).calculate()
  230. # from library.jd.pay import JDJosPay
  231. # from apps.web.core.payment import PaymentGateway
  232. # from apps.web.user.models import RechargeRecord
  233. #
  234. # recharge_record = RechargeRecord.objects.get(id="60890caf977059b6795415ae")
  235. #
  236. # payGateway = PaymentGateway.from_gateway_key(
  237. # recharge_record.gateway,
  238. # recharge_record.payGatewayKey,
  239. # recharge_record.payAppType)
  240. #
  241. # payApp = payGateway.app
  242. # josPayApp = payApp.josPayApp.fetch() # type: JDAggrePayApp
  243. #
  244. # client = JDJosPay(
  245. # josPayApp.merchant_no,
  246. # josPayApp.desKey,
  247. # josPayApp.saltMd5Key,
  248. # josPayApp.systemId,
  249. # josPayApp.debug
  250. # )
  251. #
  252. # setattr(client, "shopInfo", josPayApp.shopInfo)
  253. #
  254. # result = client.api_trade_refund(recharge_record.orderNo, "1234567890112333", 1)
  255. # print 1
  256. # print result