getSelect($where, $field = '*', $order = 'id desc', $page = $page . ',' . $limit); $count = $RechargeOrderModel->getCount($where); foreach ($list as $k => &$v) { $v['index'] = $k + 1; $vip_name = $VipModel->getFindField(array($VipModel::ID => $v['vid']), $VipModel::NAME); if (empty($vip_name)) { $vip_name = $VipModel->getFindField(array($VipModel::ID => $v['vid']), $VipModel::NICK_NAME); } $v['vip_name'] = $vip_name; $v['add_time'] = date('Y-m-d H:i:s', $v['add_time']); if ($v['repay_name'] == 0) { $v['aging_repay_name'] = '直接到账'; } elseif ($v['repay_name'] == 1) { $v['aging_repay_name'] = '分期到账'; } else { $v['aging_repay_name'] = '未知类型'; } if ($v['user_type'] == 1) { $v['user_type'] = '商家'; } elseif ($v['user_type'] == 2) { $v['user_type'] = '店长'; } elseif ($v['user_type'] == 3) { $v['user_type'] = '收银员'; } else { if ($v['scene_type'] == 5) { $v['user_type'] = '公众号'; } else { $v['user_type'] = '小程序'; } } if ($v['scene_type'] == 1) { $v['scene_type'] = '收银机'; } elseif ($v['scene_type'] == 2) { $v['scene_type'] = '商户后台'; } elseif ($v['scene_type'] == 3) { $v['scene_type'] = '门店后台'; } elseif ($v['scene_type'] == 4) { $v['scene_type'] = '小程序'; } elseif ($v['scene_type'] == 5) { $v['scene_type'] = '公众号'; } elseif ($v['scene_type'] == 6) { $v['scene_type'] = '小助手'; } } $res['data'] = $list; $res['count'] = $count; $res['status'] = 1; $res['msg'] = '获取成功'; return $res; } /** * 会员充值退款 * @param $merchant_id 商户id * @param $id retail_vip表id * @param $scene_Type 1收银机 2商户后台 3门店后台 * @return mixed */ public function refundMoney($merchant_id, $id, $scene_Type) { $RechargeOrderModel = D('RetailRechargeOrder'); $IntegralOrderModel = D('RetailIntegralOrder'); $VipMCouponModel = D('RetailVipMCoupon'); $VipModel = D('RetailVip'); $MCouponModel = D('RetailMCoupon'); $VipCardModel = D('RetailVipCard'); $CardBagModel = D('CardBag'); $subCardModel = D('SubCard'); $where = array( $RechargeOrderModel::ID => $id, $RechargeOrderModel::MERCHANT_ID => $merchant_id, $RechargeOrderModel::STATUS => 1, $RechargeOrderModel::TYPE => 1, $RechargeOrderModel::REFUND_STATUS => 1, $RechargeOrderModel::RECHARGE_ORDER_ID => 0, ); $rechargeOrder = $RechargeOrderModel->getFind($where); if ($rechargeOrder) { if ($rechargeOrder[$RechargeOrderModel::VIP_RECHARGE_ID] > 0) { //判断是否从常规会员变成plus会员 $RVRModel = D('RetailVipRecharge'); $vipRecharge = $RVRModel->getFind(array($RVRModel::ID => $rechargeOrder[$RechargeOrderModel::VIP_RECHARGE_ID])); if ($vipRecharge[$RVRModel::SCENE_TYPE] == 2) { $res['status'] = 0; $res['msg'] = '该充值为升级Plus活动,不能退款'; return $res; } else if ($vipRecharge[$RVRModel::SCENE_TYPE] == 3) { $res['status'] = 0; $res['msg'] = '该充值为续费Plus活动,不能退款'; return $res; } } //减少retail_vip表balance值 $VMap[$VipModel::ID] = $rechargeOrder[$RechargeOrderModel::VID]; $vip = $VipModel->getFind($VMap); if (empty($vip)) { $res['status'] = 0; $res['msg'] = '数据出错'; return $res; } //判断retail_vip表balance if ($vip[$VipModel::BALANCE] < $rechargeOrder[$RechargeOrderModel::ALL_MONEY]) { $res['status'] = 0; $res['msg'] = '会员余额不足,退款失败'; return $res; } //积分 $integralDetail = $IntegralOrderModel->getFind(array($IntegralOrderModel::RECHARGE_ORDER_ID => $id)); if (!empty($integralDetail) && ($vip[$VipModel::INTEGRAL] < $integralDetail[$IntegralOrderModel::INTEGRAL])) { $res['status'] = 0; $res['msg'] = '积分已被使用,不能退款'; return $res; } //优惠券券包 $map = array( $VipMCouponModel::RECHARGE_ORDER_ID => $id, ); $couponList = $VipMCouponModel->getSelect($map); if (!empty($couponList)) { foreach ($couponList as $v) { if ($v[$VipMCouponModel::IS_USE] == 2) { $res['status'] = 0; $res['msg'] = '优惠券已被使用,不能退款'; return $res; } } } //次卡 $subCardList = $VipCardModel->getFind(array($VipCardModel::TYPE => 1, $VipCardModel::RECHARGE_ORDER_ID => $id)); if (!empty($subCardList)) { if ($subCardList[$VipCardModel::USE_NUM] > 0) { $res['status'] = 0; $res['msg'] = '次卡已被使用,不能退款'; return $res; } } //卡包 $bagCardList = $VipCardModel->getSelect(array($VipCardModel::TYPE => 2, $VipCardModel::RECHARGE_ORDER_ID => $id)); if (!empty($bagCardList)) { foreach ($bagCardList as $v) { if ($v[$VipCardModel::USE_NUM] > 0) { $res['status'] = 0; $res['msg'] = '卡包已被使用,不能退款'; return $res; } } } //添加pay_order数据 $RPOModel = D('RetailPayOrder'); $PMap[$RPOModel::ID] = $rechargeOrder[$RechargeOrderModel::PAY_ORDER_ID]; $paySuccess = $RPOModel->getFind($PMap); //加上代金券金额 $paySuccess[$RPOModel::TRADE_AMOUNT] = $paySuccess['pay_coupon_fee'] >0?round($paySuccess[$RPOModel::TRADE_AMOUNT] + $paySuccess['pay_coupon_fee'],2):$paySuccess[$RPOModel::TRADE_AMOUNT]; $item = array( $RPOModel::PAY_ORDER_ID => $paySuccess[$RPOModel::ID], //'退款原订单id', $RPOModel::ORDER_TYPE => 2, //'1购买商品 2会员充值', $RPOModel::SCENE_TYPE => 2, //'1付款 3退款, $RPOModel::PAY_TYPE => $paySuccess[$RPOModel::PAY_TYPE], //'1微信 2支付宝 3现金 4小程序微信 5其他支付方式 6会员余额', $RPOModel::TRADE_AMOUNT => $paySuccess[$RPOModel::TRADE_AMOUNT], //'订单金额', $RPOModel::STORE_ID => $paySuccess[$RPOModel::STORE_ID], //'门店id', $RPOModel::MERCHANT_ID => $paySuccess[$RPOModel::MERCHANT_ID], //'商户id', $RPOModel::CASHIER_ID => $paySuccess[$RPOModel::CASHIER_ID], //'收银员id', $RPOModel::VID => $paySuccess[$RPOModel::VID], //'会员id', $RPOModel::TRADE_NO => $paySuccess[$RPOModel::TRADE_NO], //'订单微信支付宝流水号', $RPOModel::ADD_TIME => time(), //'订单创建时间', $RPOModel::M_PAY_TYPE => $paySuccess[$RPOModel::M_PAY_TYPE], //'订单支付类型 1普通商户模式 2服务商模式 3新大陆模式', $RPOModel::BILL_ID => $paySuccess[$RPOModel::BILL_ID], //'bill表id', $RPOModel::OTHER_PAY_ID => $paySuccess[$RPOModel::OTHER_PAY_ID], //'其他支付id', ); $new_pay_order = $RPOModel->addPayOrder($item); //分期到账状态修改 $InstallAccountModel = new InstallAccountModel(); $InstallAccountModel->updateOrder(['order_id' => $rechargeOrder['id']], ['state' => 1]); $PaySetModel = D('RetailPaySet'); $paySet = $PaySetModel->getFindMerchantPaySet($merchant_id); //支付设置 if ($new_pay_order) { $new_pay_order['before_amount'] = $paySuccess[$RPOModel::TRADE_AMOUNT]; $new_pay_order['before_trade_no'] = $paySuccess[$RPOModel::OUT_TRADE_NO]; if ($item[$RPOModel::PAY_TYPE] == 1 || $item[$RPOModel::PAY_TYPE] == 2) { //'1微信 2支付宝 if ($new_pay_order[$RPOModel::M_PAY_TYPE] == 3) { //新大陆 $res = A('Pay/PayContinent')->toOrderRefund_v3($new_pay_order); } else if ($new_pay_order[$RPOModel::M_PAY_TYPE] == 4) { //云闪付 $payObj = new CloudPayController(); $res = $payObj->cloudRefund($new_pay_order, $paySet['config'], $item[$RPOModel::PAY_TYPE]); } else if ($new_pay_order[$RPOModel::M_PAY_TYPE] == 7) { //钱客云 $moneyGuest = new \MoneyGuestPay\Business\MoneyGuest(); $res = $moneyGuest->moneyGuestRefund($new_pay_order, $paySet['config']); if($res['status'] == 1){ //退钱分润 A('Pay/Base')->doRefundRate($new_pay_order['trade_no'], $new_pay_order['trade_amount'], 6);//钱客云分润 } } else if ($new_pay_order[$RPOModel::PAY_TYPE] == 1) { //微信 $res = A('Pay/NewWxPay')->toWxRefund_v2($new_pay_order, $paySet['config']); } else { //支付宝 $res = A('Pay/NewAliPay')->toAliRefund_v2($new_pay_order, $paySet['config']); } if ($res['status'] != 1) { $res['status'] = 0; $res['msg'] = '退款失败'; return $res; } else { $pMap = array($RPOModel::ID => $new_pay_order[$RPOModel::ID]); $save = array( $RPOModel::ORDER_STATE => 'REFUND', $RPOModel::TRADE_DATE => time() ); $RPOModel->updateOrder($pMap, $save); } } else if ($item[$RPOModel::PAY_TYPE] == 4) { //小程序 if ($new_pay_order[$RPOModel::M_PAY_TYPE] == 3) { $res = A('Pay/PayContinent')->toOrderRefund_v3($new_pay_order); if ($res['status'] == 1) { $pMap = array($RPOModel::ID => $new_pay_order[$RPOModel::ID]); $save = array( $RPOModel::ORDER_STATE => 'REFUND', $RPOModel::TRADE_DATE => time() ); $RPOModel->updateOrder($pMap, $save); } else { $res['status'] = 0; $res['msg'] = '退款失败'; return $res; } } else if ($new_pay_order[$RPOModel::M_PAY_TYPE] == 4) { //云闪付 $payObj = new CloudPayController(); $res = $payObj->cloudRefund($new_pay_order, $paySet['config'], 1); if ($res['status'] == 1) { $pMap = array($RPOModel::ID => $new_pay_order[$RPOModel::ID]); $save = array( $RPOModel::ORDER_STATE => 'REFUND', $RPOModel::TRADE_DATE => time() ); $RPOModel->updateOrder($pMap, $save); } else { $res['status'] = 0; $res['msg'] = '退款失败'; return $res; } } else if ($new_pay_order[$RPOModel::M_PAY_TYPE] == 7) { //钱客云 $moneyGuest = new \MoneyGuestPay\Business\MoneyGuest(); $res = $moneyGuest->moneyGuestRefund($new_pay_order, $paySet['config']); if($res['status'] == 1){ //退钱分润 A('Pay/Base')->doRefundRate($new_pay_order['trade_no'], $new_pay_order['trade_amount'], 6);//钱客云分润 } } else { $out_refund_no = $new_pay_order[$RPOModel::OUT_TRADE_NO]; $payConfig = $paySet['config']; if ($paySuccess[$RPOModel::M_PAY_TYPE] == 1 || $paySuccess[$RPOModel::M_PAY_TYPE] == 0) { $key = $payConfig[$PaySetModel::XCX_SECRET_KEY]; $post['appid'] = $payConfig[$PaySetModel::XCX_APPID]; $post['mch_id'] = $payConfig[$PaySetModel::XCX_MCH_ID]; $apiclient_cert = $payConfig[$PaySetModel::XCX_AC_CERT]; $apiclient_key = $payConfig[$PaySetModel::XCX_AC_KEY]; } else { $SystemConfigModel = D('SystemConfig'); $systemConfig = $payConfig['systemConfig']; $post['appid'] = $systemConfig[$SystemConfigModel::WX_APPID]; $post['mch_id'] = $systemConfig[$SystemConfigModel::MCH_ID]; $post['sub_mch_id'] = $payConfig[$PaySetModel::XCX_SUB_MCH_ID]; $post['sub_appid'] = $payConfig[$PaySetModel::XCX_SUB_APPID]; $key = $systemConfig[$SystemConfigModel::WX_KEY]; $apiclient_cert = $systemConfig[$SystemConfigModel::WX_AC_CERT]; $apiclient_key = $systemConfig[$SystemConfigModel::WX_AC_KEY]; } $post['nonce_str'] = createKey(); $post['out_refund_no'] = $out_refund_no; $post['out_trade_no'] = $paySuccess[$RPOModel::OUT_TRADE_NO]; $post['spbill_create_ip'] = $_SERVER['SERVER_ADDR']; //服务器终端的ip $post['total_fee'] = $paySuccess[$RPOModel::TRADE_AMOUNT] * 100; //总金额 最低为一分钱 必须是整数 $post['refund_fee'] = $paySuccess[$RPOModel::TRADE_AMOUNT] * 100; $sign = createSign($post, $key); //生成签名 $post['sign'] = $sign; $post_xml = arrToXml($post); $url = 'https://api.mch.weixin.qq.com/secapi/pay/refund'; $xml = http_cert_request($url, $post_xml, $apiclient_cert, $apiclient_key); //POST方式请求http $array = xmlToArray($xml); if ($array['return_code'] == "SUCCESS" && $array['result_code'] == "SUCCESS") { if ($paySuccess[$RPOModel::M_PAY_TYPE] == 1 || $paySuccess[$RPOModel::M_PAY_TYPE] == 0) { $search['appid'] = $payConfig[$PaySetModel::XCX_APPID]; $search['mch_id'] = $payConfig[$PaySetModel::XCX_MCH_ID]; } else { $search['appid'] = $systemConfig[$SystemConfigModel::WX_APPID]; $search['mch_id'] = $systemConfig[$SystemConfigModel::MCH_ID]; $search['sub_mch_id'] = $payConfig[$PaySetModel::XCX_SUB_MCH_ID]; $search['sub_appid'] = $payConfig[$PaySetModel::XCX_SUB_APPID]; } $search['nonce_str'] = createKey(); $search['transaction_id'] = $array['transaction_id']; $sign = createSign($search, $key); //签名 $search['sign'] = $sign; $search_xml = arrToXml($search); $url = 'https://api.mch.weixin.qq.com/pay/refundquery'; $xml = http_request($url, $search_xml, $apiclient_cert, $apiclient_key); //POST方式请求http $search_res = xmlToArray($xml); if ($search_res['return_code'] == "SUCCESS" && $search_res['result_code'] == "SUCCESS") { switch ($search_res['refund_status_0']) { case 'SUCCESS': case 'PROCESSING': $result['status'] = 1; $result['refund_no'] = $search_res['refund_id_0']; $result['msg'] = '退款成功'; $pMap = array($RPOModel::ID => $new_pay_order[$RPOModel::ID]); $save = array( $RPOModel::TRADE_NO => $search_res['refund_id_0'], $RPOModel::ORDER_STATE => 'REFUND', $RPOModel::TRADE_DATE => time() ); $RPOModel->updateOrder($pMap, $save); break; case 'REFUNDCLOSE': $result['status'] = 0; $result['msg'] = '退款关闭'; break; case 'CHANGE': $result['status'] = 0; $result['msg'] = '退款异常,请到商户品台手动处理'; default: $result['status'] = 0; $result['msg'] = '退款失败'; } if ($result['status'] != 1) { return $result; } } else { $result['status'] = 0; $result['msg'] = '退款失败'; return $result; } } else { $result['return'] = $array; $result['status'] = 0; $result['msg'] = $array['err_code_des'] ? $array['err_code_des'] : ($array['return_msg'] ? $array['return_msg'] : '退款失败'); return $result; } } } else if ($item[$RPOModel::PAY_TYPE] == 3) { //现金 $pMap = array($RPOModel::ID => $new_pay_order[$RPOModel::ID]); $save = array( $RPOModel::ORDER_STATE => 'REFUND', $RPOModel::TRADE_DATE => time() ); $RPOModel->updateOrder($pMap, $save); } } else { $res['status'] = 0; $res['msg'] = '退款订单创建失败'; return $res; } //微信代金券状态修改 if ($res['response']['coupon_refund_count'] > 0 || $search_res['refund_count'] > 0) { if (!empty($res['response']['coupon_refund_count'])) { $pay_info = $res['response']; } else if ($search_res['refund_count'] > 0) { $pay_info = $search_res; $pay_info['coupon_refund_count'] = $search_res['refund_count']; $pay_info['coupon_refund_id_0'] = $search_res['coupon_refund_id_0_0']; $pay_info['cash_refund_fee'] = $search_res['cash_fee']; } $PayCouponClass = new PayCoupon(); $couponResult = $PayCouponClass->couponVerification_v1(json_encode( [ 'pay_info' => $pay_info, 'merchant_id' => $item['merchant_id'], 'coupon_way' => 2 ])); //修改代金券状态 if ($couponResult['status'] == 1) { //记录代金券退款金额 $RPOModel->updateOrder([ 'id' => $new_pay_order['id'] ], [ 'pay_coupon_fee' => $paySuccess['pay_coupon_fee'], 'pay_coupon_id_str' => $couponResult['data']['pay_coupon_id_str'], 'refund_coupon_fee' => $couponResult['data']['pay_coupon_fee'], 'trade_amount' => $couponResult['data']['cash_fee'], ]); $RPOModel->toSetInc([ 'id' => $paySuccess['id'] ], 'refund_coupon_fee', $couponResult['data']['pay_coupon_fee']); $recharge_data = [ 'pay_coupon_id_str'=>$couponResult['data']['pay_coupon_id_str'], 'pay_coupon_fee'=>$couponResult['data']['pay_coupon_fee'] ]; //更新实际付款的金额 $paySuccess[$RPOModel::TRADE_AMOUNT] = round($paySuccess[$RPOModel::TRADE_AMOUNT] - $couponResult['data']['pay_coupon_fee'],2); } } //退积分 if (!empty($integralDetail)) { $integralReduce = $VipModel->toSetDec($VMap, $VipModel::INTEGRAL, $integralDetail[$IntegralOrderModel::INTEGRAL]); //减少retail_vip积分 if (empty($integralReduce)) { $res['status'] = 0; $res['msg'] = '积分退回失败'; return $res; } unset($integralDetail[$IntegralOrderModel::ID]); $integralDetail[$IntegralOrderModel::TYPE] = 10; $integralDetail[$IntegralOrderModel::ADD_TIME] = time(); $integralDetail[$IntegralOrderModel::REMARK] = '退款' . $integralDetail[$IntegralOrderModel::INTEGRAL] . '积分'; $integralAdd = $IntegralOrderModel->addOrder($integralDetail); //添加integral_order记录 if (empty($integralAdd)) { $res['status'] = 0; $res['msg'] = '积分退回失败'; return $res; } } //退优惠券 券包 if (!empty($couponList)) { $map[$VipMCouponModel::MCOUPON_GROUP_ID] = array('exp', 'is null'); $couponIds = $VipMCouponModel->getFindField($map, $VipMCouponModel::MCOUPON_ID, true); //发放的所有优惠券id $map[$VipMCouponModel::MCOUPON_GROUP_ID] = array('gt', 0); $couponGroupId = $VipMCouponModel->getFindField($map, $VipMCouponModel::MCOUPON_GROUP_ID); //发放的所有券包id if ($couponIds || $couponGroupId) { $couponUpdate = $VipMCouponModel->deleteOrder(array($VipMCouponModel::RECHARGE_ORDER_ID => $id)); //删除优惠券 if (empty($couponUpdate)) { $res['status'] = 0; $res['msg'] = '优惠券退回失败'; return $res; } if ($couponIds) { $couponInc = $MCouponModel->toSetInc(array($MCouponModel::ID => array('in', $couponIds)), $MCouponModel::COUPON_NUM, 1); //增加剩余数量 if (empty($couponInc)) { $res['status'] = 0; $res['msg'] = '优惠券退回失败'; return $res; } } if ($couponGroupId) { $RMCGModel = D('RetailMCouponGroup'); $couponGroupInc = $RMCGModel->toSetInc(array($RMCGModel::ID => $couponGroupId), $RMCGModel::COUPON_GROUP_NUM, 1); //增加剩余数量 if (empty($couponGroupInc)) { $res['status'] = 0; $res['msg'] = '优惠券退回失败'; return $res; } } } } //退次卡 if (!empty($subCardList)) { $subDel = $VipCardModel->deleteOrder(array($VipCardModel::ID => $subCardList[$VipCardModel::ID])); //删除次卡 if (!$subDel) { $res['status'] = 0; $res['msg'] = '次卡退回失败'; return $res; } $subAddNum = $subCardModel->toSetInc(array($subCardModel::ID => $subCardList[$VipCardModel::SUB_CARD_ID]), $subCardModel::SUR_PLUS, 1); //次卡加库存 if (!$subAddNum) { $res['status'] = 0; $res['msg'] = '次卡退回失败'; return $res; } } //退卡包 if (!empty($bagCardList)) { $bagDel = $VipCardModel->deleteOrder(array($VipCardModel::TYPE => 2, $VipCardModel::RECHARGE_ORDER_ID => $id)); //该卡包下面的次卡删除 if (empty($bagDel)) { $res['status'] = 0; $res['msg'] = '卡包退回失败'; return $res; } $bagAdd = $CardBagModel->toSetInc(array($CardBagModel::ID => $bagCardList[0][$VipCardModel::CARD_BAG_ID]), $CardBagModel::SUR_PLUS, 1); if (empty($bagAdd)) { $res['status'] = 0; $res['msg'] = '卡包退回失败'; return $res; } } //减少会员余额 $balance = $VipModel->toSetDec($VMap, $VipModel::BALANCE, $rechargeOrder['all_money']); if (empty($balance)) { $res['status'] = 0; $res['msg'] = '金额退回失败'; return $res; } //修改refund_status为2 $recharge_data['refund_status'] = 2; $updateStatus = $RechargeOrderModel->updateOrder($where, $recharge_data); if (empty($updateStatus)) { $res['status'] = 0; $res['msg'] = '退款失败'; return $res; } //添加recharge_order表退款记录 $addRechargeOrder = $rechargeOrder; unset($addRechargeOrder[$RechargeOrderModel::ID]); switch ($scene_Type) { case 1: $addRechargeOrder[$RechargeOrderModel::USER_TYPE] = 3; break; case 2: $addRechargeOrder[$RechargeOrderModel::USER_TYPE] = 1; break; case 3: $addRechargeOrder[$RechargeOrderModel::USER_TYPE] = 2; break; } $addRechargeOrder['pay_order_id'] = $new_pay_order['id']; $addRechargeOrder[$RechargeOrderModel::SCENE_TYPE] = $scene_Type; $addRechargeOrder[$RechargeOrderModel::TYPE] = 9; $addRechargeOrder[$RechargeOrderModel::ADD_TIME] = time(); $addRechargeOrder[$RechargeOrderModel::REMARK] = '充值退款' . $rechargeOrder['all_money'] . '元'; $addRechargeOrder[$RechargeOrderModel::RECHARGE_ORDER_ID] = $rechargeOrder[$RechargeOrderModel::ID]; $addRecharge = $RechargeOrderModel->addOrder($addRechargeOrder); if (empty($addRecharge)) { $res['status'] = 0; $res['msg'] = '退款失败'; return $res; } //修改pay_order表refund_money if ($paySuccess[$RPOModel::TRADE_AMOUNT] != 0) { $update = $RPOModel->updateOrder($PMap, array($RPOModel::REFUND_MONEY => $paySuccess[$RPOModel::TRADE_AMOUNT])); if (empty($update)) { $res['status'] = 0; $res['msg'] = '退款失败'; return $res; } } $printArr = $this->printData($paySuccess); A('PayApi/Printer')->balanceRefundPrint($printArr); $res['status'] = 1; $res['msg'] = '退款成功'; $res['data'] = $printArr; } else { $res['status'] = 0; $res['msg'] = '数据出错'; } return $res; } /* * 充值退款打印数据 */ public function printData($paySuccess) { $VipModel = D('RetailVip'); $merchant_id = $paySuccess['merchant_id']; $vip_info = $VipModel->getFind(array('id' => $paySuccess['vid'])); $vip_number = $vip_info['mobile_phone'] ? $vip_info['mobile_phone'] : $vip_info['cardnum']; $vip_number = substr($vip_number, 0, 3) . '****' . substr($vip_number, -3); if ($vip_info['plus_type'] == 2) { $grade_name = 'PLUS'; } else { $VipIntegralModel = D('RetailVipIntegral'); $where = array( $VipIntegralModel::MERCHANT_ID => $merchant_id, $VipIntegralModel::DISCOUNT => array('gt', 0), $VipIntegralModel::MIN_INTEGRAL => array('ELT', $vip_info[$VipModel::GRADE_INTEGRAL]) ); $grade = $VipIntegralModel->getOrderFind($where, '*', $VipIntegralModel::MIN_INTEGRAL . ' desc'); if (empty($grade)) { $grade_name = '普通会员'; } else { $grade_name = $grade[$VipIntegralModel::CARD_NAME]; } } switch ($paySuccess['pay_type']) { case 1: $pay_name = '微信'; break; case 2: $pay_name = '支付宝 '; break; case 3: $pay_name = '现金'; break; case 4: $pay_name = '小程序微信 '; break; case 5: $pay_name = '其他支付方式 '; break; } $StoreModel = D('RetailStore'); $store_name = $StoreModel->getFindField(array($StoreModel::ID => $paySuccess['store_id']), $StoreModel::STORE_NAME); //门店名称 $printArr = array( 'store_id' => $paySuccess['store_id'], //门店id 'store_name' => $store_name, //门店名称 'order_number' => $paySuccess['out_trade_no'], //退款订单 'trade_amount' => round($paySuccess['trade_amount'], 2), //退款金额 'pay_name' => $pay_name, //退款方式 'grade_name' => $grade_name, //等级 'vip_number' => $vip_number, //会员号 'balance' => round($vip_info['balance'], 2), //余额 'time' => date('Y-m-d H:i:s', time()), //退款时间 'name' => $vip_info['name'] ? $vip_info['name'] : ($vip_info['nickname'] ? $vip_info['nickname'] : '未设置'), //会员名称 'integral' => $vip_info['integral'] ? $vip_info['integral'] : 0 ); return $printArr; } }