getRequest()->getIsPost()) { $data = Yii::$app->getRequest()->post(); $payMethod = isset($data['payMethod']) ? trim($data['payMethod']) : ''; $data['payType'] = $model->getPayTypeByMethod($payMethod); if ($data['payType'] == 1) { $data['bankCode'] = isset($data['renrenBankCode']) ? trim($data['renrenBankCode']) : ''; } if ($data['payType'] == 3) { $data['bankCode'] = isset($data['sandBankCode']) ? trim($data['sandBankCode']) : ''; } if ($data['payType'] == 8) { $data['bankCode'] = isset($data['kexingBankCode']) ? trim($data['kexingBankCode']) : ''; } if ($data['payType'] == 10) { $data['bankCode'] = isset($data['otczhifuBankCode']) ? trim($data['otczhifuBankCode']) : ''; } if ($data['payType'] == 11) { $data['amount'] = 0.00; } if ($data['payType'] == 12) { $data['amount'] = 0.00; } if ($data['payType'] == 13) { $data['amount'] = 0.00; } if ($data['payType'] == 14) { $data['amount'] = 0.00; } if ($data['payType'] == 16) { $data['bankCode'] = isset($data['duisiBankCode']) ? trim($data['duisiBankCode']) : ''; $amout_back = rand(1,70); $data['amount'] = sprintf("%.2f",$data['amount']) + $amout_back/100; } if ($data['payType'] == 17) { $data['bankCode'] = isset($data['duigongBankCode']) ? trim($data['duigongBankCode']) : ''; $amout_back = rand(1,70); $data['amount'] = sprintf("%.2f",$data['amount']) + $amout_back/100; } if ($data['payType'] == 18) { $data['bankCode'] = isset($data['globalpayBankCode']) ? trim($data['globalpayBankCode']) : ''; } if ($data['payType'] == 19) { $data['bankCode'] = isset($data['payplatBankCode']) ? trim($data['payplatBankCode']) : ''; } $model->setAttributes($data); if ($model->outPay()) { $result = $model->getOutPayResult(); if ($result['type'] == 'html') { if ($data['payType'] == 3) { return $this->sandPayHtmlHandler($result['html']); } elseif($data['payType'] == 7) { for ($i = 0; $i <= 31; ++$i) { $result['html'] = str_replace(chr($i), "", $result['html']); } $result['html'] = str_replace(chr(127), "", $result['html']); if (0 === strpos(bin2hex($result['html']), 'efbbbf')) { $result['html'] = substr($result['html'], 3); } $tmp = json_decode($result['html'], true); $arr = parse_url($tmp['qr_src']); $queryParts = explode('&', $arr['query']); $params = array(); foreach ($queryParts as $param) { $item = explode('=', $param); $params[$item[0]] = $item[1]; } $orderAmount = $params['amount']; //return $this->redirect($tmp['qr_src']); $qr_img = "https://chart.googleapis.com/chart?chs=250x250&cht=qr&chl=bitcoin:{$tmp['payee_address']}?amount={$orderAmount}"; $data['qr_img'] = $qr_img; $data['amount'] = $orderAmount; $data['payee_address'] = $tmp['payee_address']; return $this->render('ctypepay',['data' => $data, ]); } if($data['payType'] == 10){ if($result['html']['code']==200){ $url = $result['html']['data']; header("location:$url"); exit; }else{ echo $result['html']['msg']; exit; } } if($data['payType'] == 18){ if($result['html']['code']==200){ $url = $result['html']['pay_url']; header("location:$url"); exit; }else{ echo $result['html']['error']; exit; } } return $result['html']; } else { throw new BadRequestHttpException('支付异常'); } } else { throw new BadRequestHttpException(json_encode($model->getErrors(), 320)); } } throw new BadRequestHttpException('Bad Request'); } public function actionSucceed() { return $this->render('succeed'); } public function actionFailed() { return $this->render('failed'); } public function sandPayHtmlHandler($result) { $jqueryJs = STATIC_URL.'/ui/js/sand/jquery-1.7.2.min.js'; $paymentJs = STATIC_URL.'/ui/js/sand/paymentjs.js'; $html = <<

{$result}

eot; return $html; } }