|
@@ -15,6 +15,7 @@ require_once(BASE_HELPER_PATH . '/refill/util.php');
|
|
|
require_once(BASE_HELPER_PATH . '/refill/errcode.php');
|
|
|
|
|
|
use Log;
|
|
|
+use refill\afd\config;
|
|
|
use scope_trace;
|
|
|
use mtopcard;
|
|
|
use QueueClient;
|
|
@@ -126,6 +127,9 @@ class RefillBase
|
|
|
$mchid = intval($refill_info['mchid']);
|
|
|
$mch_order = $refill_info['mch_order'];
|
|
|
|
|
|
+ $period = time() - intval($refill_info['commit_time']);
|
|
|
+ util::monitor_notify($chname,$spec,$card_type,$period,$success);
|
|
|
+
|
|
|
if ($success) {
|
|
|
$logic_vr_order->changeOrderStateSuccess($order_id,true);
|
|
|
$tran->commit();
|
|
@@ -133,6 +137,7 @@ class RefillBase
|
|
|
util::incr_notify($chname, $card_type, $spec, $quality, true);
|
|
|
util::incr_user_success($mchid,$card_type, $spec,$quality);
|
|
|
util::onOrderSuccess($refill_info,$order_info);
|
|
|
+ util::monitor_callback($mchid, $refill_info['mch_amount'], $refill_info['channel_amount'], true);
|
|
|
}
|
|
|
elseif ($can_try)
|
|
|
{
|
|
@@ -151,6 +156,7 @@ class RefillBase
|
|
|
}
|
|
|
}
|
|
|
util::incr_user_fail($mchid,$card_type, $spec,$quality);
|
|
|
+ util::monitor_callback($mchid, $refill_info['mch_amount'], 0, false);
|
|
|
}
|
|
|
else {
|
|
|
$logic_vr_order->changeOrderStateCancel($order_info, '', "{$chname}接口回调通知失败,不可重试.",true,true);
|
|
@@ -159,6 +165,7 @@ class RefillBase
|
|
|
util::incr_notify($chname, $card_type, $spec, $quality, false);
|
|
|
util::incr_amount_lock($mchid,$card_type,$spec);
|
|
|
util::incr_user_fail($mchid,$card_type, $spec,$quality);
|
|
|
+ util::monitor_callback($mchid, $refill_info['mch_amount'], 0, false);
|
|
|
}
|
|
|
|
|
|
$mod_refill->edit($order_id, ['notify_time' => time(), 'is_retrying' => 0,'notify_state' => 1]);
|
|
@@ -300,6 +307,23 @@ class RefillBase
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public function mch_amount(order $order)
|
|
|
+ {
|
|
|
+ $mchid = $order->mchid();
|
|
|
+ $org_quality = $order->org_quality();
|
|
|
+
|
|
|
+ if(PolicyUtil::mixed_quality($org_quality)) {
|
|
|
+ $calc = new CalcMerchantPrice($mchid, $order->spec(), $order->card_type(),$org_quality,$this->mPolicy,$order->thrid_params());
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ $calc = new CalcMerchantPrice($mchid, $order->spec(), $order->card_type(),$order->cur_quality(),$this->mPolicy,$order->thrid_params());
|
|
|
+ }
|
|
|
+ $mch_price = $calc->calc_vgoods_price([]);
|
|
|
+ $mch_amount = $mch_price * $order->quantity();
|
|
|
+
|
|
|
+ return $mch_amount;
|
|
|
+ }
|
|
|
+
|
|
|
//返回值:[ 错误码,错误信息,订单ID,是否是网络错误]
|
|
|
//说明:错误码为true 表示成功
|
|
|
// 其它情况,则需要判断订单ID
|
|
@@ -419,6 +443,8 @@ class RefillBase
|
|
|
$chfilters->add_channel($channel_name,false);
|
|
|
if(!empty($neterr) && util::need_check($net_errno)) {
|
|
|
$mod_refill->edit($order_id, ['commit_time' => time(),'neterr' => 1,'err_msg' => "neterr={$net_errno}"]);
|
|
|
+ util::monitor_neterr($channel_name);
|
|
|
+
|
|
|
break;
|
|
|
} else {
|
|
|
$neterr = false;
|