80 行
2.6 KiB
PHP
可执行文件
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'], "支付失败");
|
|
}
|
|
}
|
|
} |