uni-app 配置 以及 使用微信云函数

aiwendnagphonenumber.getPhoneNumber | 微信开放文档     获取手机号方法

云调用 | 微信开放文档   云调用教程文档

该博客只提供配置流程   不解释细节  其实我也不太明白

如果要使用云函数 必须满足一下条件

一。文件创建

1. 在项目根目录中创建一个文件 用于存放 云函数文件(我这里创建了一个 functions 文件夹) 

2.在 functions 文件夹下创建你 要实现功能的名称 作为文件夹名称(功能名称随你定) 我这里是要获取用户手机号 就叫 getPhone

3.然后在getPhone 文件下创建 三个文件(config.jsonindex.jspackage.json

config.json 文件  (该文件是用于 配置云调用权限,每个云函数需要声明其会使用到的接口,否则无法调用

{
  "permissions": {
    "openapi": [
      "phonenumber.getPhoneNumberk" // 使用到的 云函数接口名
    ]
  }
}

微信文档介绍

 index.js 文件(该文件是用于调用微信云函数接口代码 书写)  如果你想一个接口获取到其他信息你也可以 在该函数中调用更多方法 当然你在项目中调用该函数时就得传递其对应的参数

 如果不想麻烦 也可以一种功能 写一个云函数 只要你云服务器内存够用 感觉企业开发这样比较方便 注册好各种功能函数 页面仔直接调用

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env:cloud.DYNAMIC_CURRENT_ENV
})

// 云函数入口函数
exports.main = async (event, context) => {
  let code = event.code   //接受参数
    try {
        const result = await cloud.openapi.phonenumber.getPhoneNumber({  //调用获取手机号方法
            code
        })
        return result //返回结果
    } catch (err) {
        throw err
    }
}

package.json (依赖文件目录)  wx-server-sdk 已经添加到依赖文件中 

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "wx-server-sdk": "~2.6.3"
  }
}

 3.在根目录中创建vue.config.js文件

文件内容

我在 1.操作  中的文件名称为 functions  所以下列代码 路径文件请按照自己的情况更改

const path = require('path')
const CopyWebpackPlugin = require('copy-webpack-plugin')

module.exports = {
  configureWebpack: {
    plugins: [
      new CopyWebpackPlugin([
        {
          from: path.join(__dirname, 'functions'),
          to: path.join(__dirname, 'unpackage/dist', process.env.NODE_ENV === 'production' ? 'build' : 'dev', process.env.UNI_PLATFORM, 'functions')
        }
      ])
    ]
  }
}

二。编译环境 配置

1.在项目中安装依赖

npm install copy-webpack-plugin@5.0.3 -s

2.在我们创建的 functions文件下找到我们创建的 getPhone文件 右键点击 外部命令窗口

 在窗口中输入   npm install     创建  node_modules  等依赖  文件建

3.打开根目录的 manifest.json  文件  点击 源码视图 找到 mp-weixin

"cloudfunctionRoot": "./functions/",

 三。上传 

将项目运行到微信小程序开发工具上

打开后  找到   project.config.json文件  就证明没有什么问题了

 上传文件  找到我们要是用的 云函数 getPhone 右键点击选择上传方式

我个人对这个上传的理解是

上传所有文件 调用时 云服务器就不需要再去 加载依赖

不上传所有文件 云服务器可能就需要去再引入依赖

具体看个人

 上传完成后  查看环境是否正确

调用

调用前先查看云函数是否  部署成功 

html部分  微信规定必须使用 该类型的 button 标签来获取code

		<button  
			type="primary" 
			class='btn' 
			open-type="getPhoneNumber"
			@getphonenumber="getPhoneNumber"
		>使用手机号登录</button>

