uniapp H5调取微信支付流程

15

uniapp H5调取微信支付流程

uni-app H5 调取微信支付流程

在 uni-app H5项目中,调取微信支付流程是一个常见的需求。下面是详细的步骤和代码示例。

1. 微信支付配置

首先,我们需要在微信开放平台上创建一个应用,并且配置好支付相关信息,如商户 ID、密钥等。

微信支付接口

我们需要使用微信支付提供的接口来完成支付流程。主要涉及以下几个步骤:

* 预支付订单(Unified Order):生成一个预付款单,用于保存交易信息。

* 关闭订单(Close Order):如果用户取消了支付,需要关闭该订单。

* 查询订单(Query Order):用于获取订单的状态。

2. uni-app H5项目配置

在 uni-app H5项目中,我们需要配置好微信支付相关信息,如 AppID、密钥等。

uni-app H5项目目录结构

我们需要在项目根目录下创建一个 `wx.config.js` 文件,用于存储微信支付相关配置信息。

```javascript// wx.config.jsmodule.exports = {

appId: 'your_app_id',

mchId: 'your_mch_id',

key: 'your_key'

}

```

3. 订单 ID 重定向

在 uni-app H5项目中,我们需要将订单 ID 重定向到当前页面路径上,用于获取预付款单。

uni-app H5 页面代码

我们需要在 uni-app H5 页面中添加一个函数来重定向到当前页面路径,并传递订单 ID。

```javascript// pages/index.jsPage({

data: {},

onLoad() {

// 重定向到当前页面路径 wx.redirectTo({

url: '/pages/pay/index?orderId=' + orderId,

})

}

})

```

4. 预付款单生成

在 uni-app H5项目中,我们需要使用微信支付接口来生成预付款单。

uni-app H5 页面代码

我们需要在 uni-app H5 页面中添加一个函数来生成预付款单,并传递订单 ID。

```javascript// pages/pay/index.jsPage({

data: {},

onLoad(options) {

const orderId = options.orderId;

//生成预付款单 wx.request({

url: ' method: 'POST',

header: {

'Content-Type': 'application/x-www-form-urlencoded'

},

data: {

appid: getApp().globalData.appId,

mch_id: getApp().globalData.mchId,

nonce_str: Math.random().toString(36).substr(2,15),

body: '测试订单',

out_trade_no: orderId,

total_fee:1,

spbill_create_ip: '192.168.0.1',

notify_url: ' },

success(res) {

console.log(res)

}

})

}

})

```

5. 支付结果处理

在 uni-app H5项目中,我们需要根据微信支付接口返回的结果来处理支付结果。

uni-app H5 页面代码

我们需要在 uni-app H5 页面中添加一个函数来处理支付结果,并更新订单状态。

```javascript// pages/pay/index.jsPage({

data: {},

onLoad(options) {

const orderId = options.orderId;

//生成预付款单 wx.request({

url: ' method: 'POST',

header: {

'Content-Type': 'application/x-www-form-urlencoded'

},

data: {

appid: getApp().globalData.appId,

mch_id: getApp().globalData.mchId,

nonce_str: Math.random().toString(36).substr(2,15),

body: '测试订单',

out_trade_no: orderId,

total_fee:1,

spbill_create_ip: '192.168.0.1',

notify_url: ' },

success(res) {

console.log(res)

// 支付成功 wx.showToast({

title: '支付成功',

icon: 'success',

duration:2000 })

// 更新订单状态 updateOrderStatus(orderId, 'paid')

}

})

}

})

```

6. 关闭订单

在 uni-app H5项目中,我们需要根据微信支付接口返回的结果来关闭订单。

uni-app H5 页面代码

我们需要在 uni-app H5 页面中添加一个函数来关闭订单,并更新订单状态。

```javascript// pages/pay/index.jsPage({

data: {},

onLoad(options) {

const orderId = options.orderId;

//生成预付款单 wx.request({

url: ' method: 'POST',

header: {

'Content-Type': 'application/x-www-form-urlencoded'

},

data: {

appid: getApp().globalData.appId,

mch_id: getApp().globalData.mchId,

nonce_str: Math.random().toString(36).substr(2,15),

body: '测试订单',

out_trade_no: orderId,

total_fee:1,

spbill_create_ip: '192.168.0.1',

notify_url: ' },

success(res) {

console.log(res)

// 支付失败 wx.showToast({

title: '支付失败',

icon: 'error',

duration:2000 })

// 关闭订单 closeOrder(orderId)

}

})

}

})

```

7. 查询订单

在 uni-app H5项目中,我们需要根据微信支付接口返回的结果来查询订单。

uni-app H5 页面代码

我们需要在 uni-app H5 页面中添加一个函数来查询订单,并更新订单状态。

```javascript// pages/pay/index.jsPage({

data: {},

onLoad(options) {

const orderId = options.orderId;

// 查询订单 wx.request({

url: ' method: 'POST',

header: {

'Content-Type': 'application/x-www-form-urlencoded'

},

data: {

appid: getApp().globalData.appId,

mch_id: getApp().globalData.mchId,

nonce_str: Math.random().toString(36).substr(2,15),

out_trade_no: orderId },

success(res) {

console.log(res)

// 更新订单状态 updateOrderStatus(orderId, res.result.status)

}

})

}

})

```

以上就是 uni-app H5 调取微信支付流程的详细步骤和代码示例。

支付微信前端javascript

版权声明:除非特别标注,否则均为网络文章,侵权请联系站长删除。

上一篇 微信支付--签名篇

下一篇 微信支付申请