H5呼起微信支付(个人实践总结)

1

H5呼起微信支付(个人实践总结)

我可以帮助你详细描述H5呼起微信支付的过程和解决方案。

第一种场景:其他浏览器呼起微信支付

在这种场景下,用户通过其他浏览器(如Chrome、Firefox等)访问你的项目页面,并点击支付按钮。这个时候,你需要使用微信支付JS SDK来实现H5呼起微信支付。

步骤1:引入微信支付JS SDK

首先,在你的项目中引入微信支付JS SDK的脚本文件,例如:

```html

```

步骤2:配置微信支付参数

接下来,你需要配置微信支付的参数,包括:

* `appId`:你的微信开放平台应用ID。

* `timestamp`:当前时间戳。

* `nonceStr`:一个随机字符串。

* `package`:支付包信息。

* `signType`:签名类型(固定值为"md5")。

* `paySign`:支付签名。

例如:

```javascriptvar appId = 'your_app_id';

var timestamp = Date.now();

var nonceStr = Math.random().toString(36).substr(2,15);

var package_ = 'prepay_id=' + getPrePayId();

var signType = 'md5';

var paySign = getPaySign(appId, timestamp, nonceStr, package_, signType);

// getPrePayId() 和 getPaySign() 是你需要实现的函数,用于获取预支付ID和签名。

```

步骤3:创建微信支付对象

然后,你需要创建一个微信支付对象,例如:

```javascriptvar wxPay = new WxPay({

appId: appId,

timestamp: timestamp,

nonceStr: nonceStr,

package_: package_,

signType: signType,

paySign: paySign});

```

步骤4:调用微信支付API

最后,你可以通过微信支付对象的`chooseWXPay()`方法来呼起微信支付页面,例如:

```javascriptwxPay.chooseWXPay({

success: function() {

// 支付成功后的回调函数。

},

fail: function() {

// 支付失败后的回调函数。

}

});

```

第二种场景:微信内部呼起微信支付

在这种场景下,用户通过微信浏览器访问你的项目页面,并点击支付按钮。这个时候,你需要使用微信内置的支付API来实现H5呼起微信支付。

步骤1:配置微信支付参数

首先,你需要配置微信支付的参数,包括:

* `appId`:你的微信开放平台应用ID。

* `timestamp`:当前时间戳。

* `nonceStr`:一个随机字符串。

* `package_`:支付包信息。

* `signType`:签名类型(固定值为"md5")。

* `paySign`:支付签名。

例如:

```javascriptvar appId = 'your_app_id';

var timestamp = Date.now();

var nonceStr = Math.random().toString(36).substr(2,15);

var package_ = 'prepay_id=' + getPrePayId();

var signType = 'md5';

var paySign = getPaySign(appId, timestamp, nonceStr, package_, signType);

// getPrePayId() 和 getPaySign() 是你需要实现的函数,用于获取预支付ID和签名。

```

步骤2:创建微信支付对象

然后,你需要创建一个微信支付对象,例如:

```javascriptvar wxPay = new WxPay({

appId: appId,

timestamp: timestamp,

nonceStr: nonceStr,

package_: package_,

signType: signType,

paySign: paySign});

```

步骤3:调用微信支付API

最后,你可以通过微信支付对象的`chooseWXPay()`方法来呼起微信支付页面,例如:

```javascriptwxPay.chooseWXPay({

success: function() {

// 支付成功后的回调函数。

},

fail: function() {

// 支付失败后的回调函数。

}

});

```

解决方案

在上述两种场景下,你需要实现一个通用的支付页面,能够适应不同的浏览器和微信内部环境。这个时候,你可以使用以下解决方案:

* 在你的项目中引入微信支付JS SDK的脚本文件。

* 配置微信支付参数,包括appId、timestamp、nonceStr、package_、signType和paySign。

* 创建一个微信支付对象,并通过chooseWXPay()方法呼起微信支付页面。

例如:

```javascript// 引入微信支付JS SDK的脚本文件。

// 配置微信支付参数。

var appId = 'your_app_id';

var timestamp = Date.now();

var nonceStr = Math.random().toString(36).substr(2,15);

var package_ = 'prepay_id=' + getPrePayId();

var signType = 'md5';

var paySign = getPaySign(appId, timestamp, nonceStr, package_, signType);

// 创建一个微信支付对象。

var wxPay = new WxPay({

appId: appId,

timestamp: timestamp,

nonceStr: nonceStr,

package_: package_,

signType: signType,

paySign: paySign});

// 呼起微信支付页面。

wxPay.chooseWXPay({

success: function() {

// 支付成功后的回调函数。

},

fail: function() {

// 支付失败后的回调函数。

}

});

```

总结

在本文中,我们详细描述了H5呼起微信支付的过程和解决方案。在两种场景下,你需要实现一个通用的支付页面,能够适应不同的浏览器和微信内部环境。这个时候,你可以使用上述解决方案来实现H5呼起微信支付。

参考

* 微信开放平台官方文档: 微信支付JS SDK的脚本文件:

支付微信前端javascript

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

上一篇 在线支付系列【6】微信支付产品简介

下一篇 java对接微信支付:JSAPI支付成功之“微信回调”