Пример #1
0
 /**
  * 用户绑定银行卡
  * @param $uid
  * @param $bank_account_no
  * @param $phone_no
  * @return array
  */
 public static function bindingBankCard($uid, $bank_account_no, $phone_no, $post_province = '', $post_city = '', $post_bank_code = '')
 {
     //绑定一张银行卡
     $isbing = self::isBinding($uid);
     if (!$isbing['errorNum']) {
         $return = array('errorNum' => '1', 'errorMsg' => '只支持绑定一张银行卡', 'data' => null);
         return $return;
     }
     //生成绑卡请求号
     $request_no = self::build_order_no();
     //获取用户的新浪标识
     $flag = self::getIdentity($uid);
     if ($flag) {
         $identity_id = $flag;
         //获取银行卡信息---银行卡的英文缩写-卡的归属省份,城市
         $info = self::bankCardInfo($bank_account_no);
         //接口返回数据
         if ($info['errorNum'] == '1') {
             //存在不支持的银行卡或是接口返回其他的信息--或不支持的银行卡
             $return = array('errorNum' => '1', 'errorMsg' => $info['errorMsg'], 'data' => null);
             return $return;
         } elseif ($info['errorNum'] == '3') {
             //没有查询到归属地---接口错误--用户
             if (!empty($post_province) && !empty($post_city) && !empty($post_bank_code)) {
                 $province = $post_province;
                 $city = $post_city;
                 $bank_code = $post_bank_code;
             } else {
                 $return = array('errorNum' => '3', 'errorMsg' => '请填写完整归属地', 'data' => $info['data']);
                 return $return;
             }
         } else {
             //银行卡归属省份
             $province = $info['data']['province'];
             //特殊情况
             $zxcity = array('北京', '天津', '上海', '重庆', '北京市', '天津市', '上海市', '重庆市');
             //银行卡归属城市
             $city = $info['data']['city'];
             //直辖市没有获取到市的信息
             if (strlen($city) == '1' && in_array($province, $zxcity)) {
                 $city = $province;
             }
         }
         //获取银行卡的英文缩写
         if ($post_bank_code == '') {
             $bank_code = $info['data']['bank_code'];
         }
         //先默认吧---TODO
         $card_type = 'DEBIT';
         $card_attribute = 'C';
         $bank_branch = '';
         $bank_name = $info['data']['bank_name'];
         //去空格
         $province = trim($province);
         $city = trim($city);
         $bank_code = trim($bank_code);
         $sina = new sina();
         $binding = $sina->binding_bank_card($request_no, $identity_id, $bank_account_no, $phone_no, $bank_code, $card_type, $card_attribute, $province, $city, $bank_branch);
         if ($binding['response_code'] == 'APPLY_SUCCESS') {
             $data = array('ticket' => $binding['ticket'], 'request_no' => $request_no);
             $res = self::bankLog($uid, $identity_id, $request_no, $bank_code, $bank_name, $bank_account_no, $card_type, $card_attribute, $phone_no, $province, $city, $bank_branch, $binding['ticket'], SinaBank::STATUS_CONFIRM, '等待短信确认');
             if (!$res) {
                 $return = array('errorNum' => '1', 'errorMsg' => '数据记录失败', 'data' => null);
                 return $return;
             }
             $return = array('errorNum' => '0', 'errorMsg' => 'success', 'data' => $data);
             return $return;
         } else {
             $res = self::bankLog($uid, $identity_id, $request_no, $bank_code, $bank_name, $bank_account_no, $card_type, $card_attribute, $phone_no, $province, $city, $bank_branch, 'error', SinaBank::STATUS_ERROR, $binding['response_message']);
             if (!$res) {
                 $return = array('errorNum' => '1', 'errorMsg' => '数据记录失败', 'data' => null);
                 return $return;
             }
             $return = array('errorNum' => '1', 'errorMsg' => $binding['response_message'], 'data' => null);
             return $return;
         }
     } else {
         $return = array('errorNum' => '1', 'errorMsg' => '请先进行实名认证', 'data' => null);
         return $return;
     }
 }