|
@@ -36,6 +36,7 @@ class proxy
|
|
|
$quantity = 1;
|
|
|
|
|
|
refill\util::push_queue_order($mchid,$mch_order,ORDER_STATE_SEND);
|
|
|
+ Model('refill_order')->add_detail($mchid,$mch_order,$params,ORDER_STATE_SEND);
|
|
|
|
|
|
$first_comit = false;
|
|
|
if($card_type == 0)
|
|
@@ -121,6 +122,58 @@ class proxy
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public function add_zero($params)
|
|
|
+ {
|
|
|
+ $mchid = $params['mchid'];
|
|
|
+ $buyer_id = $params['buyer_id'];
|
|
|
+ $amount = intval($params['amount']);
|
|
|
+
|
|
|
+ $card_no = $params['card_no'];
|
|
|
+ $mch_order = $params['mch_order'];
|
|
|
+ $notify_url = $params['notify_url'];
|
|
|
+ $idcard = $params['idcard'] ?? '';
|
|
|
+ $card_name = $params['card_name'] ?? '';
|
|
|
+
|
|
|
+ $order_time = $params['order_time'] ?? time();
|
|
|
+ $commit_times = $params['commit_times'] ?? 0;
|
|
|
+ $last_order_id = $params['order_id'] ?? 0;
|
|
|
+
|
|
|
+ $org_quality = intval($params['org_quality']) ?? 0;
|
|
|
+ $card_type = intval($params['card_type']) ?? 0;
|
|
|
+ $regin_no = intval($params['regin_no']) ?? -1;
|
|
|
+ $quantity = 1;
|
|
|
+
|
|
|
+ refill\util::push_queue_order($mchid,$mch_order,ORDER_STATE_SEND);
|
|
|
+ Model('refill_order')->add_detail($mchid,$mch_order,$params,ORDER_STATE_SEND);
|
|
|
+
|
|
|
+ $first_comit = false;
|
|
|
+ if($card_type == 0)
|
|
|
+ {
|
|
|
+ $first_comit = true;
|
|
|
+ [$validate,$card_type,$region] = mtopcard\valid_phone($card_no);
|
|
|
+ $params['card_type'] = $card_type;
|
|
|
+ $params['regin_no'] = $region;
|
|
|
+ $regin_no = $region;
|
|
|
+ } else {
|
|
|
+ $validate = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ [$org_quality,$quality] = refill\RefillFactory::instance()->find_quality($mchid,$amount,$card_type,$org_quality,$commit_times,time() - $order_time,'',$regin_no);
|
|
|
+ if($first_comit) {
|
|
|
+ refill\util::incr_user_commit($mchid,$card_type,$amount,$org_quality);
|
|
|
+ }
|
|
|
+ Log::record("proxy::add mch_order={$mch_order} card_no = {$card_no} regin_no={$regin_no} org_quality={$org_quality} quality={$quality}",Log::DEBUG);
|
|
|
+
|
|
|
+ $order_id = refill\RefillFactory::instance()->zero_order($mchid, $buyer_id, $amount, $card_no,
|
|
|
+ $mch_order, $idcard, $card_name, $notify_url, $quality, $org_quality, $order_time, $commit_times,
|
|
|
+ "手动0元订单");
|
|
|
+
|
|
|
+ refill\util::pop_queue_order($mchid, $mch_order);
|
|
|
+ QueueClient::push("NotifyMerchantComplete", ['order_id' => $order_id, 'manual' => false]);
|
|
|
+ util::del_exclude_channel($mchid, $mch_order, $card_type);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
private function latest_order($refill_order,$mchid,$mch_order)
|
|
|
{
|
|
|
$orders = $refill_order->getMerchantOrderList(['mchid' => $mchid,'mch_order' => $mch_order]);
|
|
@@ -189,6 +242,7 @@ class proxy
|
|
|
'third_card_type' => $third_card_type];
|
|
|
|
|
|
refill\util::push_queue_order($mchid,$mch_order,ORDER_STATE_SEND);
|
|
|
+ Model('refill_order')->add_detail($mchid,$mch_order,$params,ORDER_STATE_SEND);
|
|
|
refill\util::incr_user_commit($mchid,$card_type,$amount,$org_quality);
|
|
|
|
|
|
[$errcode, $errmsg, $order_id, $neterr,$net_errno] = refill\RefillFactory::instance()->add($mchid, $buyer_id, $amount, $card_no,
|