You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Angular HTTP Post实现Stripe Connect身份验证及文件上传问题

转换Stripe文件上传Curl请求到Angular ng-file-upload实现

没问题,我帮你把这个Stripe的curl请求转成用ng-file-upload实现的Angular代码,刚好之前处理过类似的场景,咱们一步步来对应:

首先拆解原curl里的核心配置,对应到ng-file-upload的参数:

  • 请求目标URL:https://files.stripe.com/v1/files
  • Basic认证:用平台密钥作为用户名,密码留空
  • 自定义请求头:Stripe-Account指定关联的Stripe账户ID
  • 表单数据:包含purpose标识和要上传的文件

下面是直接可用的代码实现:

// 假设你已经通过ng-file-upload的指令(比如ngf-select)拿到了用户选择的文件对象$scope.selectedFile
const PLATFORM_SECRET_KEY = '你的平台密钥';
const CONNECTED_STRIPE_ACCOUNT_ID = '关联的Stripe账户ID';

Upload.upload({
  url: 'https://files.stripe.com/v1/files',
  method: 'POST',
  // 设置Basic Auth头:把平台密钥转成Base64格式,密码部分留空
  headers: {
    'Authorization': 'Basic ' + btoa(PLATFORM_SECRET_KEY + ':'),
    'Stripe-Account': CONNECTED_STRIPE_ACCOUNT_ID
  },
  // 表单数据:purpose字段和用户选择的文件
  data: {
    purpose: 'identity_document',
    file: $scope.selectedFile
  }
}).then(function (resp) {
  console.log('文件上传成功', resp.data);
  // 这里可以处理上传后的逻辑,比如保存Stripe返回的文件ID
}, function (resp) {
  console.error('文件上传失败', resp.status, resp.data);
  // 处理错误场景,比如格式不支持、权限问题等
}, function (evt) {
  // 上传进度回调,可选
  var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
  console.log('上传进度: ' + progressPercentage + '% ' + evt.config.data.file.name);
});

关键提醒

  • 安全警告:直接在前端代码里暴露Stripe平台密钥风险极高,很容易被恶意用户窃取滥用。强烈建议你搭建一个后端中转接口,前端把文件和参数传给后端,再由后端用密钥调用Stripe API。
  • 文件合规性:确保上传的文件符合Stripe要求(支持JPG/PNG/PDF等格式,文件大小也有限制)
  • 错误处理:记得覆盖网络异常、Stripe返回的验证错误等场景,给用户友好的提示

内容的提问来源于stack exchange,提问作者Q. Bert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:25:55