x***@163.com
x***@163.com
  • 发布:2019-05-29 14:37
  • 更新:2021-06-18 16:40
  • 阅读:6684

【报Bug】uni-app项目生成的支付宝小程序,获取手机号方法不识别

分类:uni-app

uni-app项目生成的支付宝小程序,获取手机号方法不识别

点击获取手机号button,找不到对应的方法,实际上方法已写,
用支付宝创建的项目是可以触发的,

HBuilderX的正式版,开发版都测试过
支付宝开发工具用的最新的0.40.4

2019-05-29 14:37 负责人:无 分享
已邀请:
凌云阁

凌云阁

简单的代码示例
///啥时候能解决啊

<template>  
    <view class="content">  
        <view>  
            <button open-type="getAuthorize" @GetAuthorize="onGetAuthorize" @Error="onAuthError" scope="phoneNumber"></button>  

        </view>  
    </view>  
</template>  

<script>  
export default {  
    data() {  
        return {  
            title: 'Hello'  
        };  
    },  
    onLoad() {},  
    methods: {  
        test() {  
            console.log('success');  
        },  
        onGetAuthorize(){  
            console.log('onGetAuthorize');  
        },  
        onAuthError(){  
            console.log('onAuthError');  
        }  
    }  
};  
</script>
DCloud_uniAD_HDX

DCloud_uniAD_HDX

暂时这样写,正在处理这个问题

<template>  
    <view class="content">  
        <button type="default" open-type="getAuthorize" @getAuthorize="onGetAuthorize" @error="onAuthError" scope='phoneNumber'>getPhoneNumber</button>  
    </view>  
</template>  

<script>  
    export default {  
        data() {  
            return {  
            }  
        },  
        methods: {  
            onGetAuthorize(e) {  
                my.getPhoneNumber({  
                    success: (res) => {  
                        console.log("encryptedData::", res);  
                    },  
                    fail: (err) => {  
                        console.log(err);  
                        console.log('getPhoneNumber_fail');  
                    }  
                });  
            },  
            onAuthError(e) {  
                console.error(e);  
            }  
        }  
    }  
</script>
  • 1***@qq.com

    试了下,这个是有用的,但是拒绝授权后的弹窗不显示,在首页显示了。。。机型:iPhone SE

    2020-09-21 18:38

  • 1***@qq.com

    onAuthError(e) {

    if (e.detail.errorMessage === '用户取消授权') {

    this.showRejectAuthTips()

    }

    console.error(e)

    },

    2020-09-21 18:39

前端小bug

前端小bug

您解决了吗?也碰到这个问题

  • x***@163.com (作者)

    没有,没人回复,我估计就是uniapp的问题,我单独用支付宝创建项目都可以,我想在维护两套代码,uniapp只是在试水,这个问题解决不了就没法用了

    2019-05-30 12:29

x***@163.com

x***@163.com (作者)

简单的复现代码

DCloud_uniAD_HDX

DCloud_uniAD_HDX

先暂时条件编译,用支付宝的原生写法

  • x***@163.com (作者)

    就是用的条件编译也不行

    2019-06-03 14:47

  • x***@163.com (作者)

    麻烦看下是不是系统的问题,希望尽快确认修复下

    2019-06-03 14:55

3***@qq.com

3***@qq.com - 咖啡不加糖

解决了吗 楼主

DCloud_uniAD_HDX

DCloud_uniAD_HDX

