返回

微信小程序开发之WebView组件内网页实现微信原生支付

Android

引言

微信小程序是腾讯公司开发的基于微信的应用服务平台,为开发者提供了一套完善的开发框架和丰富且便捷的服务,使得开发者可以在微信内开发运行小程序。

微信小程序原生支付 是微信小程序的支付功能,它可以通过调用微信小程序的支付API来实现,它支持多种支付方式,包括微信支付、支付宝支付、银行卡支付等。

需求分析

本项目需要实现以下功能:

  • 用户在微信小程序中点击“购买”按钮后,跳到webview页面;
  • 用户在webview页面中选择商品并点击“支付”按钮后,调用微信小程序原生支付API,进行支付;
  • 支付成功后,返回到微信小程序中,并显示支付成功信息。

设计方案

为了实现本项目的需求,我们将采用以下方案:

  1. 在微信小程序中创建webview组件,并将webview组件的url设置为需要跳到的webview页面;
  2. 在webview页面中,使用JavaScript代码调用微信小程序原生支付API,进行支付;
  3. 支付成功后,使用JavaScript代码将支付成功的信息返回到微信小程序;
  4. 在微信小程序中,接收来自webview页面的支付成功信息,并显示支付成功信息。

实现步骤

1. 创建微信小程序

  1. 打开微信小程序开发者工具,创建一个新的微信小程序项目;
  2. 在项目中创建一个名为“pages/index/index.js”的文件,并输入以下代码:
// pages/index/index.js
Page({
  data: {

  },
  onLoad: function () {

  },
  onShareAppMessage: function () {

  },
  toWebview: function () {
    wx.navigateTo({
      url: '/pages/webview/webview'
    })
  }
})

2. 创建webview组件

  1. 在项目中创建一个名为“pages/webview/webview.wxml”的文件,并输入以下代码:
<!-- pages/webview/webview.wxml -->
<view class="container">
  <web-view src="{{url}}"></web-view>
</view>
  1. 在项目中创建一个名为“pages/webview/webview.js”的文件,并输入以下代码:
// pages/webview/webview.js
Page({
  data: {
    url: 'https://www.baidu.com'
  },
  onLoad: function (options) {

  },
  onShareAppMessage: function () {

  },
  pay: function () {
    wx.requestPayment({
      timeStamp: '1546312950804',
      nonceStr: '3899733471284083',
      package: 'prepay_id=wx01113432312321321',
      signType: 'MD5',
      paySign: '234sdfsdf234sdfds23131'
    })
  }
})

3. 调用微信小程序原生支付API

  1. 在“pages/webview/webview.js”文件中,在“pay”函数中,使用JavaScript代码调用微信小程序原生支付API,进行支付。
  2. 在“pay”函数中,可以使用以下代码调用微信小程序原生支付API:
wx.requestPayment({
  timeStamp: '1546312950804',
  nonceStr: '3899733471284083',
  package: 'prepay_id=wx01113432312321321',
  signType: 'MD5',
  paySign: '234sdfsdf234sdfds23131'
})

4. 返回支付成功信息

  1. 在“pages/webview/webview.js”文件中,在“pay”函数中,可以使用以下代码将支付成功的信息返回到微信小程序:
wx.showToast({
  title: '支付成功',
  icon: 'success',
  duration: 2000
})

5. 接收来自webview页面的支付成功信息

  1. 在“pages/index/index.js”文件中,在“onLoad”函数中,可以使用以下代码接收来自webview页面的支付成功信息:
wx.onMessage(function (res) {
  if (res.data === '支付成功') {
    wx.showToast({
      title: '支付成功',
      icon: 'success',
      duration: 2000
    })
  }
})

结语

本文介绍了如何使用微信小程序开发之webview组件内网页实现微信原生支付。通过本文,读者可以学习到如何使用微信小程序的webview组件,如何调用微信小程序原生支付API,以及如何将支付成功的信息返回到微信小程序。