微信小程序登陆接口更新,昵称变为“微信用户”的解决方法

4 篇文章 0 订阅
3 篇文章 0 订阅

getUserInfo更新为getUserProfile使用方法

【PS:本文写给小白,所以啰嗦一些】

先放出官方的更新说明:
https://developers.weixin.qq.com/community/develop/doc/000cacfa20ce88df04cb468bc52801

之前使用 getUserInfo 方式获取用户信息,2021年4月13号之后新提交的版本将无法获取用户的具体信息,会变成这样:
在这里插入图片描述

按照官方的说法,需作一下修改:

找到登陆页的wxml文件
在这里插入图片描述
将原先的方法
在这里插入图片描述

替换为:
在这里插入图片描述
<button bindtap="bindGetUserInfo" > 点击授权登录 </button>

js文件修改
在这里插入图片描述

bindGetUserInfo: function() {

    wx.getUserProfile({
        desc: '我们需要获取您的用户信息',
        lang:'zh_CN',
        success: e => {
			console.log(e);
			// 拿到用户信息之后,下面插入之前的逻辑代码
        }
    });
},

这样就成功获取用户信息了,

在这里插入图片描述

这里需要注意,wx.getUserProfile 方法应当带上 lang:'zh_CN' 参数,否则显示出来的地区可能会变成拼音的形式

======================================

下面的禾匠更新登陆接口方法

前端文件

app-user-login.js

