文件
mashangyoujiu/Application/Common/Model/PaysetModel.class.php

197 行
8.9 KiB
PHP
可执行文件

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<?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;
}
}