uniapp微信支付分如何集成和使用

在uniapp中如何集成微信支付分功能?具体的使用流程和配置步骤是怎样的?有没有相关的demo或示例代码可以参考?集成过程中需要注意哪些常见问题?

2 回复

UniApp集成微信支付分步骤如下:

  1. 前置条件

    • 已注册微信开放平台并完成开发者资质认证
    • 申请微信支付分权限(需联系微信支付客服开通)
    • 配置AppID和Universal Links(iOS)
  2. 后端准备

    • 搭建服务端接口,用于调用微信支付分API(创建/查询/取消/完结订单等)
    • 需处理签名、回调通知等逻辑
  3. UniApp端集成

    // 引入JS-SDK
    const service = uni.requireNativePlugin('微信支付分插件名称');
    
    // 调用创建订单接口(需先获取后端返回的参数)
    service.createBill({
      ...params // 包含商户号、服务ID、时间戳等
    });
    
    // 监听支付结果
    uni.onWalletPayComplete(res => {
      if(res.code === 0) {
        // 支付成功处理
      }
    });
    
  4. 注意事项

    • 需真机调试,部分功能无法在模拟器使用
    • 严格按照微信要求处理异步通知
    • 测试阶段使用沙箱环境

建议先阅读微信支付分官方文档,结合uni-app插件市场现有支付分插件加速开发。


在 UniApp 中集成微信支付分,需通过微信小程序平台实现。以下是关键步骤和代码示例:

一、准备工作

  1. 开通微信支付分
    在微信支付商户平台开通支付分功能,并配置服务ID和回调地址。
  2. 小程序后台设置
    在小程序后台关联商户号,并在「开发管理」-「接口设置」中启用「微信支付分」权限。

二、核心流程与代码

支付分典型流程:创建订单 → 触发授权/支付 → 处理回调

1. 创建支付分订单(服务端)

需在后端调用微信支付API(如Java/PHP/Python),生成支付分订单:

// 伪代码(服务端示例)
const orderParams = {
  mchid: '商户号',
  appid: '小程序AppID',
  service_id: '服务ID',
  out_order_no: '商户订单号',
  service_introduction: '服务描述',
  risk_amount: 100, // 风险金额(分)
  notify_url: '回调地址'
};
// 调用微信支付分创建订单API:https://api.mch.weixin.qq.com/v3/payscore/serviceorder

2. UniApp端触发支付分

使用 uni.requestPayment 或直接跳转支付分页:

// 方式1:通过支付API(需用户已授权)
uni.requestPayment({
  provider: 'wxpay',
  orderInfo: res.data.paymentParams, // 服务端返回的支付参数
  success: (res) => {
    console.log('支付成功', res);
  },
  fail: (err) => {
    console.error('支付失败', err);
  }
});

// 方式2:跳转支付分小程序页(首次需授权)
uni.navigateToMiniProgram({
  appId: 'wxid_payscore', // 支付分小程序ID
  path: `/pages/entry?order_no=${orderNo}`, // 订单参数
});

3. 处理回调通知

服务端接收支付结果回调,验证签名后更新订单状态:

// 伪代码(服务端回调处理)
// 验证微信签名 → 解析订单状态 → 更新业务数据库
if (event_type === 'PAYSCORE.USER_CONFIRM') {
  // 用户确认订单
} else if (event_type === 'PAYSCORE.USER_PAID') {
  // 订单完成支付
}

三、注意事项

  1. 权限控制
    • 首次使用需引导用户授权(通过弹窗或跳转支付分页)。
    • 可通过 uni.getSetting 检查是否已授权。
  2. 调试工具
    使用微信开发者工具模拟支付分流程,需开启“跳过授权”选项。
  3. 错误处理
    常见错误码:
    • -1:系统错误
    • 1000:参数错误
    • 2000:用户取消

四、参考文档

建议先在小程序环境中测试完整流程,确保授权和支付回调正常。

回到顶部