src/Biz/Distributor/Service/Impl/BaseDistributorServiceImpl.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Biz\Distributor\Service\Impl;
use Biz\Distributor\Service\DistributorService;
use Biz\Distributor\Util\DistributorJobStatus;
use Biz\Marketing\Service\Impl\MarketingCourseServiceImpl;
use Codeages\Biz\Framework\Dao\BatchUpdateHelper;
use Codeages\Biz\Framework\Dao\BatchCreateHelper;
use QiQiuYun\SDK\Auth;
use AppBundle\Common\TimeMachine;
abstract class BaseDistributorServiceImpl extends MarketingCourseServiceImpl implements DistributorService
{
/**
* 分销平台的token编码方式, MockController 才使用
* 注意,$data 内的参数值必须为字符串
*
* @param $data, key 会被ksort重排序
* array(
* 'merchant_id' => '123',
* 'agency_id' => '222',
* 'coupon_price' => '222', // 单位为分
* 'coupon_expiry_day' => '12', //单位为天
* )
* @param $tokenExpireDateNum unix_time, 如果填了,则使用填写的时间,不填,则使用当前时间
*
* @return {merchant_id}:{agency_id}:{coupon_price}:{coupon_expiry_day}:{time}:{nonce}:{sign}
* sign 为 添加 secretKey 后的加密方法
*/
public function encodeToken($data, $tokenExpireDateNum = null)
{
$sortedData = $data;
ksort($sortedData);
if (empty($tokenExpireDateNum)) {
$time = TimeMachine::time().'';
} else {
$time = strtotime('-1 day', $tokenExpireDateNum);
}
$once = md5(TimeMachine::time());
$resultStr = '';
foreach ($data as $key => $value) {
if (!empty($resultStr)) {
$resultStr .= ':';
}
$resultStr .= $value;
}
$resultStr .= ":{$time}:{$once}:{$this->sign($once, $time, $sortedData)}";
return $resultStr;
}
private function sign($once, $time, $arr)
{
ksort($arr);
$json = implode("\n", array($once, $time, json_encode($arr)));
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。