12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- # coding=utf-8
- import json
- import os
- import requests
- from base import init_env
- init_env(True)
- from apps.web.merchant.models import MerchantSourceInfo
- from apps.web.merchant.utils import JDMerchant
- from apps.web.core.exceptions import MerchantError
- def get_mchid(ownerId):
- record = MerchantSourceInfo.get_source_record(ownerId)
- agentNo = record.agentNo
- merchantNo = record.merchantNo
- productCode = "401"
- sign = JDMerchant.sign(agentNo, merchantNo, productCode)
- entity = {
- "agentNo": agentNo,
- "merchantNo": merchantNo,
- "productCode": productCode,
- "sign": sign
- }
- entitySecData = JDMerchant.encrypt(entity)
- data = {
- "agentNo": agentNo,
- "entity": entitySecData
- }
- url = os.path.join(JDMerchant.BASE_URL, "merchant/status/queryMerchantWXNo").replace("\\", "/")
- response = requests.post(url=url, data=data)
- result = response.json()
- if result.get("code") != "0000":
- raise MerchantError(result.get("message", ""))
- hlbSubNoResultJson = result.get("data", dict()).get("hlbWxSubNoResultInfo")
- try:
- subResult = json.loads(hlbSubNoResultJson)
- except Exception:
- raise MerchantError(u"微信备案查询失败")
- status = subResult.get("status")
- orderNo = subResult.get("orderNo")
- if status == "FAIL":
- raise MerchantError(u"微信备案失败")
- if status == "DOING":
- raise MerchantError(u"微信备案受理中")
- try:
- wx_mch_id = subResult.get("threePartnerNoData")[0].get("threePartnerNo")
- except Exception:
- raise MerchantError(u"微信备案查询失败")
- return orderNo
|