def doMsgDxCallback(self, rpath): MchNo = TyContext.RunHttp.getRequestParam('MchNo', '') Phone = TyContext.RunHttp.getRequestParam('Phone', '') Fee = TyContext.RunHttp.getRequestParam('Fee', '') OrderId = TyContext.RunHttp.getRequestParam('OrderId', '') MobileType = TyContext.RunHttp.getRequestParam('MobileType', '') Sign = TyContext.RunHttp.getRequestParam('Sign', '') if MchNo == '' or Phone == '' or Fee == '' or OrderId == '' or Sign == '': return '401~参数错误~' eft_skey = '' try: eft_appid = OrderId[0:2] eft_skey = TuYouPayMsgDx.appkeys.get(eft_appid) except: TyContext.ftlog.exception() tSign = MchNo + Phone + Fee + OrderId + eft_skey m = md5() m.update(tSign) vSign = m.hexdigest() if Sign != vSign: TyContext.ftlog.info('doMsgDxCallback->ERROR, sign error !! sign=', Sign, 'vSign=', vSign, 'eft_skey=', eft_skey) return '555~数字签名错误~' # 解密得到原始游戏订单号 orderPlatformId = '' try: orderPlatformId = OrderId[2:] Fee = int(Fee) except: TyContext.ftlog.exception() TyContext.ftlog.info('TuYouPayMsgDx.doMsgDxCallback orderPlatformId=', orderPlatformId) notifys = { 'MchNo': MchNo, 'vouchMobile': Phone, 'OrderId': OrderId, 'third_orderid': MchNo } if MobileType == 'LT': notifys['payType'] = 'EFTChinaUnion.msg' elif MobileType == 'DX': notifys['payType'] = 'EFTChinaTelecom.msg' from tysdk.entity.pay.pay import TuyouPay from tysdk.entity.paythird.helper import PayHelper PayHelper.set_order_mobile(orderPlatformId, Phone, 'v2') isOk = TuyouPay.doBuyChargeCallback(orderPlatformId, Fee, 'TRADE_FINISHED', notifys) if isOk: return '000~成功~' else: return '111~失败~'
def doDuoKuCallback(cls, rpath): TyContext.ftlog.info('doDuoKuCallback start') rparam = TyContext.RunHttp.convertArgsToDict() try: shortOrderPlatformId = rparam['cpdefinepart'] orderPlatformId = ShortOrderIdMap.get_long_order_id( shortOrderPlatformId) appId = rparam['appid'] sign = rparam['sign'] unit = rparam['unit'] amount = rparam['amount'] status = rparam['status'] mobileId = rparam.get('phone', '') except: TyContext.ftlog.info( 'doDuoKuCallback->ERROR, param error !! rparam=', rparam) TyContext.ftlog.exception() return 'failure' if status != 'success': PayHelper.callback_error(orderPlatformId, 'pay fail', rparam) return 'failure' paykey_dict = TyContext.Configure.get_global_item_json( 'duoku_paykeys', {}) paykey = str(paykey_dict[str(appId)]) # 签名校验 if not cls.__verify_sign(rparam, paykey, sign): return 'failure' if unit == 'fen': total_fee = float(amount) / 100 else: total_fee = float(amount) rparam['chargeType'] = 'duoku' rparam['third_orderid'] = rparam['orderid'] PayHelper.set_order_mobile(orderPlatformId, mobileId) isOk = PayHelper.callback_ok(orderPlatformId, total_fee, rparam) if isOk: return 'success' else: return 'failure'