(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
    ["components/basic-component/app-layout/app-user-login/app-user-login"], {
        3328:

            function (e, t, n) {
                "use strict";
                n.r(t);
                var r = n(3329),
                    o = n(3331);
                for (var i in o)["default"].indexOf(i) < 0 && function (e) {
                    n.d(t, e, (function () {
                        return o[e]
                    }))
                }(i);
                n(3333);
                var u = n(10),
                    a = Object(u["default"])(o["default"], r["render"], r["staticRenderFns"], !1, null, "9dc55a12", null);
                a.options.__file = "src/components/basic-component/app-layout/app-user-login/app-user-login.vue", t["default"] = a.exports
            },
        3329:

            function (e, t, n) {
                "use strict";
                n.r(t);
                var r = n(3330);
                n.d(t, "render", (function () {
                    return r["render"]
                })), n.d(t, "staticRenderFns", (function () {
                    return r["staticRenderFns"]
                }))
            },
        3330:

            function (e, t, n) {
                "use strict";
                n.r(t), n.d(t, "render", (function () {
                    return r
                })), n.d(t, "staticRenderFns", (function () {
                    return o
                }));
                var r = function () {
                        var e = this,
                            t = e.$createElement;
                        e._self._c
                    },
                    o = [];
                r._withStripped = !0
            },
        3331:

            function (e, t, n) {
                "use strict";
                n.r(t);
                var r = n(3332),
                    o = n.n(r);
                for (var i in r)["default"].indexOf(i) < 0 && function (e) {
                    n.d(t, e, (function () {
                        return r[e]
                    }))
                }(i);
                t["default"] = o.a
            },
        3332:

            function (e, t, n) {
                "use strict";
                (function (e) {
                    Object.defineProperty(t, "__esModule", {
                        value: !0
                    }), t.default = void 0;
                    var r = i(n(2)),
                        o = n(12);

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function u(e, t) {
                        var n = Object.keys(e);
                        if (Object.getOwnPropertySymbols) {
                            var r = Object.getOwnPropertySymbols(e);
                            t && (r = r.filter((function (t) {
                                return Object.getOwnPropertyDescriptor(e, t).enumerable
                            }))), n.push.apply(n, r)
                        }
                        return n
                    }

                    function a(e) {
                        for (var t = 1; t < arguments.length; t++) {
                            var n = null != arguments[t] ? arguments[t] : {};
                            t % 2 ? u(Object(n), !0).forEach((function (t) {
                                c(e, t, n[t])
                            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : u(Object(n)).forEach((function (t) {
                                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
                            }))
                        }
                        return e
                    }

                    function c(e, t, n) {
                        return t in e ? Object.defineProperty(e, t, {
                            value: n,
                            enumerable: !0,
                            configurable: !0,
                            writable: !0
                        }) : e[t] = n, e
                    }
                    var s = function () {
                            return n.e("components/basic-component/app-hotspot/app-hotspot").then(n.bind(null, 2343))
                        },
                        f = {
                            name: "app-user-login",
                            components: {
                                appHotspot: s
                            },
                            data: function () {
                                return {}
                            },
                            computed: a(a({
                                openType: function () {
                                    return "getUserInfo"
                                }
                            }, (0, o.mapState)("mallConfig", {
                                auth_page: function (e) {
                                    return e.auth_page
                                }
                            })), (0, o.mapState)({
                                showLoginModal: function (e) {
                                    return e.user.showLoginModal
                                }
                            })),
                            created: function () {
                                var e = this;
                                r.default.use({
                                    install: function (t, n) {
                                        t.prototype.$layout = {
                                            getUserInfo: function () {
                                                return e.showLoginModal = !0, new Promise((function (t, n) {
                                                    e.getUserInfo = function (e) {}
                                                }))
                                            }
                                        }
                                    }
                                })

                                wx.login({
                                    success (res) {
                                      if (res.code) {
                                        e.u_code = res.code;
                                      }
                                    }
                                })

                            },
                            methods: {
                                cancel: function () {
                                    this.$store.commit("user/showLoginModal", !1), this.$user.getUserInfoReject("getUserInfo fail: cancel.");
                                    var t = getCurrentPages(),
                                        n = ["/pages/index/index", "/pages/user-center/user-center"],
                                        r = this.$platDiff.route();
                                    n.includes(r) ? (r = this.$platDiff.routeWithOption(), e.redirectTo({
                                        url: r
                                    })) : t.length >= 2 ? e.navigateBack({
                                        delta: 1
                                    }) : e.redirectTo({
                                        url: "/pages/index/index"
                                    })
                                },
                                getUserInfoClick: function (e) {},
                                getUserInfo: function (e) {
                                    console.log(e);
                                    var t = this;
                                    this.$store.commit("user/showLoginModal", !1);
                                    var n = this.$user.getUserInfoResolve,
                                        r = this.$user.getUserInfoReject;
                                    return this.$event.on(this.$const.EVENT_USER_LOGIN, !0).then((function () {
                                        t.$jump({
                                            open_type: "reload"
                                        })
                                    })), "getUserInfo:ok" !== e.detail.errMsg ? r(e.detail.errMsg) : n(e)
                                },
                                newinfo:function(){
                                    const that = this;
                                    wx.getUserProfile({
                                        desc:'我们需要获取您的用户信息',
                                        lang:'zh_CN',
                                        success: e => {
                                            console.log(e);
                                            let kk = {
                                                detail:e
                                            }

                                            kk.detail.code = that.u_code?that.u_code:'';

                                            var t = this;
                                            this.$store.commit("user/showLoginModal", !1);
                                            var n = this.$user.getUserInfoResolve,
                                                r = this.$user.getUserInfoReject;
                                            return this.$event.on(this.$const.EVENT_USER_LOGIN, !0).then((function () {
                                                t.$jump({
                                                    open_type: "reload"
                                                })
                                            })), "getUserProfile:ok" !== kk.detail.errMsg ? r(kk.detail.errMsg) : n(kk)

                                        }
                                    });
                                }
                            }
                        };
                    t.default = f
                }).call(this, n(1)["default"])
            },
        3333:

            function (e, t, n) {
                "use strict";
                n.r(t);
                var r = n(3334),
                    o = n.n(r);
                for (var i in r)["default"].indexOf(i) < 0 && function (e) {
                    n.d(t, e, (function () {
                        return r[e]
                    }))
                }(i);
                t["default"] = o.a
            },
        3334:

            function (e, t, n) {}
    }
]);
//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/components/basic-component/app-layout/app-user-login/app-user-login.js.map
;
(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
    'components/basic-component/app-layout/app-user-login/app-user-login-create-component',
    {
        'components/basic-component/app-layout/app-user-login/app-user-login-create-component': (function (module, exports, __webpack_require__) {
            __webpack_require__('1')['createComponent'](__webpack_require__(3328))
        })
    },
    [
        ['components/basic-component/app-layout/app-user-login/app-user-login-create-component']
    ]
]);

app-user-login.wxml 文件

<view class="{{['login dir-left-nowrap main-center cross-center data-v-9dc55a12',showLoginModal?'show':'']}}"><view class="login-content data-v-9dc55a12"><image class="login-img data-v-9dc55a12" src="{{auth_page.pic_url}}"></image><view class="data-v-9dc55a12"><app-hotspot vue-id="1" hotspot="{{auth_page.hotspot_cancel}}" class="data-v-9dc55a12" bind:__l="__l" vue-slots="{{['default']}}"><button data-event-opts="{{[['tap',[['cancel',['$event']]]]]}}" class="login-btn data-v-9dc55a12" bindtap="__e"></button></app-hotspot></view><view class="data-v-9dc55a12"><app-hotspot vue-id="2" hotspot="{{auth_page.hotspot}}" class="data-v-9dc55a12" bind:__l="__l" vue-slots="{{['default']}}"><button class="login-btn data-v-9dc55a12"  scope="userInfo" data-event-opts="{{[['tap',[['newinfo',['$event']]]]]}}" bindtap="__e"></button></app-hotspot></view></view></view>

然后是后端文件

文件位置:/www/wwwroot/xxxxx/vendor/luweiss/wechat/src/Wechat/Wechat.php

196行 替换该函数内容 decryptData

public function decryptData($encryptedData, $iv, $code)
{
    if (mb_strlen($iv) !== 24) {
        throw new WechatException('iv长度不正确,必须是24位。');
    }
    $sessionData = $this->jsCodeToSession($code);
    $sessionKey = $sessionData['session_key'];
    $aesKey = base64_decode($sessionKey);
    $aesIV = base64_decode($iv);
    $aesCipher = base64_decode($encryptedData);
    // $result = openssl_decrypt($aesCipher, "AES-128-CBC", $aesKey, 1, $aesIV);
    // $dataObj = json_decode($result, true);
    if (!$dataObj) {
        return [
            'openId' => $sessionData['openid'],
            'nickName' => null,
            'avatarUrl' => null,
        ];
    }
    return $dataObj;
}
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值