微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Cyber​​source退款REST API

如何解决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而不是上面的硬编码字符串。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。