Ejemplo n.º 1
0
 public function actionRefund($order_id)
 {
     Yii::log('Ready to refund for order[' . $order_id . '].', CLogger::LEVEL_INFO);
     $data = array_merge(array(), array('order_id' => $order_id));
     $url = Yii::app()->createAbsoluteUrl('payGate/refund', $data);
     Yii::log('Refund request url:[' . $url . ']', CLogger::LEVEL_INFO);
     $result = HTTPRequest::asyncRequest($url, 10);
     var_dump($result);
 }
Ejemplo n.º 2
0
 public function actionRefund($order_id = 0, $force = 0)
 {
     //-------------------------------------
     // 退款状态检查
     //-------------------------------------
     $sql = 'SELECT o.order_id, op.product_id, op.order_product_id, op.supplier_order_id,op.tour_date ';
     $sql .= 'FROM `ht_order` o ';
     $sql .= 'LEFT JOIN ht_order_product op ON o.order_id=op.order_id ';
     $sql .= 'LEFT JOIN ht_product p ON op.product_id=p.product_id ';
     $sql .= 'WHERE o.status_id in (' . HtOrderStatus::ORDER_REFUND_PROCESSING . ') ';
     $sql .= 'AND o.payment_method IN ("weixinpay_widget","weixinpay_pc","bocpay_pc","bocpay_wap") ';
     if (!empty($order_id)) {
         $sql .= 'AND o.order_id="' . $order_id . '" ';
     }
     if (!$force) {
         $sql .= 'AND TIMESTAMPDIFF(SECOND,o.date_modified,NOW()) > ' . $this->CHECK_INTERVAL;
     }
     $result = Yii::app()->db->createCommand($sql)->queryAll();
     if ($result && count($result) > 0) {
         foreach ($result as $rkey => $order) {
             $order_id = $order['order_id'];
             $url = Yii::app()->createAbsoluteUrl('payGate/refundNotify/order_id/' . $order_id);
             $result = HTTPRequest::asyncRequest($url . '?refundnotify=1', 10);
         }
     }
 }