Cyber​​source退款REST API

问题描述

在我的情况下:我处理了付款并且付款成功,但是以某种方式我的内部API失败了,无法存储付款明细或分类帐。现在,我想退还给客户。 因此,我找到了这个端点“ pts / v2 / payments / {id} / refunds”,在这里我在查询参数中传递了PaymentId,在正文中传递了订单信息。但是回应是

{"submitTimeUtc":"2020-08-18T07:26:18Z","status":"INVALID_REQUEST","reason":"INVALID_DATA","message":"Declined - One or more fields in the request contains invalid data"}

我也从这里尝试过https://developer.cybersource.com/api-reference-assets/index.html#payments_refund 同样的事情。

我还查看了示例Java代码https://github.com/CyberSource/cybersource-rest-samples-java/blob/master/src/main/java/samples/Payments/Refund/RefundPayment.java

它先执行奇怪的操作,然后创建付款,然后将其退款。请帮助我了解此API的流程以及需要执行的操作。

解决方法

不确定您使用的是哪种语言,我看不到您的代码,但是我自己遇到了同一问题。无需使用SimpleAuthorizationInternet()函数来检索付款的详细信息,我只是根据需要输入ID。

所以,而不是:

SimpleAuthorizationInternet.userCapture = true;
PtsV2PaymentsPost201Response paymentResponse = SimpleAuthorizationInternet.run();
String id = paymentResponse.getId();

...不要调用该函数并删除以下行:

SimpleAuthorizationInternet.userCapture = true;
PtsV2PaymentsPost201Response paymentResponse = SimpleAuthorizationInternet.run();

..如果您有付款ID,只需直接在功能中使用它即可:

String id = '123456789321654987'

最好还是将其传递给函数调用,并使用该var而不是上面的硬编码字符串。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...