文件

80 行
2.6 KiB
PHP
可执行文件

<?php
namespace CashierApi\Business;
use Common\Model\RetailVipDynamicCodeModel;
use Common\Model\RetailVipModel;
//[1.7.14]
/**
* 会员支付类
* Class VipPay
* [
* 会员卡支付 VipPay
* ]
* @package CashierApi\Business
*/
class VipPay
{
/**
* 会员卡支付
* @param $param
* [
* Order 流水信息
* password 会员支付密码
* vip_login_type 会员登录方式 1动态码 2手机号或实体卡号
* card_code 会员动态码或手机号实体卡号
* storeInfo 门店信息
* ]
* @return mixed
* [
* data 流水信息
* ]
*/
public function VipPay($param)
{
$Order = $param['Order'];
$password = $param['password'];
$vipLoginType = $param['vip_login_type'];
$cardCode = $param['card_code'];
$storeInfo = $param['storeInfo'];
$vipMap = array(
'id' => $Order['vid']
);
try {
$VipModel = new RetailVipModel();
$vipInfo = $VipModel->getFind($vipMap);
if ($vipLoginType == 1) {
$DynamicModel = new RetailVipDynamicCodeModel();
$where = [
'code' => $cardCode,
'status' => 1,
'state' => 0,
'merchantid' => $Order['merchant_id'],
'use_storeid' => $Order['store_id'],
'use_cashierid' => $Order['cashier_id']
];
$old = $DynamicModel->getFind($where);
if (empty($old) || $old['failure_time'] <= time()) {
return callBack(statusCode()['error'], "请会员刷新动态码");
}
$DynamicModel->updateOrder($where, ['status' => 2]);
} else {
if ($vipInfo['density_free'] != 1 && $storeInfo['density_free_state'] != 1) {
//非免密
if (empty($password)) {
return callBack(statusCode()['error'], "请输入会员支付密码");
}
} else {
$password = null;
}
}
$result = A('PayApi/VipPay')->pay($Order['bill_id'], 1, 2, $password, $Order['id']);
return callBack($result['status'], $result['msg'], $result['pay_order'] ? $result['pay_order'] : []);
} catch (\Exception $e) {
// var_dump($e);
return callBack(statusCode()['error'], "支付失败");
}
}
}