切换导航条
此项目
正在载入...
登录
anyv
/
xkeasy
·
提交
转到一个项目
GitLab
转到仪表盘
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
anyv
6 years ago
提交
9ee61d23d68b42e22702e0a302a7f5b12b5feec2
1 个父辈
4f8e7a41
1 个管道 的构建
通过
耗费 1 秒
4
变更
2
构建
1
隐藏空白字符变更
内嵌
并排对比
正在显示
2 个修改的文件
包含
55 行增加
和
17 行删除
app/portal/controller/SalesmangoodsController.php
public/themes/simpleboot3/portal/salesmangoods/salesman_goods_add.html
app/portal/controller/SalesmangoodsController.php
查看文件 @
9ee61d2
...
...
@@ -210,10 +210,7 @@ class SalesmangoodsController extends WeChatBaseController{
$ticketList
=
$this
->
getJsApiTicket
(
$token
[
'accessToken'
]);
$ticket
=
$ticketList
[
'ticket'
];
// 该URL为使用JSSDK接口的URL
$url
=
$_GET
[
'url'
];
if
(
!
$url
)
{
$url
=
'http://xxx.xxx.com/index/index.html'
;
}
$url
=
'http://xkeasy.w.bronet.cn/'
;
// 时间戳
$timestamp
=
time
();
// 随机字符串
...
...
@@ -222,7 +219,7 @@ class SalesmangoodsController extends WeChatBaseController{
$string
=
"jsapi_ticket=
$ticket
&noncestr=
$nonceStr
×tamp=
$timestamp
&url=
$url
"
;
$signature
=
sha1
(
$string
);
$signPackage
=
array
(
"appId"
=>
C
(
'WxPayConf_pub.APPID'
)
,
"appId"
=>
"wxdf34ec2179e19b9a"
,
"nonceStr"
=>
$nonceStr
,
"timestamp"
=>
$timestamp
,
"url"
=>
$url
,
...
...
@@ -238,23 +235,18 @@ class SalesmangoodsController extends WeChatBaseController{
public
function
getAccessToken
()
{
// access_token 应该全局存储与更新
// 获取数据库中的access_token
$token
=
M
(
'accesstoken'
)
->
limit
(
1
)
->
find
();
// 如果数据库存在token
if
(
$token
)
{
// 格式化数据库的timestamp
$time
=
strtotime
(
$token
[
'time'
]);
}
$token
=
Db
::
name
(
'token'
)
->
where
(
'id'
,
1
)
->
find
();
// accessToken过期或不存在时
if
(
$time
+
$token
[
'expiresIn'
]
<
time
()
||
$token
[
'accessToken'
]
==
NULL
){
$url
=
"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="
.
C
(
'WxPayConf_pub.APPID'
)
.
"&secret="
.
C
(
'WxPayConf_pub.APPSECRET'
);
if
(
$token
[
'time'
]
+
$token
[
'expiresIn'
]
<
time
()
||
$token
[
'accessToken'
]
==
NULL
){
$url
=
"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="
.
"wxdf34ec2179e19b9a"
.
"&secret="
.
"133ced06db2a45843ab52abc691ee82d"
;
// 微信返回的信息
$returnData
=
json_decode
(
$this
->
httpGet
(
$url
));
// 组装数据
$resData
[
'accessToken'
]
=
$returnData
->
access_token
;
$resData
[
'expiresIn'
]
=
$returnData
->
expires_in
;
$resData
[
'time'
]
=
date
(
"Y-m-d H:i"
,
time
()
);
$resData
[
'time'
]
=
time
(
);
// 把数据存进数据库
M
(
'accesstoken'
)
->
where
(
array
(
'id'
=>
$token
[
'id'
]))
->
sav
e
(
$resData
);
Db
::
name
(
'token'
)
->
where
(
'id'
,
1
)
->
updat
e
(
$resData
);
$res
=
$resData
;
}
else
{
$res
=
$token
;
...
...
@@ -262,6 +254,52 @@ class SalesmangoodsController extends WeChatBaseController{
return
$res
;
}
public
function
getJsApiTicket
(
$accessToken
)
{
// jsapi_ticket 应该全局存储与更新
// 获取数据库中的jsapi_ticket
$ticket
=
Db
::
name
(
'token'
)
->
where
(
'id'
,
2
)
->
find
();
// 如果ticket失效
if
(
$ticket
[
'time'
]
+
$ticket
[
'expiresIn'
]
<
time
()
||
$ticket
[
'ticket'
]
==
NULL
){
$url
=
"https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=
$accessToken
&&type=jsapi"
;
// 微信返回的信息
$returnData
=
json_decode
(
$this
->
httpGet
(
$url
));
// 组装数据
$resData
[
'ticket'
]
=
$returnData
->
ticket
;
$resData
[
'expiresIn'
]
=
$returnData
->
expires_in
;
$resData
[
'time'
]
=
time
();
$resData
[
'errcode'
]
=
$returnData
->
errcode
;
// 把数据存进数据库
Db
::
name
(
'token'
)
->
where
(
'id'
,
2
)
->
update
(
$resData
);
$res
=
$resData
;
}
else
{
$res
=
$ticket
;
}
return
$res
;
}
// 创建随机字符串
private
function
createNoncestr
(
$length
=
16
)
{
$chars
=
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
;
$str
=
""
;
for
(
$i
=
0
;
$i
<
$length
;
$i
++
)
{
$str
.=
substr
(
$chars
,
mt_rand
(
0
,
strlen
(
$chars
)
-
1
),
1
);
}
return
$str
;
}
private
function
httpGet
(
$url
)
{
$curl
=
curl_init
();
curl_setopt
(
$curl
,
CURLOPT_RETURNTRANSFER
,
true
);
curl_setopt
(
$curl
,
CURLOPT_TIMEOUT
,
500
);
curl_setopt
(
$curl
,
CURLOPT_URL
,
$url
);
$res
=
curl_exec
(
$curl
);
curl_close
(
$curl
);
return
$res
;
}
...
...
public/themes/simpleboot3/portal/salesmangoods/salesman_goods_add.html
查看文件 @
9ee61d2
...
...
@@ -305,8 +305,8 @@
function
openCamera
(){
$
.
post
(
"{:url('/')}"
,{},
function
(
data
)
{
$
.
post
(
"{:url('Salesmangoods/getSignPackage')}"
,{},
function
(
data
)
{
console
.
log
(
data
);
});
wx
.
chooseImage
({
...
...
请
注册
或
登录
后发表评论