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

【报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

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