收藏
回答

小程序插件支付功能页调用失败

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug 支付功能页 客户端 7.0.3 2.6.2

已按照文档说明配置,还是报 callMiniProgramFunction:fail File not found


因为插件开发,涉及源小程序和插件两个部分,很难提供代码片段,核心内容如下:


小程序中 app.json 已配置 "functionalPages": true

根目录下建立文件 functional-pages/request-payment.js 如下

exports.beforeRequestPayment = function(paymentArgs, callback) {
  wx.login({
    success(data) {
      wx.request({
        method: 'POST',
        url: 'https://foo.com/api/login',
        data: { code: data.code },
        success: function(res) {
          wx.request({
            method: 'POST',
            url: 'https://foo.com/api/order',
            data: paymentArgs,
            header: { Token: res.data.token },
            success: function(res) {
              if (res.data.code == 0) {
                callback(null, res.data.data)
              } else {
                callback(res.data.message)
              }
            },
            fail: function(res) {
              callback(res)
            },
          })
        },
        fail: function(res) {
          callback(res)
        },
      })
    },
    fail: function(res) {
      callback(res)
    },
  })
}


插件中

<functional-page-navigator version="develop"
                           name="requestPayment"
                           args="{{ { fee: total, paymentArgs: paymentArgs } }}"
                           bind:success="paymentSuccess"
                           bind:fail="paymentFailed">
  <button type="primary">微信支付</button>
</functional-page-navigator>


最后一次编辑于  03-12  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

2 个回答

  • 娇华
    娇华
    03-12

    你好,建议先参考下面的回答

    支付功能页
    https://developers.weixin.qq.com/community/develop/doc/00002ece5fc9a805a5c75bbdb51400

    03-12
    赞同
    回复 5
    • NEOBARAN
      NEOBARAN
      03-12

      你好,小程序端开发版已经打开了无数次了,可是插件端还是没有反应

      03-12
      回复
    • 娇华
      娇华
      03-12回复NEOBARAN

      appid提供下

      03-12
      回复
    • 李京阳
      李京阳
      03-12回复娇华

      你好借个楼,我也遇到了一样的问题,app.json 和  functional-pages/request-payment.js 都已经和完成,还是报 callMiniProgramFunction:fail File not found错误,appid: wxd98129fff53dafc3

      03-12
      回复
    • NEOBARAN
      NEOBARAN
      03-12回复娇华
      wxb2623ccdb034d10a
      03-12
      回复
    • NEOBARAN
      NEOBARAN
      03-12回复娇华
      这边关闭了「上传时进行代码保护」功能后可以正常使用了,感谢🙏
      03-12
      回复
  • LastLeaf
    LastLeaf
    03-12

    请确认已经在 插件所有者小程序 中加入这个文件,并且,加入(或更新)这个文件之后要重新扫描所有者小程序的开发版二维码,以确保测试用的手机上的开发版所有者小程序已被更新。之后再回到插件项目来测试插件功能页。

    03-12
    赞同
    回复 7
    • 李京阳
      李京阳
      03-12

      已经反复重复次步骤很多次,并且用之前未加载过插件所有者小程序的真机,尝试,均报错显示

      callMiniProgramFunction:fail File not found

      appid: wxd98129fff53dafc3

      版本库: 2.4.4

      文件路径为 小程序跟目录/functional-pages/request-payment.js

      文件使用 exports.beforeRequestPayment = function(paymentArgs, callback){} 方法导出


      03-12
      回复
    • LastLeaf
      LastLeaf
      03-12回复李京阳

      这个报错比较明确,即找不到 functional-pages/request-payment.js 。请确认插件所有者小程序项目设置中的 appid 确实是 wxd98129fff53dafc3 ,并且在这里显示“小程序模式”:



      03-12
      回复
    • LastLeaf
      LastLeaf
      03-12回复李京阳

      发现是开发者工具的“上传时进行代码保护”功能有 bug 。我们处理一下。

      03-12
      1
      回复
    • 李京阳
      李京阳
      03-12回复LastLeaf

      关闭代码保护后确实效果不一样,但也不是正常的,不知道你们修改后会不会正常

      目前关闭代码保护后,

      调起支付页面,点击支付按钮会一直显示loading图标,长时间无响应

      03-12
      回复
    • LastLeaf
      LastLeaf
      03-12回复李京阳

      我自己的用例一直没有问题(我是看了你的项目设置截图猜到的)。


      一直显示 loading 图标,说明你的 beforeRequestPayment  没有 callback 。

      03-12
      回复
    查看更多(2)