Paypal API-checkout.js-解析响应错误

Paypal API-checkout.js-解析响应错误,paypal,express-checkout,Paypal,Express Checkout,我已经在Angular应用程序上实现了这个API。问题是,当我输入错误的装运地址时,API会抛出错误: 未捕获错误:处理错误时遇到错误 错误:请求发布www.sandbox.paypal.com/v1/payments/payment失败,错误为400。相关id:3b331f9eaafa4,3b331f9eaafa4 { “名称”:“验证错误”, “详情”:[ { “字段”:“城市”, “问题”:“值无效” }, { “字段”:“状态”, “问题”:“值无效” }, { “字段”:“zip”,

我已经在Angular应用程序上实现了这个API。问题是,当我输入错误的装运地址时,API会抛出错误:

未捕获错误:处理错误时遇到错误 错误:请求发布www.sandbox.paypal.com/v1/payments/payment失败,错误为400。相关id:3b331f9eaafa4,3b331f9eaafa4

{ “名称”:“验证错误”, “详情”:[ { “字段”:“城市”, “问题”:“值无效” }, { “字段”:“状态”, “问题”:“值无效” }, { “字段”:“zip”, “问题”:“值无效” } ], “消息”:“无效请求-请参阅详细信息”, “信息链接”:“developer.paypal.com/docs/api/payments/#errors”, “调试id”:“3b331f9eaafa4” }


如何解析错误以显示带有错误文本的警报?它不是JSON,所以我不知道如何解析它。

使用正则表达式匹配JSON,然后使用。完成后,您可以使用包含错误相关信息的
消息
详细信息
字段

var jsonString = errmsg.match(/\{.*\}/gm);

var jsonObj = JSON.parse(jsonString);
希望这有帮助。

这是解决方案:

let res = error.message.match(/{([\s\S]*?)^}/gm);
console.log( JSON.parse( res[0] ) )

这将提供一个JSON供您使用。

它实际上是JSON,那么您为什么声称它不是JSON呢?显示这些错误可能是错误的方法。最好不要提交,因为城市和州没有供应。。。或者使用“登录PayPal”,以了解文件中的默认发货地址。“未提供的城市和州”-是的,它们是:美国圣何塞科罗拉多州1 Main St 95131问题是科罗拉多州,因为它应该是加利福尼亚州,这会导致错误。客户很可能填写错误的状态或邮政编码。在这种情况下,它只是停止工作,我需要显示错误。这是完整的错误:“错误:错误:请求发布sandbox.paypal.com/v1/payments/payments失败,错误为400。相关id:a7e0f78da1be,a7e0f78da1be{“名称”:“验证错误”,“详细信息”:[{“字段”:“城市”,“问题”:”值无效“}]}(www.paypalobjects.com/api/checkout.js:14010:39)(www.paypalobjects.com/api/checkout.js:2569:31)“正如您所看到的,它不是JSON,而是一个对象。