206 lines
6.9 KiB
PHP
206 lines
6.9 KiB
PHP
<?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()
|
||
{
|
||
|
||
$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());
|
||
}
|
||
|
||
/**
|
||
* 无需登录的接口
|
||
*
|
||
*/
|
||
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);
|
||
|
||
// 实例对应的接口对象
|
||
// $scheme = new \WeMini\Total(Service::wechatConfig());
|
||
// $res= $scheme->create($q_params);
|
||
|
||
|
||
}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']);
|
||
}
|
||
|
||
}
|