前端如何使用微信支付

一、h5页面支付

h5页面接入微信支付分为两种情况,一种微信内置浏览器调用支付,另一种是在外置浏览器调用支付

内置浏览器支付

内置浏览器支付使用JSAPI支付

前端调用代码

wx.chooseWXPay({
  timestamp: 0, // 支付签名时间戳,注意微信 jssdk 中的所有使用 timestamp 字段均为小写。但最新版的支付后台生成签名使用的 timeStamp 字段名需大写其中的 S 字符
  nonceStr: '', // 支付签名随机串,不长于 32 位
  package: '', // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)
  signType: '', // 微信支付V3的传入 RSA ,微信支付V2的传入格式与V2统一下单的签名格式保持一致
  paySign: '', // 支付签名
  success: function (res) {
    // 支付成功后的回调函数
  }
});

JSAPI支付-产品介绍 | 微信支付商户平台文档中心

外置浏览器支付

外置浏览器使用h5支付,要求商户已有H5商城网站,并且已经过ICP备案,即可申请接入

介绍:H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付。

1.用户使用微信外部的浏览器访问商户H5页面,当用户选择相关商品购买时,商户系统先调用该接口在微信支付服务后台生成预支付交易单。

2.微信外部的浏览器拉起微信支付中间页,通过H5下单API成功获取H5下单返回的支付中间页(h5_url)后,用户需要通过微信外部的浏览器调起微信支付收银台

3.当用户完成支付,微信会把相关支付结果将通过异步回调的方式通知商户,商户需要接收处理,并按文档规范返回应答

产品介绍-H5支付 | 微信支付商户平台文档中心

二、pc端支付

Native支付:商家在系统中按微信支付协议生成支付二维码,用户扫码拉起微信收银台,确认并完成付款。

前端只需要对接后端接口获取code_url,把code_url转换成二维码即可

三、小程序支付

商户已有微信小程序,用户通过好友分享或扫描二维码在微信内打开小程序时,可以调用微信支付完成下单购买的流程。

注意:小程序不能通过拉起H5页面做jsapi支付,小程序内只能使用小程序支付

uniapp前端代码

uni.requestPayment({
    "provider": "wxpay", 
    "orderInfo": {
        "appid": "wx499********7c70e",  // 微信开放平台 - 应用 - AppId,注意和微信小程序、公众号 AppId 可能不一致
        "noncestr": "c5sEwbaNPiXAF3iv", // 随机字符串
        "package": "Sign=WXPay",        // 固定值
        "partnerid": "148*****52",      // 微信支付商户号
        "prepayid": "wx202254********************fbe90000", // 统一下单订单号 
        "timestamp": 1597935292,        // 时间戳(单位:秒)
        "sign": "A842B45937F6EFF60DEC7A2EAA52D5A0" // 签名,这里用的 MD5/RSA 签名
    },
    success(res) {},
    fail(e) {}
})

微信原生

wx.requestPayment(Object object) | 微信开放文档

wx.requestPayment({
  timeStamp: '',
  nonceStr: '',
  package: '',
  signType: 'MD5',
  paySign: '',
  success (res) { },
  fail (res) { }
})

产品介绍-小程序支付 | 微信支付商户平台文档中心

### 微信支付前端集成指南 #### 一、微信支付API官方文档解析 对于希望了解如何在前端实现微信支付集成的开发者而言,微信支付提供了详细的官方文档来指导这一过程。该文档不仅涵盖了必要的技术细节,还包含了具体的接口定义以及调用方法[^1]。 ```javascript // 示例:获取预支付交易会话标识 wx.request({ url: 'your_backend_api', // 后端提供的统一订单创建接口地址 method: 'POST', data: { body: '商品描述', out_trade_no: '商户订单号', total_fee: 1, // 订单总金额,单位为分 spbill_create_ip: '用户端实际ip', notify_url: 'http://www.example.com/wxpay_notify' // 接收微信支付异步通知回调地址 }, success(res){ const prepayId = res.data.prepay_id; console.log('prepay_id:', prepayId); } }); ``` 上述代码片段展示了通过向后端发送请求以获得`prepay_id`的过程,这是发起支付前必需的一个步骤之一。需要注意的是,这部分逻辑通常是在服务端完成并返回给前端使用的;而前端则负责利用这个ID以及其他必要参数去调用微信JS-SDK中的支付函数。 #### 二、基于Spring Boot与weixin-java-pay库的应用实例 除了直接参照官方文档外,还有许多开源项目可以帮助理解整个工作流。例如,在Java生态系统里,有一个名为`weixin-java-pay`的库可以简化同微信支付系统的交互操作。结合Spring Boot框架构建的服务端应用能够很好地处理从前端传来的支付请求,并最终反馈所需的支付凭证给前端用于启动支付流程[^2]。 #### 三、H5页面接入微信支付的具体实践 针对Web应用程序特别是移动互联网场景下的HTML5页面来说,《最新详细实现H5网页接入微信支付功能》这篇文章给出了非常实用的操作手册。它特别强调了即使不在微信内部浏览器环境下也能顺利完成支付体验的设计思路——即允许任何标准浏览器加载含有特定JavaScript SDK脚本的页面并通过扫描二维码的方式完成付款动作。此外,文章也解决了诸如本地测试困难等常见挑战[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值