Exemplo n.º 1
0
 /**
  *    支付完成后,外部网关的通知地址,在此会进行订单状态的改变,这里严格验证,改变订单状态
  *
  *    @author    Garbin
  *    @return    void
  */
 function actionNotify()
 {
     //这里是支付宝,财付通等当订单状态改变时的通知地址
     $order_id = 0;
     if (isset($_POST['order_id'])) {
         $order_id = intval($_POST['order_id']);
     } else {
         $order_id = intval($_GET['order_id']);
     }
     if (!$order_id) {
         /* 无效的通知请求 */
         $this->show_warning('no_such_order');
         Yii::app()->end();
     }
     /* 获取订单信息 */
     //$order_info  = JpOrder::model()->findByPk($order_id);
     //   $order_info  = JporderService::getOrder($order_id);
     $order_info = OrderService::getOrder($order_id);
     if (empty($order_info)) {
         /* 没有该订单 */
         $this->show_warning('no_such_order');
         Yii::app()->end();
     }
     /* 获取支付方式 */
     $paymentMethod = $order_info['Payment'];
     if ($paymentMethod != '1') {
         /* 支付方式方式错误  */
         $this->show_warning('no_alipay_payment');
         Yii::app()->end();
     }
     $payment = Yii::app()->alipay;
     /* ----------通知验证开始---------- */
     $notify_result = $payment->verify_notify($order_info, true);
     if ($notify_result === false) {
         /* 支付失败 */
         $payment->verify_result(false);
         /* 记录错误日志 */
         //$payment->put_log(false,'notify');
         Yii::app()->end();
     }
     /* ----------通知验证结束---------- */
     //改变订单状态
     $this->_change_order_status($order_id, $notify_result);
     $payment->verify_result(true);
     /* 记录成功日志 */
     //$payment->put_log(true,'notify');
     // 		if ($notify_result['target'] == ORDER_ACCEPTED)
     // 		{
     // 			/* 发送邮件给卖家,提醒付款成功 */
     // 			$model_member =& m('member');
     // 			$seller_info  = $model_member->get($order_info['seller_id']);
     // 			$mail = get_mail('toseller_online_pay_success_notify', array('order' => $order_info));
     // 			$this->_mailto($seller_info['email'], addslashes($mail['subject']), addslashes($mail['message']));
     // 			/* 同步发送 */
     // 			$this->_sendmail(true);
     // 		}
 }
Exemplo n.º 2
0
 /**
  * Get a Worldpay order
  * @param string $orderCode
  * @return array Worldpay order response
  * */
 public function getOrder($orderCode = false)
 {
     if (empty($orderCode) || !is_string($orderCode)) {
         Error::throwError('ip', Error::$errors['orderInput']['orderCode']);
     }
     $response = OrderService::getOrder($orderCode);
     if (!isset($response["orderCode"])) {
         Error::throwError("apierror");
     }
     return $response;
 }