コード例 #1
0
ファイル: AliPay.php プロジェクト: onlineshine/myzf
 public function finalDoPay($unitePayID = null, $price)
 {
     include_once __DIR__ . '/lib/ali/alipay.php';
     $config = $this->sm->get('Config');
     $aliConfig = $config[getenv('APP_ENV')]['aliConfig'];
     $aliConfig['notify_url'] = $aliConfig['final_notify_url'];
     $aliConfig['return_url'] = $aliConfig['final_return_url'];
     $aliPayment = new \AlipayPayment($aliConfig);
     $subject = '支付尾款';
     $orderInfo = array("out_trade_no" => $unitePayID, "subject" => $subject, "total_fee" => $price, "body" => '');
     $payUrl = $aliPayment->get_html_nupost($orderInfo, 'create_direct_pay_by_user');
     return $payUrl;
 }
コード例 #2
0
ファイル: PayController.php プロジェクト: onlineshine/myzf
 public function aliSpecialNotifyAction()
 {
     include LIB . '/COM/Service/PayMod/lib/ali/alipay.php';
     $request = $this->request;
     $SignType = $request->getPost('sign_type');
     $config = $this->sm->get('Config');
     $aliConfig = $config['aliConfig'];
     if ($SignType == 'MD5') {
         $aliPayment = new \AlipayPayment($aliConfig);
         $tmp = $aliPayment->notifyVerify();
     } else {
         $url = "https://mapi.alipay.com/gateway.do?service=notify_verify&partner=" . $aliConfig['partner'] . "&notify_id=" . $this->request->getPost('notify_id');
         $str = file_get_contents($url);
         if (trim($str) == 'true') {
             $tmp = true;
         }
     }
     if ($tmp) {
         $outTradeNo = $request->getPost("out_trade_no");
         $tradeStatus = $request->getPost("trade_status");
         if ($tradeStatus == 'TRADE_FINISHED' || $tradeStatus == 'TRADE_SUCCESS' || $tradeStatus == 'WAIT_SELLER_SEND_GOODS') {
             try {
                 $payDetail = $this->specialModel->select(array('unitePayID' => $outTradeNo))->current();
                 if ($this->siteSettings['specialMoney'] != $this->request->getPost('total_fee') || $payDetail['isPaid']) {
                     throw new \Exception('fail');
                 }
                 $this->sm->get("COM\\Service\\PayMod\\AliPay")->specialNotify($outTradeNo);
                 $requestUri = $_SERVER['REQUEST_URI'];
                 $data = array('money' => $request->getPost('total_fee'), 'payNotifyInfo' => $requestUri, 'postData' => json_encode($request->getPost()), 'unitePayID' => $outTradeNo, 'payType' => 2, 'type' => 3);
                 $this->payNotifyLogModel->insert($data);
                 $this->response->setContent('success');
             } catch (\Exception $e) {
                 $this->response->setContent('fail');
             }
         } else {
             $this->response->setContent('fail');
         }
     } else {
         $this->response->setContent('fail');
     }
     return $this->response;
 }