コード例 #1
0
ファイル: Log.php プロジェクト: emilymwang8/ajk-broker
 public static function &getInstance()
 {
     if (self::$_instance === null) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
コード例 #2
0
ファイル: Pay.php プロジェクト: emilymwang8/ajk-broker
 /**
  * 安比购买抢客劵
  * @param $broker
  * @param $coupon
  * @param $amount
  * @param $payType
  * @param $source
  * @return array()
  */
 public function buyCouponByAnbi($broker, $coupon, $amount, $payType, $source)
 {
     $result = array('status' => 'error', 'msg' => '', 'order' => '');
     $brokerId = $broker['brokerId'];
     //查询账户余额是否足够
     $balance = Bll_Service_Payment::balance(Bll_Service_Payment::SITE_ANJUKE, array('userId' => $broker['userId']));
     if (empty($balance) || $balance['status'] != 'ok') {
         $result['msg'] = '查询余额失败,稍后再试';
         return $result;
     }
     $userAccountAll = $balance['data']['balance'];
     //账户余额
     $needAccount = $coupon['disPrice'] * $amount;
     // 待扣费金额
     if ($userAccountAll < $needAccount || $needAccount < 0) {
         $result['msg'] = '余额不足,请充值';
         return $result;
     }
     // 创建订单
     $order = Bll_CustomerRush_Order::getInstance()->createOrder($brokerId, "", $coupon, $amount, $payType, $source);
     //$requestId = Bll_Customerrush_Payment_Common::getInstance()->createRequsetId("charge",$order['id']);
     $requestId = Bll_Customerrush_Payment_Common::getInstance()->createChargeRequsetId($order['orderNo']);
     $order->msg = json_encode(array("requestId" => $requestId));
     // 保存requestId;
     $order->updateTime = date("Y-m-d H:i:s");
     $order->save();
     // 调用扣费接口
     $cusumeResult = Bll_Customerrush_Payment_Common::getInstance()->chargeMoneyByAnbi($brokerId, $broker['userId'], $requestId, $needAccount);
     if ($cusumeResult['status'] != 'ok') {
         $result['msg'] = '扣费失败,请稍后再试。';
         return $result;
     }
     // 记录扣费日志
     $log2 = array('brokerId' => $brokerId, 'accountId' => 0, 'price' => $needAccount, 'realPrice' => $needAccount, 'amount' => 0, 'requestId' => $requestId, 'type' => 2, 'createTime' => time());
     Bll_CustomerRush_Payment_Log::getInstance()->insertBrokerBalanceLog($log2);
     // 更新订单
     $order->status = Model_Mobile_CustomerOrder::STATUS_OK;
     $order->msg = json_encode(array("payInfo" => "success", "requestId" => $requestId));
     $order->updateTime = date("Y-m-d H:i:s");
     $order->save();
     // 给经纪人加劵
     for ($i = 0; $i < $order->num; $i++) {
         $addCoupon = array('brokerId' => $brokerId, 'couponId' => $order['couponId'], 'status' => Model_Mobile_CustomerBrokerCoupon::STATUS_OK_USE, 'totalNum' => $coupon['totalNum'], 'usedNum' => 0, 'updateTime' => date("Y-m-d H:i:s"), 'createTime' => time(), 'orderId' => $order['id']);
         Bll_CustomerRush_Coupon::getInstance()->insertBrokerCoupon($addCoupon);
     }
     $result['status'] = 'ok';
     $result['order'] = $order;
     return $result;
 }
コード例 #3
0
ファイル: Common.php プロジェクト: emilymwang8/ajk-broker
 /**
  * 调用扣费api anbi 扣费
  * @param $brokerId
  * @param $userId
  * @param $reqId
  * @param $price
  * @return array
  */
 public function chargeMoneyByAnbi($brokerId, $userId, $reqId, $price)
 {
     $result = array('status' => false, 'msg' => '', 'apiData' => '');
     if (empty($brokerId) || empty($userId) || empty($price) || empty($reqId)) {
         $result['msg'] = "参数不正确";
         return $result;
     }
     $count = 0;
     $note = date("Y-m-d") . "购买抢客劵扣费";
     while (true) {
         if ($count >= 3) {
             break;
         }
         // 调用api,开始扣费
         $params = array('canOverruns' => 0, 'note' => $note, 'amount' => $price, 'reqId' => $reqId, 'userId' => $userId);
         $configPayment = Const_PaymentApp::CUSTOMER_ANBI;
         $apiResult = Bll_Service_Payment::fixUse($configPayment, $params);
         if ($apiResult->isSucceeded()) {
             $transferInfo = $apiResult->getTransferInfo();
             if ($apiResult['status'] == 'ok') {
                 $result['status'] = true;
                 $result['apiData'] = array('response' => $apiResult->getResponse(), 'transferInfo' => array('url' => $transferInfo['url'], 'content_type' => $transferInfo['content_type'], 'http_code' => $transferInfo['http_code']));
                 break;
             } else {
                 $result['apiData'] = array('response' => $apiResult->getResponse(), 'transferInfo' => array('url' => $transferInfo['url'], 'content_type' => $transferInfo['content_type'], 'http_code' => $transferInfo['http_code']));
                 $count++;
             }
         } else {
             $result['msg'] = '链接失败';
             $count++;
         }
     }
     // 记录请求支付中心日志
     $addLogArr = array('brokerId' => $brokerId, 'accountId' => 0, 'price' => $price, 'requestId' => $reqId, 'status' => $result['status'] ? 1 : 2, 'msg' => json_encode($result), 'createTime' => time());
     Bll_CustomerRush_Payment_Log::getInstance()->insertAcenterRequestLog($addLogArr);
     return $result;
 }