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

Payment Request API银行卡支付报错与配置咨询

报错根因

你碰到的Invalid payment method identifier format报错,是因为Chrome从96版本开始就彻底移除了旧版basic-card支付方式的支持,2021年之前的Payment Request API教程里写的直接传basic-card、卡组织名称作为supportedMethods的写法已经完全失效,现在API要求所有支付方式标识必须是符合规范的URL格式,不存在通用的内置银行卡支付选项。

银行卡场景的正确配置方式
  • 不需要单独找Visa、Mastercard等卡组织的独立标识URL,卡组织本身不直接面向商户提供PR API的接入标识,所有银行卡类的PR API对接,supportedMethods字段都要填你签约的收单支付服务商(也就是你用的Worldpay)提供的专属支付方式URL,对应data字段的参数规则也完全由Worldpay定义,没有通用配置,直接找Worldpay的技术支持索要PR API接入文档即可。
  • 如果Worldpay暂时没有提供适配PR API的自定义支付方式,你可以直接用W3C标准化的安全支付确认(SPC)方案对接,这个方案是目前浏览器原生支持的通用银行卡无跳转支付方案,supportedMethods固定填"secure-payment-confirmation"即可,不需要依赖支付服务商的自定义URL,只要Worldpay支持SPC协议就能完成对接。
适配SPC的参考代码
const paymentMethods = [
    {
        supportedMethods: "secure-payment-confirmation",
        data: {
            // 以下参数从Worldpay的支付接口侧获取对应值
            challenge: new Uint8Array([]), // 支付接口返回的验证挑战值
            rpId: window.location.hostname,
            credentialIds: [], // 用户已绑定银行卡的支付凭证ID数组
            payeeName: "你的站点名称",
            timeout: 60000
        }
    }
];

const details = {
    total: {
        label: 'Test payment',
        amount: { currency: 'GBP', value: '1.00' }
    }
};

const request = new PaymentRequest(paymentMethods, details);
request.show()
    .then(response => {
        // 将支付响应回传给Worldpay完成扣款验证
        console.log('获取支付响应成功', response);
        response.complete('success');
    })
    .catch(err => {
        console.error('支付流程异常', err);
    });
避坑提示
  • 不要浪费时间搜网上所谓的“Visa/Mastercard通用PR API标识”,这类公开通用标识不存在,非SPC场景下的支付标识只有你的签约收单方有权提供。
  • 你用的Chrome 103版本已经完整支持SPC方案,不需要升级浏览器就能直接调试。
  • 所有2021年之前发布的PR API教程涉及basic-card的内容都已经完全过时,没有参考价值,直接看最新的W3C标准或者你的支付服务商提供的接入文档即可。

内容的提问来源于stack exchange,提问作者El Guapo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:48:25