123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354 |
- # coding=utf-8
- import base64
- import datetime
- import json
- import os
- import time
- from pprint import pprint
- os.environ["DJANGO_SETTINGS_MODULE"] = "configs.dev_zjl"
- from base import init_env
- init_env(False)
- from apilib.monetary import VirtualCoin
- from apps.web.common.transaction.refund.jdaggre import JDAggreRefundNotifier
- from apps.web.user.transaction_deprecated import refund_cash, refund_post_pay
- from apps.web.user.models import RechargeRecord, RefundMoneyRecord
- from library.jdopen.client import JdOpenMerchantClient
- from library.jdopen.constants import OPEN_ACCESS_KEY, OPEN_SECRET_KEY
- from apps.web.merchant.models import JDOpenApplyInfo, MerchantSourceInfo
- from apps.web.merchant.utils import query_audit_result, get_location_by_area, query_merchant_settle, JdPsiMerchantApplier, get_psi_client, get_wechat_proxy, get_file, \
- get_ali_client
- import xmltodict
- from apps.web.core.models import WechatPayApp
- from library.wechatpy.pay import WeChatPay
- def get_industry():
- openClient = JdOpenMerchantClient(OPEN_ACCESS_KEY, OPEN_SECRET_KEY)
- result = openClient.support.query_industry()
- pprint(result)
- def attach_upload():
- openClient = JdOpenMerchantClient(OPEN_ACCESS_KEY, OPEN_SECRET_KEY)
- openClient.attach.upload_attach(
- customerNum="10001114504252653551690",
- attachType="attachType",
- content="iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAA"
- )
- def create_customer():
- data = {
- 'agentNum': '10001016435484143212321',
- 'fullName': '哆啦宝商户',
- 'shortName': u'哆啦宝',
- 'industry': '其它',
- 'province': '湖北',
- 'city': '武汉',
- 'district': '洪山',
- 'linkMan': '哆啦宝',
- 'linkPhone': '15777777777',
- 'customerType': 'PERSON',
- 'certificateType': 'IDENTIFICATION',
- 'certificateCode': '230604199304163012',
- 'certificateName': '张三',
- 'accountOpenLicense': 'J1234543534533',
- 'certificateStartDate': '2015-01-01',
- 'certificateEndDate': '2018-12-31',
- 'contactPhoneNum': '15777777777',
- 'linkManId': '230604199304163012',
- }
- openClient = JdOpenMerchantClient(OPEN_ACCESS_KEY, OPEN_SECRET_KEY)
- result = openClient.customer.create_customer(**data)
- pprint(result)
- def modify_customer():
- data = {
- 'customerNum': "10001116605440862136783",
- 'agentNum': '10001016435484143212321',
- 'fullName': '哆啦宝商户',
- 'shortName': u'哆啦宝',
- 'industry': '其它',
- 'province': '湖北',
- 'city': '武汉',
- 'district': '洪山',
- 'linkMan': '哆啦宝',
- 'linkPhone': '17625905488',
- 'customerType': 'PERSON',
- 'certificateType': 'IDENTIFICATION',
- 'certificateCode': '230604199304163012',
- 'certificateName': '张三',
- 'accountOpenLicense': 'J1234543534533',
- 'certificateStartDate': '2015-01-01',
- 'certificateEndDate': '2018-12-31',
- 'contactPhoneNum': '17625905488',
- 'linkManId': '230604199304163012',
- }
- openClient = JdOpenMerchantClient(OPEN_ACCESS_KEY, OPEN_SECRET_KEY)
- result = openClient.customer.modify_customer(**data)
- pprint(result)
- def get_customer():
- num = "10001116605440604166780"
- openClient = JdOpenMerchantClient(OPEN_ACCESS_KEY, OPEN_SECRET_KEY)
- result = openClient.customer.get_customer(num)
- print(result)
- def create_settle():
- data = {
- "customerNum": "10001116605440862136783",
- "bankAccountName": "哆啦宝",
- "bankAccountNum": "2323232323232323",
- "province": "北京",
- "city": "北京",
- "bankBranchName": "中国邮政储蓄银行股份有限公司齐齐哈尔市龙华路支行",
- "bankName": "招商银行",
- "phone": "18201223908",
- "settleAmount": "1.00",
- "payBankList": [
- {
- "num": "10031414639876930831001",
- "rate": "0.60"
- },
- {
- "num": "10031414639876930831004",
- "rate": "0.38"
- },
- {
- "num": "10031414639876930831005",
- "rate": "0.38"
- }
- ],
- "accountType": "PRIVATE",
- "privateType": "PERSON",
- "settlerCertificateCode": "230604199304163012",
- "settlerCertificateStartDate": "2017-11-11",
- "settlerCertificateEndDate": "2018-11-11"
- }
- openClient = JdOpenMerchantClient(OPEN_ACCESS_KEY, OPEN_SECRET_KEY)
- result = openClient.settle.create_account(**data)
- pprint(result)
- def create_shop():
- data = {
- "agentNum": "10001016435484143212321",
- "customerNum": "10001116605440862136783",
- "shopName": "哆啦宝店铺",
- "address": "国贸",
- "oneIndustry": "美食",
- "twoIndustry": "湘菜",
- "mobilePhone": "13311580250",
- }
- openClient = JdOpenMerchantClient(OPEN_ACCESS_KEY, OPEN_SECRET_KEY)
- result = openClient.shop.create_shop(**data)
- pprint(result)
- def get_shop():
- shop = "10001116605440862136783"
- openClient = JdOpenMerchantClient(OPEN_ACCESS_KEY, OPEN_SECRET_KEY)
- result = openClient.shop.get_shop(shop)
- pprint(result)
- def make_sure_customer():
- openClient = JdOpenMerchantClient(OPEN_ACCESS_KEY, OPEN_SECRET_KEY)
- result = openClient.complete.complete_customer("10001116605440862136783")
- pprint(result)
- def upload_img():
- with open("img.png", "rb") as f:
- content = f.read()
- bContent = base64.b64encode(content)
- openClient = JdOpenMerchantClient(OPEN_ACCESS_KEY, OPEN_SECRET_KEY)
- result = openClient.attach.upload_attach(
- customerNum="10001116605440862136783",
- attachType="BANKFRONT",
- content=bContent
- )
- from pprint import pprint
- pprint(result)
- def get_wx_merchant():
- customerNum = "119103908"
- agentNum = "10001016435484143212321"
- payProduct = "ALIPAY"
- openClient = JdOpenMerchantClient(OPEN_ACCESS_KEY, OPEN_SECRET_KEY)
- result = openClient.support.get_product_customer(customerNum, payProduct)
- pprint(result)
- def get_jd_open_audit():
- openClient = JdOpenMerchantClient(OPEN_ACCESS_KEY, OPEN_SECRET_KEY)
- mer = JDOpenApplyInfo.get_merchant_by_id("6305e12c3530b4da7ff3e167")
- result = query_audit_result(mer, openClient)
- pprint(result)
- def get_location():
- print(get_location_by_area(u"湖北省", u"武汉市", u"洪山区", u"光谷资本大厦"))
- def ali_auth():
- mer = JDOpenApplyInfo.get_merchant_by_id("6311be60651fba2b051e5b47") # type: JDOpenApplyInfo
- from apps.web.core.models import AliApp
- app = AliApp.objects.get(id="5fa9010ec3631dd06e35c709")
- print(app.client.query_auth("2088710255758323"))
- def jd_psi_audit():
- from apps.web.merchant.utils import get_psi_client
- client = get_psi_client()
- result = client.query_sub_channel(agentNo="112122276", merchantNo="122015917", productCode=401)
- from pprint import pprint
- pprint(result)
- def jd_psi_error_test():
- from library.jdpsi.exceptions import JdPsiException
- try:
- raise JdPsiException(errCode="0000", errMsg="this is an error")
- except JdPsiException as je:
- print(je.errMsg)
- def jd_psi_settle_info_test():
- from apps.web.dealer.models import Dealer
- dealer = Dealer.objects.get(id="62188a891bab8edffc4d88ad")
- result = query_merchant_settle(dealer, datetime.datetime.now())
- pprint(result)
- def jd_psi_product_query_test():
- _id = "10001116544829294203170"
- mer = MerchantSourceInfo.objects.get(id=_id)
- JdPsiMerchantApplier(mer, get_psi_client()).query_audit_result()
- def jd_psi_product_success_test():
- _id = "6315a92300304890ed98f0ff"
- mer = MerchantSourceInfo.objects.get(id=_id)
- print(mer.is_product_success())
- def test_wechat_auth():
- _wx = "519464690"
- from apps.web.merchant.utils import is_wechat_authorized
- proxy = get_wechat_proxy()
- result = proxy.get_merchant_apply_state(_wx)
- pprint(result)
- def test_ali_upload_image():
- from alipay.aop.api.request.AntMerchantExpandIndirectImageUploadRequest import AntMerchantExpandIndirectImageUploadRequest
- from alipay.aop.api.response.AlipayOfflineMaterialImageUploadResponse import AlipayOfflineMaterialImageUploadResponse
- from alipay.aop.api.AlipayClientConfig import AlipayClientConfig
- from alipay.aop.api.FileItem import FileItem
- from alipay.aop.api.DefaultAlipayClient import DefaultAlipayClient
- import logging
- logger = logging.getLogger(__name__)
- from apps.web.core.models import AliApp
- app = AliApp.objects.get(appid="2019061165493945") # type: AliApp
- clientConfig = AlipayClientConfig()
- clientConfig.server_url = "https://openapi.alipay.com/gateway.do"
- clientConfig.app_id = '2019061165493945'
- clientConfig.app_private_key = app.app_private_key_string
- clientConfig.alipay_public_key = app.public_key_string
- client = DefaultAlipayClient(clientConfig, logger=logger)
- url = "https://resource.washpayer.com/uploaded/merchant/20220905/f1c306fdb5758d3501b54a4c0dc4d8e3.jpg"
- request = AntMerchantExpandIndirectImageUploadRequest()
- request.image_type = "jpg"
- request.image_content = FileItem(file_name="1.jpg", file_content=get_file(url=url))
- response_content = client.execute(request)
- from pprint import pprint
- pprint(response_content)
- response = AlipayOfflineMaterialImageUploadResponse()
- response.parse_response_content(response_content)
- def test_ali_proxy():
- from apps.web.core.models import AliApp
- from apps.web.core.bridge.alipay import AliPayAuthorProxy
- from pprint import pprint
- app = AliApp.objects.get(appid="2019061165493945")
- proxy = AliPayAuthorProxy(app)
- url = "https://resource.washpayer.com/uploaded/merchant/20220905/f1c306fdb5758d3501b54a4c0dc4d8e3.jpg"
- print(os.path.basename(url))
- result = proxy.upload_image_from_oss(url)
- pprint(result)
- # subMerchantId = '2021001191645419'
- # result = proxy.query(subMerchantId)
- # pprint(result)
- def test_wechat_pay():
- """
- 新版本测试微信支付
- """
- # 支付appId wx90dad6d2b6094bb2
- # 支付测试设备 JH_DUMMY
- # 测试项目
- # 地址优惠充值
- # 订单编号 632c1606e217c0865561a7e7 充值正常 用户正常到账
- # 分账单号 632c160be217c0865561a7e8 分账正常 经销商收益正常增加 代理商设备收益正常
- # 充值退款
- # 订单编号 632c1b0ae217c0865561a7eb 退款成功 用户金额到账 经销商收益扣除成功 负单建立成功
- # 虚拟卡充值
- # 订单编号 632c2cc8da87f3268613a802
- # 支付宝充值余额
- # 订单编号 632c32bdfb4eb42be56c4dee 充值正常 用户正常到账
- # 分账单号 632c32c5fb4eb42be56c4def 分账正常 经销商收益正常增加 代理商收益正常
- # TODO zjl 问题 代理商分账显示问题
- # # 0.14 0.56
- # class Request(object):
- #
- # def __init__(self, b):
- # self.b = b
- # def __getattr__(self, item):
- # return self.b
- #
- # body = json.dumps({u'cipherJson': u'b6e43051ab63eff16789015589769830be6ab278d09d3739ecb791001211cacd61f12cdc3fd349cc26392ef6a7cab2baa568f15fc4a4ffcf0c7ca54796a9e21308298a22e1d1ebc1c97bb87767f87e83632905e4e27c1611be4ba8f58f5e1801e0757e2e55feac9c84acb029eed30813f692d519ecd61b2646013072fbc2c43abaf79b431cb949d58924d2272a3e760cf07169737d38dc2966e13361d9997dd9f4e273db6b6dafedee206abdec94bb66a984638eba316d9817214f937efa29042c24a6354d36cac524aa20a11f73c1088ad24205c4c72ec248d61923b4e124e70f0d4f2443bdc2c60e47aa151a0eff02be50a6520bd122bd2c24a6354d36cac524aa20a11f73c1088ad24205c4c72ec248d61923b4e124e7fda69a764e08744d1e84cb7174fcd1a354b0556d9569e47176b5682b3f2b9e689e17a9a3e1c101b7a6139d32e5af154c24aa20a11f73c10894b85eea93943b7a7d3d77a4207da0e0ba53608c30c0d758051016ef1691089912ff58d2bdda79dd24aa20a11f73c108f4c4938b5dd60aa57d3d77a4207da0e0cbffc290a77ddb077a1ff67d641162883d8942e96a9df2ca28a47d367c915d7c6623cfae889ee27b1bea278d8c4a3e31ccae527031fbf1cfdf9a1a8058eab1bc37f1d78f17953f823de929b7ff727f2aeda2487ac26f44e7f19832c6be3c9b2458492160b39979cd5e7dfa2a1836118bb643a2b69ea4f8b8c9960c4e34ff732c8e6ad8d93267e043f62ac7b60bf7fc3fd2a61208744c2c1d62b3f4ab823e8186b77bc78ab86b04d6de101b2d1cfead909ef1bb0a872412893e3989fdbda919327964a01091e69a1a0d39465084ef44b388b0eaa10413b17ba7466b66692783de373557e726d96a3d348ae2a3515fbadde05e5cef78b5676b87486fef0b93b4c6649e14a97b391f8d9e3bd5b90c69f9d2c631b508bac659c824aa20a11f73c108eed98de0d7b5bf5fe5ad17f9da02cad1fa38c980f1f681d6300b26561ed1e639e54a9a340e27833e', u'success': True, u'merchantNo': u'113348986', u'errCode': u'000000', u'sign': u'e72f42c4c4cf91cda5fcae3dbd441f7c', u'systemId': u'112122276PSP', u'errCodeDes': u'\u6210\u529f'})
- # app = JDAggreRefundNotifier(Request(body), lambda order_no: RefundMoneyRecord.get_record(order_no))
- # app.do(refund_post_pay)
- orderId = "632d18ffeaf25201ea235a99"
- order = RechargeRecord.objects.get(id=orderId)
- print(order.money)
- refund_cash(order, order.money, VirtualCoin(0))
- if __name__ == "__main__":
- get_wx_merchant()
|