verifySign()) { error_log("verifySign error --- " . json_encode($_REQUEST)); myself()->_rspErr(1, 'verifySign error'); return; } $accountId = getReqVal('account_id', ''); $orderId = getReqVal('order_id', ''); $status = getReqVal('status', ''); $id = getReqVal('id', ''); $txhash = getReqVal('txhash', ''); $sign = getReqVal('sign', ''); $orderDb = OutAppOrder::find($orderId); if (!$orderDb) { myself()->_rspErr(0, 'not found order'); return; } if ($orderDb['status'] == OutAppOrder::FINISHED_STATE) { myself()->_rspErr(0, 'order is finished'); return; } if ($status != 9) { OutAppOrder::markFailed($orderDb['order_id']); myself()->_rspErr(0, 'order is failed'); return; } OutAppOrder::markFinished($orderDb['order_id']); $this->beginFirstTupop($address); // 以下是看商品表中是否配置了充值额外奖励 $goodsMeta = mt\ShopGoods::get($orderDb['goods_id']); if (!$goodsMeta) { myself()->_rspErr(0, 'goods_id is failed'); return; } $itemNum = $goodsMeta['bonus_num']; $itemId = $goodsMeta['bonus']; $itemMeta = mt\Item::get($itemId); if ($itemMeta && $itemNum > 0) { if ($itemId == V_ITEM_DIAMOND) { $event = [ 'name' => LogService::RECHARGE_CEBG_BONUS, 'val' => $itemNum ]; LogService::productDiamondCallback( array( 'account_id' => $orderDb['account_id'] ), $event); $addItemService = new ShopAddItemService(); $addItemService->addItemByAccountId($orderDb['account_id'], $itemId, $itemNum); } else { } } $this->_rspOk(); } private function beginFirstTupop($address) { $conn = myself()->_getMysql(''); $exist = SqlHelper::selectOne( $conn, 't_first_topup', array('address'), array('address' => $address) ); if ($exist) { return; } // 开始首充奖励活动进程 $chk = SqlHelper::insert( $conn, 't_first_topup', array( 'address' => $address, 'createtime' => myself()->_getNowTime(), 'status1' => 0, 'status2' => 0, 'status3' => 0, ) ); if (!$chk) { return; } } private function verifySign() { } }