$account_id, 'id' => $id, 'order_id' => $order_id, 'status' => $status, 'txhash' => $txhash, ); $hash_data = http_build_query($data); $signature = hash_hmac('sha256', $hash_data, 'iG4Rpsa)6U31$H#^T85$^^3'); if ($signature != $sign) { $this->_rspErr(1, "signature error, signature: {$signature}, sign: {$sign}"); return; } error_log("buyGoodsDirect-------" . $order_id . "---" . $status); $conn = myself()->_getMysql(''); $order = SqlHelper::selectOne($conn, 't_shop_buy_order', array('address', 'item_id', 'goods_num', 'status'), array('idx' => $order_id)); $id = $order['item_id']; $goods_num = $order['goods_num']; $o_status = $order['status']; if ($o_status != 0) { $this->_rspErr(1, "order status error, status: {$o_status}"); return; } $buyStatus = 0; // 1: 成功, 2: 失败 switch ($status) { case "9": $buyStatus = 1; break; case "99": case "98": $buyStatus = 2; break; } SqlHelper::update($conn, 't_shop_buy_order', array('idx' => $order_id), array('status' => $buyStatus)); $goods = mt\ShopGoods::get($id); // 这里命名混乱了, 购买个数,一捆个数命名冲突 $goods_num = $order['goods_num']; $bundle_size = $goods['bonus_num']; $item_num = $goods_num * $bundle_size; $item_id = $goods['bonus']; $address = $order['address']; $account_id = $this->getAccountId($address); if ($item_id == V_ITEM_DIAMOND) { $event = [ 'name' => LogService::RECHARGE_CEBG_BONUS, 'val' => $item_num ]; LogService::productDiamond(['account_id' => $account_id], $event); } $this->_addGoods($address, array( 'goods_id' => $item_id, 'goods_num' => $item_num, 'id' => $id, )); $this->_rspOk(); } }