123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- # -*- coding: utf-8 -*-
- # !/usr/bin/env python
- from library.jdbase.exceptions import JDException
- from library.jdopen import WithdrawMode
- from library.jdopen.client.api.base import BaseJdOpenAPI
- class JdOpenSettle(BaseJdOpenAPI):
- def create_account(
- self, customerNum, bankAccountName, bankAccountNum, province, city, bankName, bankBranchName,
- settleAmount, payBankList, accountType, phone,
- privateType = None, settlerCertificateCode = None, settlerCertificateStartDate = None,
- settlerCertificateEndDate = None
- ):
- """
- 创建结算账户
- """
- url = "/v2/agent/declare/settleinfo/create"
- data = {
- "customerNum": customerNum,
- "bankAccountName": bankAccountName,
- "bankAccountNum": bankAccountNum,
- "province": province,
- "city": city,
- "bankName": bankName,
- "bankBranchName": bankBranchName,
- "settleAmount": settleAmount,
- "accountType": accountType,
- "phone": phone,
- "privateType": privateType,
- "settlerCertificateCode": settlerCertificateCode,
- "settlerCertificateStartDate": settlerCertificateStartDate,
- "settlerCertificateEndDate": settlerCertificateEndDate
- }
- sendData = {_k: str(_v) for _k, _v in data.items() if _v is not None}
- sendData["payBankList"] = payBankList
- return self._post(url, data = sendData)
- def modify_account(
- self, settleNum, customerNum, bankAccountName, bankAccountNum, province, city, bankName, bankBranchName,
- settleAmount, payBankList, accountType, phone,
- privateType = None, settlerCertificateCode = None, settlerCertificateStartDate = None,
- settlerCertificateEndDate = None
- ):
- """
- 修改结算账户
- """
- url = "/v2/agent/declare/settleinfo/modify"
- data = {
- "settleNum": settleNum,
- "customerNum": customerNum,
- "bankAccountName": bankAccountName,
- "bankAccountNum": bankAccountNum,
- "province": province,
- "city": city,
- "bankName": bankName,
- "bankBranchName": bankBranchName,
- "settleAmount": settleAmount,
- "accountType": accountType,
- "phone": phone,
- "privateType": privateType,
- "settlerCertificateCode": settlerCertificateCode,
- "settlerCertificateStartDate": settlerCertificateStartDate,
- "settlerCertificateEndDate": settlerCertificateEndDate
- }
- sendData = {_k: str(_v) for _k, _v in data.items() if _v is not None}
- sendData["payBankList"] = payBankList
- return self._post(url, data = sendData)
- def get_account(self, settleNum):
- """
- 获取结算账户信息
- """
- return self._post("/v1/agent/declare/settleinfo/{}".format(settleNum))
- def query_settle(self, customerNum, startTime, endTime, pageNum = 1, pageSize = 10):
- def processor(self, result):
- if result['result'] == 'error':
- raise JDException(
- errCode = result['error'].get('errorCode'),
- errMsg = result['error'].get("errorMsg"),
- client = self)
- else:
- return result
- url = '/api/queryAllSettleInfo'
- data = {
- "customerNum": customerNum,
- "queryStartTime": startTime.strftime('%Y-%m-%d %H:%M:%S'),
- "queryEndTime": endTime.strftime('%Y-%m-%d %H:%M:%S'),
- "pageNum": pageNum,
- "pageSize": pageSize
- }
- return self._post(url = url, data = data, processor = processor)
- def set_settle_way(self, customerNum, settleWay):
- from library.jdopen import SettleWay
- assert settleWay in SettleWay.choices(), u'settle way must be MANUAL or AUTOMATIC'
- url = "/agent/settle/way/set"
- data = {
- "agentNum": self.agentNum,
- "customerNum": customerNum,
- "remitWay": settleWay
- }
- return self._post(url = url, data = data)
- def query_settle_way(self, customerNum):
- url = "/agent/settle/way/query"
- data = {
- "agentNum": self.agentNum,
- "customerNum": customerNum
- }
- return self._post(url = url, data = data)
- def query_balance(self, customerNum):
- url = '/agent/account/balance/query'
- data = {
- "agentNum": self.agentNum,
- "customerNum": customerNum
- }
- return self._post(url = url, data = data)
- def withdraw_apply(self, customerNum, requestNum, totalAmount, withdrawMode = WithdrawMode.D1):
- assert withdrawMode in WithdrawMode.choices(), u'settle way must be D0 or D1'
- url = '/agent/cash/withdrawal/apply'
- data = {
- "agentNum": self.agentNum,
- "customerNum": customerNum,
- 'totalAmount': totalAmount,
- 'requestNum': requestNum,
- 'withdrawMode': withdrawMode
- }
- return self._post(url = url, data = data)
- def query_withdraw_result(self, customerNum, requestNum):
- url = '/agent/cash/withdrawal/result/query'
- data = {
- "agentNum": self.agentNum,
- "customerNum": customerNum,
- 'requestNum': requestNum
- }
- return self._post(url = url, data = data)
- def query_withdraw_list(self, customerNum, startTime, endTime):
- url = '/agent/deposit/fund/detail/query'
- data = {
- "agentNum": self.agentNum,
- "customerNum": customerNum,
- 'startTime': startTime,
- 'endTime': endTime,
- 'pageNum': '1'
- }
- return self._post(url = url, data = data)
|