2025-08-06 18:24:19 +08:00

122 lines
3.4 KiB
PHP

<?php
namespace bw\lakala;
/**
* 拉卡拉服务工厂
*/
class LakalaService
{
//编写单例模式
private static $instance;
private $config;
private $lakalaconfig;
private $plantform_data;
private $sm4 = 'none';
private $host_pro = 'https://s2.lakala.com';
private $host_test = 'https://test.wsmsd.cn/sit';
public function getClientIp()
{
return request()->ip();
}
private function __construct()
{
$this->init();
}
private function __clone()
{
return;
}
public static function getInstance()
{
if (!(self::$instance instanceof self)) {
self::$instance = new self();
}
return self::$instance;
}
public function init()
{
$site = config("site");
$lakala_test_switch = config("site.lakala_test_switch");
$this->plantform_data["lakala_apply_name"] = $site["lakala_apply_name"];
if(config("site.lakala_test_switch")){
$this->plantform_data["lakala_partner_id"] = $site["test_lakala_partner_id"];
//沙箱测试环境
$this->config = [
'app_id' => $site["test_lakala_apply_id"],
'serial_no' =>$site["test_lakala_serial_no"],
'sm4_key' =>$site["test_lakala_sm4_secret_key"],
//当前根目录下放置公钥文件
"merchant_private_key_path" => ROOT_PATH . 'public' . $site["test_lakala_app_private_key"],
"lkl_certificate_path"=> ROOT_PATH . 'public' . $site["test_lakala_plantform_public_k"],
];
if($this->config["sm4_key"]) $this->sm4 = $site["test_lakala_encryption_mode"];
}else{
$this->plantform_data["lakala_partner_id"] = $site["lakala_partner_id"];
//正式环境
$this->config = [
'app_id' => $site["lakala_apply_id"],
'serial_no' => $site["lakala_serial_no"],
'sm4_key' =>$site["lakala_sm4_secret_key"],
"merchant_private_key_path" => ROOT_PATH . 'public' . $site["lakala_app_private_key"],
"lkl_certificate_path"=> ROOT_PATH . 'public' . $site["lakala_plantform_public_key"],
];
if($this->config["sm4_key"]) $this->sm4 = $site["lakala_encryption_mode"];
}
$this->config["app_debug"] = $lakala_test_switch ? true:false;
$this->config["host_pro"] = $this->host_pro;
$this->config["host_test"] = $this->host_test;
}
/**v2api 接口
* @param $api_model
* @return \Lakala\OpenAPISDK\V2\Api\V2LakalaApi
*/
public function v2($api_model_class = null){
$config = new \Lakala\OpenAPISDK\V2\V2Configuration($this->config);
if($api_model_class){
$api = new $api_model_class($config,$this->sm4);
}else{
$api = new \Lakala\OpenAPISDK\V2\Api\V2LakalaApi($config,$this->sm4);
}
return $api;
}
/** v3api 接口
* @param $api_model
* @return void
*/
public function v3($api_model_class = null){
// var_dump($this->config);die;
$config = new \Lakala\OpenAPISDK\V3\Configuration($this->config);
if($api_model_class){
$api = new $api_model_class($config,$this->sm4);
}else{
$api = new \Lakala\OpenAPISDK\V3\Api\LakalaApi($config,$this->sm4);
}
return $api;
}
}