收藏
回答

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

框架类型 问题类型 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>


回答关注问题邀请回答
收藏

5 个回答

  • LastLeaf
    LastLeaf
    2019-03-12

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

    2019-03-12
    有用
    回复 8
    • ljy
      ljy
      2019-03-12

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

      callMiniProgramFunction:fail File not found

      appid: wxd98129fff53dafc3

      版本库: 2.4.4

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

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


      2019-03-12
      回复
    • LastLeaf
      LastLeaf
      2019-03-12回复ljy

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



      2019-03-12
      回复
    • LastLeaf
      LastLeaf
      2019-03-12回复ljy

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

      2019-03-12
      1
      回复
    • ljy
      ljy
      2019-03-12回复LastLeaf

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

      目前关闭代码保护后,

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

      2019-03-12
      回复
    • LastLeaf
      LastLeaf
      2019-03-12回复ljy

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


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

      2019-03-12
      回复
    查看更多(3)
  • 赵景舰
    赵景舰
    01-25

    插件所有者小程序版本号是1.3,正常调用已经上线部署,然后所有者小程序升级版本号1.4,调用失败,所有这小程序回退到1.3也是不可以的,这种怎么操作


    01-25
    有用
    回复
  • 娃娃
    娃娃
    2022-12-27


    我是本地不会报错,但是发布之后,一直提示找不到这个文件,但是本地都可以调起支付的

    2022-12-27
    有用
    回复
  • 通联川分孙淑一
    通联川分孙淑一
    2022-04-18

    麻烦问下,exports.beforeRequestPayment

    如何传参到控件呢

    2022-04-18
    有用
    回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2019-03-12

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

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

    2019-03-12
    有用
    回复 7
    • NEOBARAN
      NEOBARAN
      2019-03-12

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

      2019-03-12
      回复
    • 疯狂的小辣椒
      疯狂的小辣椒
      2019-03-12回复NEOBARAN

      appid提供下

      2019-03-12
      回复
    • ljy
      ljy
      2019-03-12回复疯狂的小辣椒

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

      2019-03-12
      回复
    • NEOBARAN
      NEOBARAN
      2019-03-12回复疯狂的小辣椒
      wxb2623ccdb034d10a
      2019-03-12
      回复
    • NEOBARAN
      NEOBARAN
      2019-03-12回复疯狂的小辣椒
      这边关闭了「上传时进行代码保护」功能后可以正常使用了,感谢🙏
      2019-03-12
      回复
    查看更多(2)
登录 后发表内容