在尝试在开发环境中删除Sagepay上的TOKEN时,我遇到了一个问题。我正在使用服务器集成方法删除TOKEN。
以下是我在构建请求并从Sagepay API jar调用进程方法的代码。
final ConfigProperties properties = configLookupService.loadConfigProperties();
final IServerApi api = ApiFactory.getServerApi();
api.configure(properties.getRawProperties());
final ITokenRemoveRequest iTokenRemoveRequest = createDataForSagepayTokenDeletion(properties, api, token);
IBasicResult iBasicResult = api.process(iTokenRemoveRequest);
以下是错误:
java.lang.IllegalArgumentException:未知的消息类接口com.sagepay.sdk.api.messages.ITokenRemoveRequest at com.sagepay.sdk.impl.Marshaller.getProtocolMessageForClass(Marshaller.java:205) 在com.sagepay.sdk.impl.Marshaller.marshal(Marshaller.java:165) 在com.sagepay.sdk.impl.ApiImpl.sendRequest(ApiImpl.java:414) 在com.sagepay.sdk.impl.ApiImpl.process(ApiImpl.java:266) at com.exertis.sagepay.payment.service.impl.DefaultSagepayPaymentService.removeSagepayToken(DefaultSagepayPaymentService.java:670)。
从stackTrace可以看出, 在com.sagepay.sdk.impl.Marshaller中,CLASS_TO_MSG_MAP没有将ITokenRemoveRequest作为有效类,因此它失败了。
如果有人可以帮助我们,这将非常有帮助。或者,如果其他人遇到同样的问题,并设法解决它。