122 lines
3.4 KiB
PHP
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;
|
|
}
|
|
|
|
} |