如何使用支付宝jssdk功能上传图片?

发布于 2022-09-06 10:28:30 字数 1520 浏览 25 评论 0

之前的微信H5项目,现在需要接入到支付宝里面,诸如扫码、选择和预览图片的功能直接调用支付宝的jssdk都能实现,然而支付宝的jssdk并没有上传图片的功能,有做过支付宝H5开发的同仁知道解决办法么?

AlipayJSBridge.call('chooseImage', {
  sourceType: ['camera', 'album'],
  count: 9
}, function (result) {
  const { localIds, apFilePathsV2 } = result
  // 可以从result里面去到localIds和apFilePathsV2这两个有用的数组
  // localIds的子元素是一些随机的字符串
  // apFilePathsV2的元素则是类似于`https://resource/fe4f6db8d03426987eafbb85c5d9d900c.image`之类的字符串
  // 不同于微信jssdk,这里的localId不能用来预览图片,但是apFilePathsV2可以,不过也不知道apFilePathsV2还能用来做啥,翻遍文档没有找到任何说明
});

我看到支付宝jssdk的chooseImage接口说明 的后面有这一段:

获取localID后,如果使用uploadImage接口上传,此处publicDomain参数的值应和uploadImage接口的publicDomain参数值的保持一致。

感觉应该是有一个uploadImage接口的,但是文档里面也没用找到任何说明。


发现另外一个接口和chooseImage类似,而且功能更全面:

  AlipayJSBridge.call('photo', {
    dataType: 'dataURL',
    imageFormat: 'jpg',
    quality: 75,
    maxWidth: 500,
    maxHeight: 500,
    allowEdit: true,
    multimediaConfig: { // 可选,仅当该项被配置时,图片被传输至 APMultimedia
      compress: 2, // 可选,默认为4。 0-低质量,1-中质量,2-高质量,3-不压缩,4-根据网络情况自动选择
      business: "multiMedia" // 可选,默认为“NebulaBiz”
    }
  }, function (result) {
    const { dataURL, multimediaID } = result
  });

可以通过这个接口获取到图片的内容,以及一个叫multimediaID的东西,文档说:

multimediaID: 标识上传图片在APMultimedia中的identifier

可是APMultimedia又是什么??我能通过multimediaID干什么事情? 文档也找不到说明

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

∞觅青森が 2022-09-13 10:28:30

在一个版本略早的支付宝jssdk文档的pdf版本里面找到了这一段

ap.chooseImage(function(res){
    if(res.apFilePaths && res.apFilePaths.length > 0) {
        ap.uploadFile({
            url: '[请使⽤⾃⼰服务器地址]',
            fileType: 'image',
            fileName: 'file',
            filePath: res.apFilePaths[0],
            success: function() {
                ap.alert('上传成功');
            },
            fail: function() {
                ap.showToast('上传失败');
            }
        });
    }
});

看来还是得自己实现上传服务才行了。

厌味 2022-09-13 10:28:30

碰巧遇到了这个问题 以为支付宝应该也有uploadImage的接口的 然而我也是踏破铁鞋都找不到啊,不知道小哥哥你有没有解决呢?

北恋 2022-09-13 10:28:30

支付宝自定义分享内容的接口有吗?右上角的分享。不是页面上加个按钮点击分享。除了starshare和 ap.share和meta标签,我是vue写的,单页面应用不可能每个页面分享内容写到index.html里面,怎么设置支付宝右上角分享的内容呢

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文