206 lines
6.9 KiB
PHP
Raw Normal View History

2025-03-24 09:40:45 +08:00
<?php
namespace app\api\controller;
use addons\epay\library\Service;
use app\admin\model\school\help\Cate;
use app\common\controller\Api;
use app\common\job\test\DemoJob;
use app\common\model\appointment\car\MockOrder;
use bw\UrlLock;
use think\Cache;
/**
* 示例接口
*/
class Demo extends Api
{
//如果$noNeedLogin为空表示所有接口都需要登录才能请求
//如果$noNeedRight为空表示所有接口都需要验证权限才能请求
//如果接口已经设置无需登录,那也就无需鉴权了
//
// 无需登录的接口,*表示全部
protected $noNeedLogin = ['test', 'test1','test2'];
// 无需鉴权的接口,*表示全部
protected $noNeedRight = ['test2'];
/**
* 测试方法
*
* @ApiTitle (测试名称)
* @ApiSummary (测试描述信息)
* @ApiMethod (POST)
* @ApiRoute (/api/demo/test/id/{id}/name/{name})
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
* @ApiParams (name="id", type="integer", required=true, description="会员ID")
* @ApiParams (name="name", type="string", required=true, description="用户名")
* @ApiParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据")
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
* @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
* @ApiReturn ({
'code':'1',
'msg':'返回成功'
})
*/
public function test()
{
2025-08-06 18:24:19 +08:00
$lakala = lakala_sdk();
$tradeLocationInfo = new \Lakala\OpenAPISDK\V3\Model\TradeLocationInfo($lakala->getClientIp());
// 主扫交易Api
$api = $lakala->v3(\Lakala\OpenAPISDK\V3\Api\TransPreorderApi::class);
// 主扫交易参数
$request = new \Lakala\OpenAPISDK\V3\Model\TransPreorderRequest();
// 必填参数
$request->setMerchantNo('822290059430BFA');
$request->setTermNo('D9261078');
$request->setOutTradeNo(date('YmdHis', time()));
$request->setAccountType('WECHAT');
$request->setTransType('71');
$request->setTotalAmount('100'); // 单位分
$request->setLocationInfo($tradeLocationInfo);
$request->setSubject('通过微信支付');
// 非必填参数
// $request->setBusiMode('');
// $request->setPayOrderNo('');
$request->setNotifyUrl('https://www.test.com/lakela_order_payment_callback.php');
// $request->setSettleType('');
// $request->setRemark('');
// $request->setPromoInfo('');
// $request->setOutOrderNo('');
// $request->setPnrInsIdCd('');
// 微信主扫场景 - 账户端业务信息
$acc_busi_fields = new \Lakala\OpenAPISDK\V3\Model\TradePreorderWechaAccBusiFields();
// $acc_busi_fields->setTimeoutExpress('');
$acc_busi_fields->setSubAppid('wxd7e2deffbaa22254');
$acc_busi_fields->setUserId('ohjUL7XWERU9rDfeNdvbxxil8jZY');
// $acc_busi_fields->setDetail('');
// $acc_busi_fields->setGoodsTag('');
// $acc_busi_fields->setAttach('');
// $acc_busi_fields->setDeviceInfo('');
// $acc_busi_fields->setLimitPay('');
// $acc_busi_fields->setSceneInfo('');
// $acc_busi_fields->setLimitPayer('');
$detail = new \Lakala\OpenAPISDK\V3\Model\TradePreorderWechaDetail;
// $detail->setCostPrice('1.00');
// $detail->setReceiptId('');
$goods_detail = new \Lakala\OpenAPISDK\V3\Model\TradePreorderWechaGoodsDetail;
$goods_detail->setGoodsId('3452234');
// $goods_detail->setWxpayGoodsId('');
// $goods_detail->setGoodsName('测试商品1');
$goods_detail->setQuantity(1.0);
$goods_detail->setPrice(1.0);
// $detail->setGoodsDetail([$goods_detail]);
//
// $acc_busi_fields->setDetail($detail);
//
//// 账户端业务信息
$request->setAccBusiFields($acc_busi_fields);
try {
$response = $api->transPreorder($request);
if ($response->getRespData()) {
print_r($response->getRespData());
print_r($response->getAccRespFields());
}
else {
print_r($response);
}
echo $response->getCode();
# 响应头信息
print_r($response->getHeaders());
# 响应原文
echo $response->getOriginalText();
} catch (\Lakala\OpenAPISDK\V3\ApiException $e) {
echo $e->getMessage();
}
//
//// \think\Queue::push(DemoJob::class, ["name"=>"hello world!"], "school");
// $this->success('返回成功', $this->request->param());
2025-03-24 09:40:45 +08:00
}
/**
* 无需登录的接口
*
*/
public function test1()
{
try{
$lock = new UrlLock(1,"mock-create-lock-suffix",120,"您的请求过于频繁请您稍后再试请求最大锁定间隔5秒/一次!");
$lock->lock();
//往缓存里取出数字
$num = cache('test');
if(!$num){
$num = 1;
cache('test',$num);
}else{
$num++;
cache('test',$num);
}
//数字加1
//再存入缓存
//再写入test.txt文件末尾记得回车换行
// file_put_contents("test.txt",$num."\r\n",FILE_APPEND);
// 实例对应的接口对象
2025-08-06 18:24:19 +08:00
// $scheme = new \WeMini\Total(Service::wechatConfig());
// $res= $scheme->create($q_params);
2025-03-24 09:40:45 +08:00
}catch (\Throwable $e){
$lock->free();
// file_put_contents("test.txt",$e->getMessage().$e->getFile().$e->getLine());//写入文件,一般做正式环境测试
$this->error($e->getMessage());
}
$lock->free();
$this->success('返回成功', ['action' => 'test1']);
}
/**
* 需要登录的接口
*
*/
public function test2()
{
try{
$lock = new UrlLock(1,"mock-create-lock-suffix",120,"您的请求过于频繁请您稍后再试请求最大锁定间隔5秒/一次!");
$lock->lock();
var_dump(time());
sleep(5);
}catch (\Throwable $e){
$lock->free();
// file_put_contents("test.txt",$e->getMessage().$e->getFile().$e->getLine());//写入文件,一般做正式环境测试
$this->error($e->getMessage());
}
$lock->free();
$this->success('返回成功', ['action' => 'test1']);
}
/**
* 需要登录且需要验证有相应组的权限
*
*/
public function test3()
{
$this->success('返回成功', ['action' => 'test3']);
}
}