初始上传
This commit is contained in:
96
addon/alipay/model/Config.php
Executable file
96
addon/alipay/model/Config.php
Executable file
@@ -0,0 +1,96 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\alipay\model;
|
||||
|
||||
use app\model\system\Config as ConfigModel;
|
||||
use app\model\BaseModel;
|
||||
|
||||
/**
|
||||
* 支付宝支付配置
|
||||
*/
|
||||
class Config extends BaseModel
|
||||
{
|
||||
|
||||
private $encrypt = '******';
|
||||
|
||||
/**
|
||||
* 设置支付配置
|
||||
* @param $data
|
||||
* @param int $site_id
|
||||
* @param string $app_module
|
||||
* @return array
|
||||
*/
|
||||
public function setPayConfig($data, $site_id = 0, $app_module = 'shop')
|
||||
{
|
||||
$config = new ConfigModel();
|
||||
|
||||
// 未加密前的数据
|
||||
$original_config = $this->getPayConfig($site_id)[ 'data' ][ 'value' ];
|
||||
|
||||
// 检测数据是否发生变化,如果没有变化,则保持未加密前的数据
|
||||
if (!empty($data[ 'private_key' ]) && $data[ 'private_key' ] == $this->encrypt) {
|
||||
$data[ 'private_key' ] = $original_config[ 'private_key' ]; // 应用私钥
|
||||
}
|
||||
if (!empty($data[ 'public_key' ]) && $data[ 'public_key' ] == $this->encrypt) {
|
||||
$data[ 'public_key' ] = $original_config[ 'public_key' ]; // 应用公钥
|
||||
}
|
||||
if (!empty($data[ 'alipay_public_key' ]) && $data[ 'alipay_public_key' ] == $this->encrypt) {
|
||||
$data[ 'alipay_public_key' ] = $original_config[ 'alipay_public_key' ]; // 支付宝公钥
|
||||
}
|
||||
if (!empty($data[ 'public_key_crt' ]) && $data[ 'public_key_crt' ] == $this->encrypt) {
|
||||
$data[ 'public_key_crt' ] = $original_config[ 'public_key_crt' ]; // 应用公钥证书
|
||||
}
|
||||
if (!empty($data[ 'alipay_public_key_crt' ]) && $data[ 'alipay_public_key_crt' ] == $this->encrypt) {
|
||||
$data[ 'alipay_public_key_crt' ] = $original_config[ 'alipay_public_key_crt' ]; // 支付宝公钥证书
|
||||
}
|
||||
if (!empty($data[ 'alipay_with_crt' ]) && $data[ 'alipay_with_crt' ] == $this->encrypt) {
|
||||
$data[ 'alipay_with_crt' ] = $original_config[ 'alipay_with_crt' ]; // 支付宝根证书
|
||||
}
|
||||
|
||||
$res = $config->setConfig($data, '支付宝支付配置', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'ALI_PAY_CONFIG' ] ]);
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取支付配置
|
||||
* @param int $site_id
|
||||
* @param string $app_module
|
||||
* @param bool $need_encrypt 是否需要加密数据,true:加密、false:不加密
|
||||
* @return array
|
||||
*/
|
||||
public function getPayConfig($site_id = 0, $app_module = 'shop', $need_encrypt = false)
|
||||
{
|
||||
$config = new ConfigModel();
|
||||
$res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'ALI_PAY_CONFIG' ] ]);
|
||||
if (!empty($res[ 'data' ][ 'value' ]) && $need_encrypt) {
|
||||
// 加密敏感信息
|
||||
if (!empty($res[ 'data' ][ 'value' ][ 'private_key' ])) {
|
||||
$res[ 'data' ][ 'value' ][ 'private_key' ] = $this->encrypt; // 应用私钥
|
||||
}
|
||||
if (!empty($res[ 'data' ][ 'value' ][ 'public_key' ])) {
|
||||
$res[ 'data' ][ 'value' ][ 'public_key' ] = $this->encrypt; // 应用公钥
|
||||
}
|
||||
if (!empty($res[ 'data' ][ 'value' ][ 'alipay_public_key' ])) {
|
||||
$res[ 'data' ][ 'value' ][ 'alipay_public_key' ] = $this->encrypt; // 支付宝公钥
|
||||
}
|
||||
if (!empty($res[ 'data' ][ 'value' ][ 'public_key_crt' ])) {
|
||||
$res[ 'data' ][ 'value' ][ 'public_key_crt' ] = $this->encrypt; // 应用公钥证书
|
||||
}
|
||||
if (!empty($res[ 'data' ][ 'value' ][ 'alipay_public_key_crt' ])) {
|
||||
$res[ 'data' ][ 'value' ][ 'alipay_public_key_crt' ] = $this->encrypt; // 支付宝公钥证书
|
||||
}
|
||||
if (!empty($res[ 'data' ][ 'value' ][ 'alipay_with_crt' ])) {
|
||||
$res[ 'data' ][ 'value' ][ 'alipay_with_crt' ] = $this->encrypt; // 支付宝根证书
|
||||
}
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user