public static function YM_transaction_o() { $value = $_GET['value']; $usr = usr::getCurrentUser(1); if ($usr == null) { header('Location: /'); exit; } $purseList = Purse::findBy(array('UID' => $usr->getId(), 'CurId' => 4)); if (empty($purseList)) { header('Location: /usr/mypage?err=1'); exit; } $purse = $purseList[0]; $to = $_GET['yar_path']; if ($purse['Value'] < $value) { header('Location: /usr/mypage?err=1'); exit; } if ($purse['out_id'] == '') { $await = new AtYm(); $await->setUID($usr->getId()); $await->setWallet($to); $await->insert(); header('Location: /usr/mypage?err=4'); exit; } $prs = new Purse(); $newValue = $purse['Value']; //- $value; $prs->setId($purse['id']); $prs->update(array('value' => $newValue)); $ym = new YandexMoney(YM_OUT_ACCESSTOKEN); $resp = $ym->requestPaymentP2P($purse['out_id'], $to, $value); if (!$resp->isSuccess()) { header('Location: /usr/mypage?err=2'); exit; } $requestId = $resp->getRequestId(); $resp = $ym->processPaymentByWallet($purse['out_id'], $requestId); if (!$resp->isSuccess()) { header('Location: /usr/mypage?err=3'); exit; } header('Location: /usr/mypage?err=0'); exit; }