uni-app 使用 uni-pay 1.0 版本开发微信小程序支付功能时 gerorderinfo 接口报错 appid 不匹配

发布于 1周前 作者 itying888 来自 Uni-App

uni-app 使用 uni-pay 1.0 版本开发微信小程序支付功能时 gerorderinfo 接口报错 appid 不匹配

微信小程序支付功能开发问题

我是用uni-pay1.0版本开发微信小程序支付功能。

  • 微信商户平台绑定了微信小程序的appid,商户号也有,key也有。
  • 上传的时候都是同一个appid。
  • 在微信支付商户平台,查看绑定的appid跟小程序的appid也一致。
  • 微信商户平台的JSAPI支付也开通了。

但是调用uni-getOrderInfo接口就是报错:appid不匹配。

各位大佬给个思路,还有什么问题可以排查!

开发环境 版本号 项目创建方式
uni-app uni-pay1.0 -

2 回复

提示appid不匹配,那代表appid确实不匹配,不匹配的原因有以下几种,请检查下

appid和mchId不匹配
openid和appid不匹配


在开发微信小程序支付功能时,如果遇到 uni-pay 1.0 版本中 gerorderinfo 接口报错提示 appid 不匹配的问题,这通常意味着在请求支付信息时提供的 appid 与微信小程序的 appid 不一致。为了解决这个问题,我们需要确保在调用 uni-pay 相关接口时传递正确的 appid。以下是一个示例代码,展示如何在 uni-app 中正确配置和使用 uni-pay 进行微信小程序支付。

首先,确保你已经在微信公众平台配置了支付目录,并且你的小程序已经绑定了支付商户号。

1. 配置支付参数

在你的 uni-app 项目中,通常会有一个配置文件(如 manifest.json 或单独的支付配置文件)来存储支付相关的敏感信息,包括 appidmch_idkey 等。

// 支付配置文件示例(payConfig.js)
export const payConfig = {
  appId: 'your-wechat-mini-program-appid', // 确保这里的appid与微信小程序后台的一致
  mchId: 'your-mch-id',
  key: 'your-api-key',
  notifyUrl: 'https://yourserver.com/pay/notify' // 支付结果通知地址
};

2. 调用支付接口

在调用 uni-payrequestPayment 方法之前,你需要先调用 uni.login 获取用户的 code,然后结合你的服务器后端生成预支付订单信息。以下是一个简化的流程示例:

import { payConfig } from './payConfig';

// 登录获取code
uni.login({
  success: (loginRes) => {
    const code = loginRes.code;
    
    // 向你的服务器发送请求,获取预支付订单信息
    uni.request({
      url: 'https://yourserver.com/api/createOrder',
      method: 'POST',
      data: {
        code,
        appId: payConfig.appId,
        mchId: payConfig.mchId,
      },
      success: (orderRes) => {
        const paymentData = orderRes.data; // 这里应该包含微信支付需要的所有参数
        
        // 调用uni-pay的requestPayment方法
        uni.requestPayment({
          ...paymentData,
          success: (res) => {
            console.log('支付成功', res);
          },
          fail: (err) => {
            console.error('支付失败', err);
          }
        });
      },
      fail: (err) => {
        console.error('获取预支付订单信息失败', err);
      }
    });
  }
});

注意

  • 确保你的后端服务器正确处理了微信支付的签名和加密逻辑。
  • uni-pay 版本可能会更新,请参考最新的 uni-appuni-pay 文档。
  • 如果问题依旧存在,请检查你的 appid 是否在多处被错误地覆盖或修改。

通过上述步骤,你应该能够解决 appid 不匹配的问题,并成功集成微信小程序支付功能。

回到顶部