微信小程序开发常用功能

调用 wx.getUserProfile 方法获取用户基本信息。页面产生点击事件(例如 button 上 bindtap 的回调中)后才可调用,每次请求都会弹出授权窗口,用户同意后返回 userInfo

具体参数如下:

属性 类型 默认值 必填 说明
lang   string   en     显示用户信息的语言  
desc   string       声明获取用户个人信息后的用途,不超过30个字符  
success   function       接口调用成功的回调函数  
fail   function       接口调用失败的回调函数  
complete   function       接口调用结束的回调函数(调用成功、失败都会执行)  

示例代码

wx.getUserProfile({ desc: \'用于完善用户基本资料\', // 声明获取用户个人信息后的用途,不超过30个字符 success: (res) => { console.log(res.userInfo)); } })

获取到的返回值

{ "nickName": "秋梓", // 微信昵称 "gender": 0, "language": "zh_CN", "city": "", "province": "", "country": "", "avatarUrl": "https://thirdwx.qlogo.cn/mmopen/vi_32/qrSYVbDbBhunywgP5HTx4mhT8HVNzhmlibd8pfYo4guPJ5w/132" // 头像 } 获取手机号

目前该接口针对非个人开发者,且完成了认证的小程序开放(不包含海外主体)。需谨慎使用,若用户举报较多或被发现在不必要场景下使用,微信有权永久回收该小程序的该接口权限。

使用方法

需要将 button 组件 open-type 的值设置为 getPhoneNumber,当用户点击并同意之后,可以通过 bindgetphonenumber 事件回调获取到动态令牌code,然后把code传到开发者后台,并在开发者后台调用微信后台提供的 phonenumber.getPhoneNumber 接口,消费code来换取用户手机号。每个code有效期为5分钟,且只能消费一次。

注:getPhoneNumber 返回的 code 与 wx.login 返回的 code 作用是不一样的,不能混用。

代码示例

<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button> Page({ getPhoneNumber (e) { console.log(e.detail.code) } })

返回参数说明

参数 类型 说明 最低版本
code   String   动态令牌。可通过动态令牌换取用户手机号。使用方法详情 phonenumber.getPhoneNumber 接口    

然后通过 code 换取用户手机号。 每个code只能使用一次,code的有效期为5min

调用如下接口

POST https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=ACCESS_TOKEN

请求参数

属性 类型 默认值 必填 说明
access_token / cloudbase_access_token   string       接口调用凭证  
code   string       手机号获取凭证  

返回的 JSON 数据包

属性 类型 说明
errcode   number   错误码  
errmsg   string   错误提示信息  
phone_info   Object   用户手机号信息  

返回结果示例

{ "errcode":0, "errmsg":"ok", "phone_info": { "phoneNumber":"xxxxxx", "purePhoneNumber": "xxxxxx", "countryCode": 86, "watermark": { "timestamp": 1637744274, "appid": "xxxx" } } } 实现微信支付

唤起微信支付的核心方法调用 wx.requestPayment 方法,该方法具体参数如下

属性 类型 默认值 必填 说明
timeStamp   string       时间戳,从 1970 年 1 月 1 日 00:00:00 至今的秒数,即当前的时间  
nonceStr   string       随机字符串,长度为32个字符以下  
package   string       统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=***  
signType   string   MD5 仅在 v2 版本接口适用     签名算法,应与后台下单时的值一致  
    HMAC-SHA256 仅在 v2 版本接口适用      
    RSA 仅在 v3 版本接口适用      
paySign   string       签名,具体见微信支付文档  
success   function       接口调用成功的回调函数  
fail   function       接口调用失败的回调函数  
complete   function       接口调用结束的回调函数(调用成功、失败都会执行)  
/** * 微信支付方法 * @param {string} oderId 订单id * @param {string} total 订单金额 * @param {stromg} openId 登陆人openid */ function weixinPayFun(data) { wx.showLoading({ mask: true }) const http = new Http() return new Promise((resolve, reject) => { // 请求支付接口 http.post(`${env.fayongApi}/app/shopping/order/pay`, data).then(res => { // 获取支付签名信息 let payInfo = res.data // 调起微信支付 wx.requestPayment({ "timeStamp": payInfo.timeStamp + \'\', "nonceStr": payInfo.nonceStr, "package": payInfo.package, "signType": "RSA", "paySign": payInfo.paySign, "success": function (res) { console.log(res, \'success\'); // 支付成功 resolve(res) }, "fail": function (err) { // 支付失败 reject(err) }, "complete": function (res) { wx.hideLoading() } }) }) }) } 添加分享功能

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgyfdd.html