Пример #1
0
 /**
  * 单独新浪提现接口
  * @param $uid
  * @param $money
  * @return array
  */
 public static function sianWithdrawOnly($uid, $money)
 {
     //判定用户是否是新浪注册会员
     $identity_id = self::getIdentity($uid);
     if (!$identity_id) {
         $return = array('errorNum' => '1', 'errorMsg' => '用户不存在', 'data' => null);
         return $return;
     }
     //获取提现用户的绑卡信息
     $SinaBank = SinaBank::find()->where(['uid' => $uid, 'identity_id' => $identity_id, 'status' => SinaBank::STATUS_BINGING])->one();
     if (!$SinaBank) {
         $return = array('errorNum' => '1', 'errorMsg' => '请先进行绑卡操作', 'data' => null);
         return $return;
     }
     $out_trade_no = self::build_order_no();
     $account_type = 'SAVING_POT';
     $card_id = $SinaBank->card_id;
     $sina = new sina();
     //用户托管提现
     $withdraw = $sina->create_hosting_withdraw($out_trade_no, $identity_id, $account_type, $money, $card_id);
     if (!$withdraw) {
         $return = array('errorNum' => '1', 'errorMsg' => '接口错误', 'data' => null);
         return $return;
     }
     if ($withdraw['response_code'] == 'APPLY_SUCCESS') {
         if ($withdraw['withdraw_status'] == 'PROCESSING' || $withdraw['withdraw_status'] == 'SUCCESS') {
             if ($withdraw['withdraw_status'] == 'SUCCESS') {
                 $status = SinaWithdraw::STATUS_SINA_SUCCESS;
                 $msg = '新浪处理中';
             } else {
                 $status = SinaWithdraw::STATUS_SINA_DEAL;
                 $msg = '新浪处理成功';
             }
             $log = new SinaWithdraw();
             $log->uid = $uid;
             $log->out_trade_no = $out_trade_no;
             $log->identity_id = $identity_id;
             $log->card_id = $card_id;
             $log->money = $money;
             $log->status = $status;
             $log->type = SinaWithdraw::TYPE_ONLY;
             $log->msg = $msg;
             $save_log = $log->save();
             $data = array('trade_no' => $out_trade_no);
             if ($save_log) {
                 $return = array('errorNum' => '0', 'errorMsg' => 'success', 'data' => $data);
                 return $return;
             }
         } else {
             $log = new SinaWithdraw();
             $log->uid = $uid;
             $log->out_trade_no = $out_trade_no;
             $log->identity_id = $identity_id;
             $log->card_id = $card_id;
             $log->money = $money;
             $log->status = SinaWithdraw::STATUS_ERROR;
             $log->type = SinaWithdraw::TYPE_ONLY;
             $log->msg = $withdraw['withdraw_status'];
             $save_log = $log->save();
             if ($save_log) {
                 $return = array('errorNum' => '1', 'errorMsg' => '提现失败', 'data' => null);
                 return $return;
             } else {
                 $return = array('errorNum' => '1', 'errorMsg' => '数据记录失败', 'data' => null);
                 return $return;
             }
         }
     } else {
         $log = new SinaWithdraw();
         $log->uid = $uid;
         $log->out_trade_no = $out_trade_no;
         $log->identity_id = $identity_id;
         $log->card_id = $card_id;
         $log->money = $money;
         $log->status = SinaWithdraw::STATUS_ERROR;
         $log->type = SinaWithdraw::TYPE_ONLY;
         $log->msg = $withdraw['withdraw_status'];
         $save_log = $log->save();
         if ($save_log) {
             $return = array('errorNum' => '1', 'errorMsg' => $withdraw['response_message'], 'data' => null);
             return $return;
         }
         $return = array('errorNum' => '1', 'errorMsg' => '数据记录失败', 'data' => null);
         return $return;
     }
 }