tpshop多用户 中怎么把用户的openid存到users表中

&>&tp微信获取openid并登录的demo
tp微信获取openid并登录的demo
上传大小:11KB
tp框架获取openid并登录的demo,并且成功,分享给大家
综合评分:3(1位用户评分)
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有1条
没有完整的项目,不知怎么用
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
tp微信获取openid并登录的demo
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
tp微信获取openid并登录的demotpshop使用中遇到的问题
时间: 16:26:59
&&&& 阅读:578
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&1.短信配置里:商家发货时是否给客户发短信 &配置了 开启 & 如果购买者个人资料里的电话没填写,商家点击发货时, 程序会挂掉
解决方法:修改application\common\logic\SmsLogic.php
//modify by houdianjing at
desc:修复如果客户没填写电话号码 报错的bug
if($sender&&‘‘ && strlen($sender)==11){
$resp = $this-&realSendSms($sender, $smsTemp[‘sms_sign‘], $smsParam, $smsTemp[‘sms_tpl_code‘]);
if ($resp[‘status‘] == 1) {
M(‘sms_log‘)-&where(array(‘id‘ =& $log_id))-&save(array(‘status‘ =& 1)); //修改发送状态为成功
M(‘sms_log‘)-&where(array(‘id‘ =& $log_id))-&update(array(‘error_msg‘=&$resp[‘msg‘])); //发送失败, 将发送失败信息保存数据库
M(‘sms_log‘)-&where(array(‘id‘ =& $log_id))-&update(array(‘error_msg‘=&‘用户电话号码错误‘)); //发送失败, 将发送失败信息保存数据库
//modify end
2、订单原路退款无法退回
1.payment_refund方法中的WxPayRefund::MCHID改成了WxPayConfig::$mchid
2.微信证书路径改成绝对路径(我是linux系统,相对路径提示curl错误58)
3.微信退款金额单位改为分,现在没有转换成分
4.退款成功,修改状态有误,退款方法如下
public function refund(){
$return_id = I(‘id‘);
$return_goods = M(‘return_goods‘)-&where("id= $return_id")-&find();
$rec_goods = M(‘order_goods‘)-&where(array(‘order_id‘=&$return_goods[‘order_id‘],‘goods_id‘=&$return_goods[‘goods_id‘]))-&find();
$order = M(‘order‘)-&where(array(‘order_id‘=&$rec_goods[‘order_id‘]))-&find();
if($order[‘pay_code‘] == ‘weixin‘ || $order[‘pay_code‘] == ‘alipay‘ || $order[‘pay_code‘] == ‘alipayMobile‘){
$return_money = $rec_goods[‘goods_price‘]*$rec_goods[‘goods_num‘];
$prom_amount = $order[‘coupon_price‘] + $order[‘order_prom_amount‘];
if($prom_amount&0){
$return_money = $return_money - round($prom_amount*$return_money/$order[‘order_amount‘],2);
if($order[‘pay_code‘] == ‘weixin‘){
include_once
PLUGIN_PATH."payment/weixin/weixin.class.php";
$payment_obj =
new \weixin();
$data = array(‘transaction_id‘=&$order[‘transaction_id‘],‘total_fee‘=&$order[‘order_amount‘],‘refund_fee‘=&$return_money);
$result = $payment_obj-&payment_refund($data);
if($result[‘return_code‘] == ‘SUCCESS‘){
//modify by houdianjing at
desc:改变订单状态,status-&is_send
M(‘order_goods‘)-&where(array(‘rec_id‘=&$rec_goods[‘rec_id‘]))-&save(array(‘is_send‘=&3));
//modify end
//add by houdianjing at
desc:退款成功后,改变退款状态,订单表状态
M(‘return_goods‘)-&where(array(‘order_id‘=&$rec_goods[‘order_id‘]))-&save(array(‘status‘=&3));
M(‘order‘)-&where(array(‘order_id‘=&$rec_goods[‘order_id‘]))-&save(array(‘order_status‘=&4));
$this-&success(‘退款成功‘);
$this-&error($result[‘return_msg‘]);
include_once
PLUGIN_PATH."payment/alipay/alipay.class.php";
$payment_obj = new \alipay();
$detail_data = $order[‘transaction_id‘].‘^‘.$return_money.‘^‘.‘用户申请订单退款‘;
$data = array(‘batch_no‘=&date(‘YmdHi‘).$rec_goods[‘rec_id‘],‘batch_num‘=&1,‘detail_data‘=&$detail_data);
$payment_obj-&payment_refund($data);
$this-&error(‘该订单支付方式不支持在线退回‘);
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文地址:http://www.cnblogs.com/houdj/p/7111269.html
&&国之画&&&& &&&&chrome插件&&
版权所有 京ICP备号-2
迷上了代码!微信公众号-获取用户信息(网页授权获取)实现步骤
转载 & & 投稿:lqh
这篇文章主要介绍了微信公众号-获取用户信息(网页授权获取)实现步骤的相关资料,需要的朋友可以参考下
根据微信公众号开发官方文档:
获取用户信息步骤如下:
1 第一步:用户同意授权,获取code
2 第二步:通过code换取网页授权access_token
3 第三步:刷新access_token(如果需要)
4 第四步:拉取用户信息(需scope为 snsapi_userinfo)
1 获取code
在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下(服务号获得高级接口后,默认拥有scope参数中的snsapi_base和snsapi_userinfo),引导关注者打开如下页面:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
若提示“该链接无法访问”,请检查参数是否填写错误,是否拥有scope参数对应的授权作用域权限。
尤其注意:由于授权操作安全等级较高,所以在发起授权请求时,微信会对授权链接做正则强匹配校验,如果链接的参数顺序不对,授权页面将无法正常访问
AppID - 公众号的唯一标识
REDIRECT_URI - 跳转url
SCOPE - 值为snsapi_base(不弹出授权页面,直接跳转,只能获取用户openid) 或snsapi_userinfo (弹 出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息)
STATE - 开发者可以自定义填写a-zA-Z0-9的参数值
2 通过code换取网页授权access_token
如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE。
state就是上面的STATE参数原样传过来的
实现代码:
&code class="hljs php"&$code = I('get.code');
if (empty($code)) {
//todo 非微信访问
exit('&/code&');
}else{ //授权后操作 }
在这里我们就可以得到code用作后续的获取access_token。
获取code后,请求以下链接获取access_token:
&https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
appid - 公众号的唯一标识
secret - 密钥
code - 上述所返回的code
grant_type - 值为authorization_code
实现代码:
&code class="hljs bash"&$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . C('wechat.AppID') . '&secret=' . C('wechat.AppSecret');
$str = file_get_contents($url);
$str = json_decode($str, true);
$access_token = $str['access_token'];&/code&
这里access_token可以做缓存处理,避免造成频繁获取
实现代码,以TP框架为例:
&code class="hljs php"&$access_token = S('access_token');
if (empty($access_token)) {
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . C('wechat.AppID') . '&secret=' . C('wechat.AppSecret');
$str = file_get_contents($url);
$str = json_decode($str, true);
$access_token = $str['access_token'];
S('access_token', $access_token, 3600);
在获取access_token后,也会一并返回openid(用户唯一标识),微信官方文档的解释是:用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID
openid是唯一标识微信用户的,如果用户不是第一次登陆,可以在得到openid后查询数据库是否有绑定此openid的用户,之后就无需重新获取用户数据,直接获取的数据库user_id设置session,直接登陆访问
3 第三步忽略,只在需要的时间重新获取access_token而已
4 拉取用户信息(需scope为 snsapi_userinfo)
在数据库无此微信号用户的绑定下,就相当于用户首次访问登陆,则通过第四步来获取用户信息(在用户授权情况下,网页授权作用域为snsapi_userinfo,则此时开发者可以通过access_token和openid拉取用户信息了),然后后台创建user并绑定此微
信用户(通过openid)
http:GET(请使用https协议) https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
access_token - 上述所获取的access_token
openid - 公众号唯一标识
实现代码:
&code class="hljs php"&$url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN";
$str = file_get_contents($url);
$str = json_decode($str, true);
if (empty($str['errcode'])) {
//创建user并绑定openid
//错误处理
以上就是微信公众号获取用户信息的具体步骤。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具很多cms 中有很多 标签, 商品标签 文章标签& 列表标签& 几十个标签, 让开发者头疼, 难记,& TPshop开发者考虑到这点, 用了一个万能标签, 开发者非常方便实用 TPshop万能标签只要记住这个标签全站可以通用 示例一&tpshop sql="select * from `tp_article`
where cat_id = 5 order by article_id desc limit 4" item="v" key="k" &
&li&&a href=""&{$v['title']}&/a&&/li&&/tpshop&
示例二&tpshop sql="select * from `tp_goods_category` where `parent_id` = '$v[id]' limit 6" key="k2" item='v2'&
&a class="list_big_o ma-le-30" href="{:U('Home/Index/goodsList',array('id'=&$v2[id]))}"&{$v2['name']}&i&>&/i&&/a&
& 数组 '$v[id]' 形式, sql语句外面必须 双引号 要区分开来,& 要写成 '$v[id]'& 而不能写成 $v['id']&& $v["id"] {$v[id]}&& 中括号[ ]里面不能有单引号 双引号 外面不能有 { } 大括号./*如上例子看 传sql语句非常方便 可以任意灵活的写sql,
但需要注意 一点
thinkphp 里面标签 不能用特殊字符跟标签冲突,
比如&tpshop sql="select * from `tp_goods` where `goods_id`
& 0 " key="k2" item='v2'& 注意这里的 goods_id
& 0 的 "&" 符号 跟 thinkphp魔板标签的 &if&
&foreach& &tpshop& 冲突,
所以thinkphp 里面使用 字符替代 比如 &if condition="5 & 3" &
写成 &if condition="5 gt 3" & 用gt 表示 & 大于号.
其他符号也一样
大于egt 表示 &=
大于等于lt
小于elt 表示 &=
小于等于上面语句改写成
&tpshop sql="select * from `tp_goods` where `goods_id`
gt 0 " key="k2" item='v2'&在TPshop 3.1.3 起 加入了 t="3600" 参数,
t 表示针对这个标签设置的缓存时间 秒为单位
如果不指定默认使用 index.php 配置的 TPSHOP_CACHE_TIME 缓存时间,*/
& 广告标签示例&adv limit="5" item="v" pid="2"&
&a href="{$v.ad_link}" &if condition="$v['target'] eq 1"&target="_blank"&/if&&
&img src="{$v[ad_code]}" width="980" height="400"
title="{$v[title]}" style="{$v[style]}"/&
limit 表示获取多少条
是遍历时的每一项元素, pid是广告位置id
&img src="{$v[ad_code]}" 图片路径
title="{$v[title]}" 图片标题
style="{$v[style]}"/& 设置{$v[style]}在后台更换广告时可以看到广告是半透明的效果, &if condition="$v['target'] eq 1"&target="_blank"&/if&表示点击广告时是否新窗口打开新添加一个广告位很简单,pid自己写一个数据库中不存在的 会数据库自动插入一个广告位置。不需要手动添加,写pid时 最好以前缀开头来区分, 比如 index.html首页广告位都一 100
102 ... 100开头商品列表页面的广告id 都以 200 201
202 203 都以200开头, 这样广告位置才不容易混淆然后后台可以预览点击更换广告。
阅读(...) 评论()tpshop使用中遇到的问题
时间: 15:35:51
&&&& 阅读:156
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&1.短信配置里:商家发货时是否给客户发短信 &配置了 开启 & 如果购买者个人资料里的电话没填写,商家点击发货时, 程序会挂掉
解决方法:修改application\common\logic\SmsLogic.php
//modify by houdianjing at
desc:修复如果客户没填写电话号码 报错的bug
if($sender&&‘‘ && strlen($sender)==11){
$resp = $this-&realSendSms($sender, $smsTemp[‘sms_sign‘], $smsParam, $smsTemp[‘sms_tpl_code‘]);
if ($resp[‘status‘] == 1) {
M(‘sms_log‘)-&where(array(‘id‘ =& $log_id))-&save(array(‘status‘ =& 1)); //修改发送状态为成功
M(‘sms_log‘)-&where(array(‘id‘ =& $log_id))-&update(array(‘error_msg‘=&$resp[‘msg‘])); //发送失败, 将发送失败信息保存数据库
M(‘sms_log‘)-&where(array(‘id‘ =& $log_id))-&update(array(‘error_msg‘=&‘用户电话号码错误‘)); //发送失败, 将发送失败信息保存数据库
//modify end
2、订单原路退款无法退回
1.payment_refund方法中的WxPayRefund::MCHID改成了WxPayConfig::$mchid
2.微信证书路径改成绝对路径(我是linux系统,相对路径提示curl错误58)
3.微信退款金额单位改为分,现在没有转换成分
4.退款成功,修改状态有误,退款方法如下
public function refund(){
$return_id = I(‘id‘);
$return_goods = M(‘return_goods‘)-&where("id= $return_id")-&find();
$rec_goods = M(‘order_goods‘)-&where(array(‘order_id‘=&$return_goods[‘order_id‘],‘goods_id‘=&$return_goods[‘goods_id‘]))-&find();
$order = M(‘order‘)-&where(array(‘order_id‘=&$rec_goods[‘order_id‘]))-&find();
if($order[‘pay_code‘] == ‘weixin‘ || $order[‘pay_code‘] == ‘alipay‘ || $order[‘pay_code‘] == ‘alipayMobile‘){
$return_money = $rec_goods[‘goods_price‘]*$rec_goods[‘goods_num‘];
$prom_amount = $order[‘coupon_price‘] + $order[‘order_prom_amount‘];
if($prom_amount&0){
$return_money = $return_money - round($prom_amount*$return_money/$order[‘order_amount‘],2);
if($order[‘pay_code‘] == ‘weixin‘){
include_once
PLUGIN_PATH."payment/weixin/weixin.class.php";
$payment_obj =
new \weixin();
$data = array(‘transaction_id‘=&$order[‘transaction_id‘],‘total_fee‘=&$order[‘order_amount‘],‘refund_fee‘=&$return_money);
$result = $payment_obj-&payment_refund($data);
if($result[‘return_code‘] == ‘SUCCESS‘){
//modify by houdianjing at
desc:改变订单状态,status-&is_send
M(‘order_goods‘)-&where(array(‘rec_id‘=&$rec_goods[‘rec_id‘]))-&save(array(‘is_send‘=&3));
//modify end
//add by houdianjing at
desc:退款成功后,改变退款状态,订单表状态
M(‘return_goods‘)-&where(array(‘order_id‘=&$rec_goods[‘order_id‘]))-&save(array(‘status‘=&3));
M(‘order‘)-&where(array(‘order_id‘=&$rec_goods[‘order_id‘]))-&save(array(‘order_status‘=&4));
$this-&success(‘退款成功‘);
$this-&error($result[‘return_msg‘]);
include_once
PLUGIN_PATH."payment/alipay/alipay.class.php";
$payment_obj = new \alipay();
$detail_data = $order[‘transaction_id‘].‘^‘.$return_money.‘^‘.‘用户申请订单退款‘;
$data = array(‘batch_no‘=&date(‘YmdHi‘).$rec_goods[‘rec_id‘],‘batch_num‘=&1,‘detail_data‘=&$detail_data);
$payment_obj-&payment_refund($data);
$this-&error(‘该订单支付方式不支持在线退回‘);
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:http://www.cnblogs.com/houdj/p/7111269.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!}

我要回帖

更多关于 tpshop怎么关闭缓存 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信