TaskSystem/app/api/controller/JunziqianController.php
2023-07-17 18:03:06 +08:00

150 lines
5.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\api\controller;
use app\Request;
use com\junziqian\sdk\bean\req\sign\ApplySignReq;
use com\junziqian\sdk\bean\req\user\OrganizationCreateReq;
use com\junziqian\sdk\util\exception\ResultInfoException;
use com\junziqian\sdk\util\RequestUtils;
use com\junziqian\sdk\util\ShaUtils;
use CURLFile;
class JunziqianController extends BaseApiController
{
public array $notNeedLogin = ['index', 'config', 'policy', 'decorate'];
/**请求地址*/
private $serviceUrl = 'https://api.sandbox.junziqian.com';
/**appkey*/
private $appkey = '3121e0d911b7943d';
/**secret*/
private $appSecret = '1e66d8b73121e0d911b7943d82bba174';
/**默认加密方式:不输入使用sha256,其它可选择项md5,sha1,sha3-256*/
private $encryMethod;
/**默认ts单位:1毫秒,2秒*/
private $tsType;
public function index()
{
halt($this->SigningLink());
}
/**
* 填充签名数据
* @param $req array
*/
public function fillSign($req)
{
/**默认加密方式:不输入使用sha256,其它可选择项md5,sha1,sha3-256*/
$ts = time();
if ($this->tsType == 1) {
$ts = $ts * 1000;
}
$sign = null;
$nonce = md5($ts . "");
$signSrc = "nonce" . $nonce . "ts" . $ts . "app_key" . $this->appkey . "app_secret" . $this->appSecret;
if ($this->encryMethod == null || $this->encryMethod == "sha256") {
$sign = ShaUtils::getSha256($signSrc);
} else if ($this->encryMethod == "sha1") {
$sign = ShaUtils::getSha1($signSrc);
} else if ($this->encryMethod == "md5") {
$sign = md5($signSrc);
} else {
throw new ResultInfoException($this->encryMethod . ",必须为md5,sha1,sha256之一", "PARAM_ERROR");
}
$req['ts'] = $ts;
$req['app_key'] = $this->appkey;
$req['sign'] = $sign;
$req['nonce'] = $nonce; //这只是为了生成一个随机值
if ($this->encryMethod != null) {
$req['encry_method'] = $this->encryMethod; //为''也不能传
}
return $req;
}
//企业实名认证上传
public function EnterpriseCertification()
{
$requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret);
//CURLFile 可以传url或filePath但必须保证文件存在且有效否则php不会报错只会导致http请求返回null并没有调到服务端
//初始化合同参数
$request = new OrganizationCreateReq();
$request->name = "泸州市海之农科技有限公司";
$request->identificationType = 1;
$request->organizationType = 0;
$request->organizationRegNo = "91510502MAC6KM5Q8M";
$request->organizationRegImg = 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/561f8202305171526091317.png'; //new CURLFile('D:/tmp/test.png',null,"test.png");
$request->legalName = "宋其学"; //法人
$request->legalIdentityCard = "5002401XXXXXXXXX"; //法人证件号
$request->legalMobile = "18982406440";
//发起创建企业请求
$response = $requestUtils->doPost("/v2/user/organizationCreate", $request);
return $this->success('', (array)$response);
}
//企业实名认证状态查询
public function StatusQuery()
{
$param = Request()->param();
$requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret);
//初始化合同参数
$request = array(
"emailOrMobile" => $param['email'], //TODO *
);
//发起请求
$response = $requestUtils->doPost("/v2/user/organizationAuditStatus", $request);
return $this->success('', (array)$response);
}
//企业自定义公章
public function Custom_seal()
{
$requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret);
//初始化合同参数
$request = array(
"signName" => "500XXXXXXXXXXXX", //TODO *
"email" => "500XXXXXXXXXXXX", //TODO 不传则保存在商户下,传入注册的邮箱则上传到指定邮箱企业名下
"signImgFile" => new CURLFile('D:/tmp/test.png', null, "test.png"),
);
$response = $requestUtils->doPost("/v2/user/uploadEntSign", $request);
return $this->success('', (array)$response);
}
//签约
public function Signing()
{
$requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret);
//CURLFile 可以传url或filePath但必须保证文件存在且有效否则php不会报错只会导致http请求返回null并没有调到服务端
//初始化合同参数
$request = new ApplySignReq();
$request->contractName = "合同名称";
$request->signatories = json_encode([
['fullName' => '小米', 'identityType' => 1, 'identityCard' => '5002401XXXXXXXXX', 'mobile' => 18982406440,'noNeedVerify'=>1,'signLevel'=>1]
]);
$request->serverCa = 1; //自动签
$request->fileType = 1;
$request->url = "https://dev.lihaink.cn/storage/202307/acbba88e77392348d3a8a4a1fdf210f1.pdf";
//发起PING请求
$response = $requestUtils->doPost("/v2/sign/applySign", $request);
return $this->success('', (array)$response);
}
public function SigningLink()
{
//构建请求工具
$requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret);
//初始化合同参数
$request = array(
"applyNo" => "APL1680880011001217024", //TODO *
"fullName" => "小米", //TODO *
"identityCard" => "5002401XXXXXXXXX", //TODO *
"identityType" => 1, //TODO *
);
$response = $requestUtils->doPost("/v2/sign/link", $request);
return $this->success('', (array)$response);
}
}