js部分

	methods:{
		async getPhoneNumber (e) {
			
			wx.cloud.init() //初始化
			
			wx.cloud.callFunction({  //调用云服务
				name: "getPhone",    //云函数名称
				data: {
					code: e.detail.code,  //云函数需要的参数
					},
				})
				.then(res => {
						console.log('成功',res)
						console.log('手机号',res.result.phoneInfo.phoneNumber)
					})
				.catch(err => {
						console.log('失败',res)
					})
			},

最后就是 这个云服务是要收费的  不可能便宜你的  但是有免费使用额度 

根据自己需要来选择吧

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Uni-app是一种跨平台的开发框架,可以方便地开发出适用于多个终端的应用程序,包括Web、iOS、Android等。在开发过程中,我们可以使用uni-app提供的API实现多种功能,比如调用微信支付。 首先,我们需要在应用程序内引入微信支付所需的SDK,在Uni-app中可以使用插件机制,自己开发一个插件或者使用已有的插件,如uni-wxpay等。然后,在APP内调用微信支付的流程如下: 1.在创建支付订单时,需要将订单信息传递给服务端,由服务端生成订单号、调用微信支付API生成预支付订单,并返回给APP。 2.APP拿到预支付订单后,调用微信SDK内置的API进行支付,主要包括支付参数的配置和支付的发起。 3.支付完成后,微信会回调我们在服务端注册的回调地址,服务端通过请求微信的API对支付结果进行核对,确认支付是否成功,并作出相应的处理。 需要注意的是,在调用微信支付API时需要在微信开放平台申请开发者账号,并完成相应的配置,包括设置支付回调地址、支付授权目录等等。 总之,通过调用微信支付API,我们可以为APP添加支付功能,实现线上商品购买、捐赠赞赏等功能。而在Uni-app中,使用插件机制可以更加方便快捷地完成这个流程。 ### 回答2: uni-app 是一个可以跨平台开发的框架,它支持开发微信小程序、支付宝小程序、H5 等多个平台。在 uni-app 中内调用微信支付可以实现用户在应用内进行支付,下面我将具体介绍 uni-app 中如何进行内调用微信支付。 1. 首先需要在应用中安装微信支付插件,打开 HBuilderX,选择菜单栏中的“插件市场”,搜索“微信支付”,选择安装。 2. 在应用中使用微信支付的页面中引入微信支付插件: ```javascript import $payment from "@/uni_modules/yk-payment/js_sdk/uni-payment.js"; // 引入插件 ``` 3. 在需要支付的位置,调用微信支付的方法: ```javascript uni.showLoading({ title: '加载中' }); $payment.weixinPay({ timeStamp: '1603388794', nonceStr: '5pnskrq5060pt2lljndzpta9hzqmxrsq', package: 'prepay_id=wx30163954528026d7bf482abf2becd37124', signType: 'MD5', paySign: '3ACA84580DD8C32D8478B4BBF3688A1D', success: function (res) { console.log('success:' + JSON.stringify(res)); }, fail: function (err) { console.log('fail:' + JSON.stringify(err)); }, complete: function (res) { uni.hideLoading(); } }); ``` 其中,微信支付需要提供以下参数: - timeStamp:时间戳,单位为秒 - nonceStr:随机字符串,不长于 32 位 - package:统一下单接口返回的 prepay_id,参考[微信支付开发文档](https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1)中获取订单号 - signType:签名算法,目前支持 MD5 和 HMAC-SHA256 - paySign:签名,具体签名方式详见[微信支付开发文档](https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1) 微信支付成功后会回调 success 回调函数,失败则回调 fail 回调函数。 4. 在微信支付的后端接口中,需要根据微信支付返回的结果进行签名校验,确保订单的真实性。 综上所述,使用 uni-app 内调用微信支付步骤相对简单,只需安装微信支付插件,调用支付方法即可,但支付过程中需要注意时间戳、随机字符串、签名等参数的正确性,同时在后端接口中校验微信支付的签名以确保支付的真实性。 ### 回答3: Uni-app是一个跨平台开发框架,它可以让开发者一次编写代码,同时在多个平台上运行。微信支付是一个广为人知的移动支付平台,它可以提供便捷的支付服务。在实践中,我们可以使用Uni-app中的支付插件来在应用程序中调用微信支付。下面是如何实现Uni-app应用程序内调用微信支付: 1. 首先,安装支付插件在Uni-app开发环境中,可以通过npm安装。 2. 在支付插件内部,我们需要引用微信支付的API,以便在我们的应用程序中调用这些API来实现支付。这些API包括支付API、查询订单API、退款API等等。 3. 接下来,我们需要在我们的代码中调用支付API,这个API用于请求加载微信支付。当用户点击订单支付按钮时,我们可以在后台发送一个请求,请求加载微信支付页面和所需的支付参数。 4. 在向微信支付发送请求后,我们需要接收来自微信支付的响应,然后将结果传递给我们的应用程序。通常,微信支付会将支付结果返回给我们的后台服务器,然后我们可以将结果传递给我们的应用程序。我们可以使用Uni-app的API来轮询服务器以获取结果。 5. 最后,我们需要在我们的应用程序中向用户显示支付结果。如果支付成功,我们可以向用户显示订单确认信息。如果支付失败,我们可以向用户显示错误信息。 总之,Uni-app应用程序的开发者可以使用插件实现在应用程序中调用微信支付。开发者需要在插件内部引用微信支付API,然后在代码中调用它们来实现支付。最后,我们需要接收来自微信支付的响应,并在我们的应用程序中向用户显示支付结果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值