197 行
8.9 KiB
PHP
可执行文件
197 行
8.9 KiB
PHP
可执行文件
<?php
|
||
|
||
namespace Common\Model;
|
||
|
||
use Think\Model;
|
||
|
||
//[1.5.22]
|
||
class PaysetModel extends Model
|
||
{
|
||
protected $tableName = 'retail_payset';
|
||
protected $fields = array(
|
||
'id', //int(11) NOT NULL AUTO_INCREMENT,
|
||
'wx_appid', //varchar(32) DEFAULT '' COMMENT '商户appid',
|
||
'wx_secret_key', //varchar(255) DEFAULT NULL COMMENT '商户密钥',
|
||
'wx_mch_id', //int(11) DEFAULT NULL COMMENT '商户号',
|
||
'wxpay', //tinyint(3) DEFAULT '1' COMMENT '微信支付状态:1:开启 2:关闭',
|
||
'balance', //tinyint(3) DEFAULT '1' COMMENT '余额支付状态:1:开启 2:关闭',
|
||
'merchantid', //int(11) DEFAULT NULL COMMENT '商户id',
|
||
'addtime', //varchar(18) DEFAULT '' COMMENT '创建时间',
|
||
'alipay_public_key', //text COMMENT '支付宝公钥',
|
||
'alipay_private_key', //text COMMENT '支付宝商户私钥',
|
||
'alipay_appid', //varchar(30) DEFAULT '' COMMENT '支付宝应用ID',
|
||
'alipay_sellerid', //varchar(30) DEFAULT '' COMMENT '卖家支付宝账号ID',
|
||
'zfpay', //varchar(255) DEFAULT '1' COMMENT '支付宝支付状态:1:开启 2:关闭',
|
||
'xcx_appid', //varchar(128) DEFAULT NULL COMMENT '小程序appid',
|
||
'xcx_mer_id', //varchar(255) DEFAULT NULL COMMENT '小程序商户号',
|
||
'xcx_secret_key', //varchar(255) DEFAULT NULL COMMENT '小程序商户密钥',
|
||
'xcx_wxpay', //varchar(1) DEFAULT '1' COMMENT '小程序微信支付状态: 1开启 2关闭',
|
||
'apiclient_cert', //text DEFAULT NULL COMMENT 'apiclient_cert证书路径',
|
||
'apiclient_key', //text DEFAULT NULL COMMENT 'apiclient_key证书路径',
|
||
'status', //varchar(1) DEFAULT '1' COMMENT '商户总支付状态 1普通模式开启 3服务商模式开启 4新大陆支付',
|
||
'wx_appsecret', //varchar(50) DEFAULT NULL COMMENT '商户appsecret',
|
||
'wx_sub_appid', //varchar(32) DEFAULT NULL COMMENT '微信服务商模式appid',
|
||
'wx_sub_mchid', //varchar(12) DEFAULT NULL,
|
||
'alipay_token', //varchar(255) DEFAULT NULL COMMENT '支付宝应用token值',
|
||
'xcx_apiclient_cert', //text DEFAULT NULL COMMENT '小程序apiclient_cert证书路径',
|
||
'xcx_apiclient_key', //text DEFAULT NULL COMMENT '小程序apiclient_key证书路径',
|
||
'wx_pay_state', //tinyint(1) DEFAULT '0' COMMENT '微信模式 0关闭 1普通商户 2服务商',
|
||
'al_pay_state', //tinyint(1) DEFAULT '0' COMMENT '支付宝支付模式 0关闭 1普通商户 2服务商',
|
||
'xcx_pay_state', //tinyint(1) DEFAULT '0' COMMENT '小程序支付 0关闭 1普通 2服务商',
|
||
'xcx_sub_mchid', //varchar(30) DEFAULT NULL COMMENT '小程序子商户号',
|
||
'xcx_sub_appid', //varchar(30) DEFAULT NULL COMMENT '小程序子商户appid',,
|
||
'wx_xcx_serial_no', //微信小程序配置的普通商户证书序列号
|
||
'wx_serial_no', //微信公众号配置的普通商户证书序列号
|
||
);
|
||
|
||
/*
|
||
* 查询门店
|
||
* */
|
||
public function getFind($map)
|
||
{
|
||
$res = $this->where($map)->find();
|
||
return $res;
|
||
}
|
||
|
||
/*
|
||
* 查询商户
|
||
* */
|
||
public function getFindConfig($storeid)
|
||
{
|
||
$res = $this->alias('p')
|
||
->join('ls_retail_store as s on s.merchantid=p.merchantid')
|
||
->join('ls_retail_merchant as m on s.merchantid=m.id')
|
||
->where(array('s.id' => $storeid))
|
||
->field('m.name,s.storetag,p.*')
|
||
->find();
|
||
return $res;
|
||
}
|
||
|
||
/**
|
||
* 获取商户支付配置与合伙人配置
|
||
* @param $merchant_id
|
||
* @return mixed
|
||
*/
|
||
public function getFindMerchantPaySet($merchant_id)
|
||
{
|
||
$paySet = $this->where(array('merchantid' => $merchant_id))->find();
|
||
if ($paySet) {
|
||
$merchant = D('Merchant')->getFind(array('id' => $merchant_id), 'partnerid'); //获取代理商id
|
||
$paySet['systemConfig'] = D('SystemConfig')->getFind(array('partnerid' => $merchant['partnerid']));
|
||
$res['config'] = $paySet;
|
||
$res['status'] = 1;
|
||
} else {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '商户未配置支付';
|
||
}
|
||
return $res;
|
||
}
|
||
|
||
/**
|
||
* 获取商户支付模式及权限
|
||
* @param $merchant_id 商户id
|
||
* @param $pay_type 支付方式 1微信 2支付宝 3微信小程序
|
||
* @return mixed
|
||
*/
|
||
public function getFindMerchantConfig($merchant_id, $pay_type)
|
||
{
|
||
$paySet = $this->where(array('merchantid' => $merchant_id))->find();
|
||
if ($paySet) {
|
||
//判断支付方式
|
||
switch ($pay_type) {
|
||
case '1':
|
||
//微信
|
||
$pay_name = '微信';
|
||
$pay_state = $paySet['wx_pay_state'];
|
||
break;
|
||
case '2':
|
||
//支付宝
|
||
$pay_name = '支付宝';
|
||
$pay_state = $paySet['al_pay_state'];
|
||
break;
|
||
case '3':
|
||
//微信小程序
|
||
$pay_name = '微信小程序';
|
||
$pay_state = $paySet['xcx_pay_state'];
|
||
}
|
||
if ($pay_state == 0) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '商户未开启' . $pay_name . '支付';
|
||
return $res;
|
||
}
|
||
$merchant = D('Merchant')->getFind(array('id' => $merchant_id), 'agentid,partnerid'); //获取代理商id
|
||
$agentPayAuth = D('PayPattern')->getAgentPattern($merchant['agentid']); // 获取代理商支付权限
|
||
if (!$agentPayAuth) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '代理商无线上支付权限';
|
||
return $res;
|
||
}
|
||
//判断代理商支付权限
|
||
switch ($pay_state) {
|
||
case '1':
|
||
//普通商户
|
||
if ($agentPayAuth['general_pay'] != 1) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '代理商无普通商户支付模式权限';
|
||
return $res;
|
||
}
|
||
break;
|
||
case '2':
|
||
//服务商
|
||
if ($agentPayAuth['service_pay'] != 1) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '代理商无服务商支付模式权限';
|
||
return $res;
|
||
}
|
||
break;
|
||
case '3':
|
||
//新大陆
|
||
if ($agentPayAuth['new_continent_pay'] != 1) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '代理商无新大陆支付模式权限';
|
||
return $res;
|
||
}
|
||
break;
|
||
}
|
||
$merchantPayAuth = D('MerchantPayAuth')->getFind(array('merchant_id' => $merchant_id));//商户支付权限
|
||
//判断商户支付权限
|
||
switch ($pay_state) {
|
||
case '1':
|
||
//普通商户
|
||
if ($merchantPayAuth['general_pay'] != 1) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '商户无普通商户支付模式权限';
|
||
return $res;
|
||
}
|
||
break;
|
||
case '2':
|
||
//服务商
|
||
if ($merchantPayAuth['service_pay'] != 1) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '商户无服务商支付模式权限';
|
||
return $res;
|
||
}
|
||
break;
|
||
case '3':
|
||
//新大陆
|
||
if ($merchantPayAuth['new_continent_pay'] != 1) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '商户无新大陆支付模式权限';
|
||
return $res;
|
||
}
|
||
break;
|
||
}
|
||
$res['status'] = 1;
|
||
$res['m_pay_type'] = $pay_state;
|
||
if ($pay_state == 2) {
|
||
$paySet['systemConfig'] = D('SystemConfig')->getFind(array('partnerid' => $merchant['partnerid']));
|
||
}
|
||
$paySet['name'] = $merchant['name'];
|
||
$res['config'] = $paySet;
|
||
} else {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '商户未配置支付';
|
||
}
|
||
return $res;
|
||
}
|
||
} |