HBuilderX 2.2.5(alpha) 以上版本已支持 直接配置 open-type="getPhoneNumber"

  • c***@126.com

    怎么onError和onGetAuthorize 跑的是同一个方法,在支付宝小程序里面同意授权或拒绝授权都是跑的统一onGetAuthorize方法,这个怎么解决

    2019-09-27 10:42

  • c***@126.com

    就是支付宝小程序如何区分同意授权或拒绝授权

    2019-09-27 10:44

  • 乘风hexiii

    你说的直接配置是什么意思,麻烦出个示例。

    2019-09-27 16:30

  • 2***@qq.com

    缺少加密配置

    2019-11-18 17:50

  • DCloud_uniAD_HDX

    回复 2***@qq.com: 加密配置需要服务器支持

    2019-11-18 20:03

  • DCloud_uniAD_HDX

    回复 乘风hexiii: 参考文档 https://uniapp.dcloud.io/component/button

    2019-11-18 20:03

  • DCloud_uniAD_HDX

    回复 2***@qq.com: https://opendocs.alipay.com/mini/introduce/getphonenumber

    2019-11-18 20:04

  • 2***@qq.com

    回复 DCloud_uniAD_HDX: 三克油。设置了AES密钥就好了

    2019-11-19 15:12

aliang888

aliang888

<button open-type="getAuthorize" scope='phoneNumber' @tap="getMobile()">
手机号登录
</button>
这样子可以

2***@qq.com

2***@qq.com - 吃多了

临时方法: open-type="getAuthorize" @getAuthorize="onGetAuthorize" @error="onAuthError" scope='phoneNumber'
没问题

正式方法 open-type="getPhoneNumber" @getphonenumber="login"
login(e){

}
打印e,如图。虽然获取到,但是在e.detail.errMsg里

  • 8***@qq.com

    兄弟这个问题解决了吗,这都半年多了返回的信息还是在e.detail.errMsg里,支付宝小程序没人用吗。。。

    2020-07-30 18:04

  • 4***@qq.com

    回复 8***@qq.com: 解决了吗?

    2022-09-26 15:33

8***@qq.com

8***@qq.com

楼组你解决了这个问题了吗

y***@163.com

y***@163.com

这个问题解决了吗?

jhonbo

jhonbo - IT工人

同问这个问题解决了吗?怎么解决?感觉uniapp不行啊

DCloud_uniAD_HDX

DCloud_uniAD_HDX

早解决了,按照文档的标准写法就可以,支付宝模拟的功能不全以真机为准

  • cyndy

    还是这样哦,真机

    2020-04-27 17:25

  • 8***@qq.com

    真机,最新版IDE,打印e,返回数据在e.detail.errMsg里


    // 授权返回结果如下  
    {errMsg: "getPhoneNumber:fail Error: {"response":"9j0HH6Qeo5A+kixxLFLIBTn4/8IND8ZtwoZqI+mRJz70moFKt1KzzW+VMDDMkuanFxsOww0898rHZKy5bXjoIg==","sign":"XggAr8O9rSToCx6q7rwx04o52kAdt/UbuAc500DSyPR30lIK4hgfJBo9VNf+Ipq0tFHwDaU8f3XSu/8vb8v4TDKVLQ/4yWDtUIRpQx0MyEwkEAgrRrJ1Tkjg99E+osg4FAXEyfFmV0MePGB3bfNm23x3AfT9ppQ+kG943BnoRH6/zqqf/EtduiCBrXKeaxIbFWvLwCEcWekOmPOon/i9+8SoWS9XnhTIWQ+NAJQQTvvMnlDm+5Zz+xd2bbkrK7+dr2VoCIMuv/4LDXggxZWpAlvHYRKXL4SiipxX2g0BxUj7K53DY7gFVYVtcUld65trfnPoOlM5XL0MdDVy18qm4w=="}"}

    2020-07-30 18:06

德风君

德风君

can not find event handle method: getphone_ali @163.com.163@163.com

1***@qq.com

1***@qq.com

这问题能不能解决啊,获取用户信息也是,都监听不到取消事件

[已删除]

[已删除]

解决了吗?

JohnWick

JohnWick - android

<button open-type="getAuthorize"  
            @error="onAuthError"  
            scope='phoneNumber'  
            @getAuthorize="getAlPhoneNumber"  
            class="commit-button">获取手机号</button>

这才是正确的写法

  • 9***@qq.com

    兄弟,为啥我@error 都不触发的,无法做异常处理啊。

    2021-07-19 14:52

该问题目前已经被锁定, 无法添加新回复