Ruan Blog - 阮家森的博客 Ruan Blog - 阮家森的博客

[小本子]关于人人商城小程序开发中遇到的坑

in 人人商城,微信小程序read (1756) 站长Ruan 文章转载请注明来源!

一、首次登陆下叫程序获取用户openid不准确问题
如第一次获取sns_wa
第二次获取sns_wa_sns_wa
等这些空数据 ,使用户进入会员中心也重复验证 还是无法或许信息,只能关闭重新打开小程序才可以

文件路径:..\addons\ewei_shopv2\plugin\app\core\mobile\wxapp.php

修复代码如下:

//方法名
function check()
//修改如下 判断多增加两个条件 openid赋值时也判断下前缀是否重复
if( empty($openid) || $openid == 'sns_wa_' || $openid == 'sns_wa_sns_wa_')
{
    app_error(AppError::$ParamsError);
}
if(strpos($openid,'sns_wa_')!==false){
    $wxopenid = $openid;
}else{
    $wxopenid = "sns_wa_" . $openid;
}

解决思路大概就是获取空openid时返回错误信息 让小程序前端重新获取用户信息,然后传入sns_wa_开头的openid时将重复头部去除来获取正常的openid进行查询,避免重复插入sns_wa_及sns_wa_sns_wa_,也避免重复获取该无用户的用户数据
二、自动授权弹出废除后导致重复授权的解决方法
原理:微信小程序更新后,只有第一次打开页面时调用app.js里的onLaunch方法,解决方法就是用户获取用户信息后再次调用改方法
> bindgetuserinfo
> 用户点击该按钮时,会返回获取到的用户信息,回调的detail数据与wx.getUserInfo返回的一致 open-type="getUserInfo"
> 基础库1.3.0
WXML
//授权按钮增加获取用户信息方法同意`
JS

var i = getApp();
bindGetUserInfo:function(e){
    i.onLaunch()
  },

三、因二中重复获取用户信息,ios可能存在打开分享页面丢失上级参数mid的问题(无法绑定上级关系)
原理: 在首次调用login的时候把mid存在了全局变量$_W里,在分销方法中判断:如果全局变量$_W的mid存在,而$_GPC的mid不存在,则让$mid=$_W里的mid。
路径1:addonsewei_shopv2pluginappcoremobilewxapp.php
方法名:login()

//保存mid
if($_GPC['mid']){
    $_W['up_mid'] = intval($_GPC['mid']);
}

路径2:addonsewei_shopv2plugincommissioncoremodel.php
方法名:checkAgent()

$parent = false;
$mid = intval($_GPC['mid']);
//获取保存的mid
if (empty($mid) && $_W['up_mid']>0){
    $mid = $_W['up_mid'];
}
if (!(empty($mid))) 
{
    $parent = m('member')->getMember($mid);
}

文章二维码

扫描二维码,在手机上阅读!

人人商城微信小程序
最后由Ruan修改于2019-09-15 23:24

此处评论已关闭

已有 2 条评论
  1. 赵俊恒
    赵俊恒
    回复

    大神怎么联系你啊

  2. RAN
    RAN
    回复

    不错,好文章

PREVIOUS NEXT
雷姆
拉姆