def _pay_request(cls, chargeInfo, mi, mo, bankIndex): rparam = cls._get_pay_requset_params(chargeInfo, mi, mo, bankIndex) if not rparam: return PayConst.CHARGE_STATE_REQUEST_RETRY purl = cls.pay_request_url + PayHelper.createLinkString4Get(rparam) TyContext.ftlog.info(cls.__name__, '_pay_request->return bankIndex=', bankIndex, 'purl=', purl) response, purl = TyContext.WebPage.webget(purl) TyContext.ftlog.info(cls.__name__, '_pay_request->return bankIndex=', bankIndex, 'purl=', purl, 'response=', response) if response == None: response = '' else: response = response.strip() mo.setResult('payData', '') if response[0:7] == 'success': return PayConst.CHARGE_STATE_REQUEST elif response[0] == '{': try: jsondatas = json.loads(response) if jsondatas['code'] == 'success': mo.setResult('payData', jsondatas['paydata']) else: if 'info' in jsondatas: errInfo = jsondatas['info'] mo.setResult('info', jsondatas['info']) else: errInfo = '360充值请求错误' mo.setError(1, errInfo) return PayConst.CHARGE_STATE_REQUEST except: pass i = response.find('<h2>[') if i > 0: j = response.find('</h2>', i) errInfo = response[i + 4:j] errInfo = errInfo.decode('gb2312') mo.setError(1, errInfo) return PayConst.CHARGE_STATE_REQUEST_IGNORE else: try: errInfo = response.decode('gb2312') except: errInfo = response if errInfo.find('failed:') == 0: errInfo = errInfo[7:] mo.setError(1, errInfo) return PayConst.CHARGE_STATE_ERROR_REQUEST
def __pay_card_request__(cls, chargeInfo, mi, mo, cardType): rparam = cls.__get_card_request_params__(chargeInfo, mi, mo, cardType) if not rparam: return PayConst.CHARGE_STATE_REQUEST_RETRY cardUrl = cls.szf_url + '?' + PayHelper.createLinkString4Get(rparam) TyContext.ftlog.info('TuYouPaySzf->requestUrl=', cardUrl) response, cardUrl = TyContext.WebPage.webget(cardUrl, {}) TyContext.ftlog.info('TuYouPaySzf->requestUrl=', cardUrl, 'response=', response) status = 0 try: status = int(response) except: status = 0 if status != 200: if status in cls.szf_request_code: errInfo = cls.szf_request_code[status] else: errInfo = '充值卡支付失败' errInfo = errInfo.decode('utf-8') mo.setError(1, errInfo) return PayConst.CHARGE_STATE_REQUEST_IGNORE else: return PayConst.CHARGE_STATE_REQUEST