SAP Commerce Cloud DELETE/users/{userId}/paymentdetails/{paymentDetailsId} API无法正常工作

2020-08-27 04:20发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


  • 问题陈述:

对于SAP Commerce Cloud DELETE/{baseSiteId}/users/{userId}/paymentdetails/{paymentDetailsId} ,API不会删除所提供的paymentDetailsId的付款细节。

  • 详细信息:

我们正在使用SAP Commerce Cloud 1808 REST API与SAP Commerce Cloud 1808实例进行交互。 我们要删除客户的付款明细。 我们正在使用 GET /{baseSiteId}/users/{userId}/paymentdetails 检索客户的付款明细。 检索付款明细后,我们尝试通过调用 DELETE/{baseSiteId}/users/{userId}/paymentdetails/{paymentDetailsId} 删除特定的付款明细。 但是我们发现,即使DELETE/{baseSiteId}/users/{userId}/paymentdetails/{paymentDetailsId}给出200 OK的响应,付款细节也不会被实际删除。 我们可以再次检索相同的付款明细。

  • 观察到此行为的实例详细信息:

平台:SAP Commerce Cloud 1808

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


  • 问题陈述:

对于SAP Commerce Cloud DELETE/{baseSiteId}/users/{userId}/paymentdetails/{paymentDetailsId} ,API不会删除所提供的paymentDetailsId的付款细节。

  • 详细信息:

我们正在使用SAP Commerce Cloud 1808 REST API与SAP Commerce Cloud 1808实例进行交互。 我们要删除客户的付款明细。 我们正在使用 GET /{baseSiteId}/users/{userId}/paymentdetails 检索客户的付款明细。 检索付款明细后,我们尝试通过调用 DELETE/{baseSiteId}/users/{userId}/paymentdetails/{paymentDetailsId} 删除特定的付款明细。 但是我们发现,即使DELETE/{baseSiteId}/users/{userId}/paymentdetails/{paymentDetailsId}给出200 OK的响应,付款细节也不会被实际删除。 我们可以再次检索相同的付款明细。

  • 观察到此行为的实例详细信息:

平台:SAP Commerce Cloud 1808

付费偷看设置
发送
1条回答
jovirus
1楼-- · 2020-08-27 04:46

你好
我相信这是由于执行了 de.hybris.platform.commercefacades.user.impl.DefaultUserFacade#removeCCPaymentInfo 而执行的,该操作由控制器调用:

 @Override
 公共无效removeCCPaymentInfo(最终字符串ID)
 {
    validateParameterNotNullStandardMessage(" id",id);
    最终的CustomerModel currentCustomer =(CustomerModel)getUserService()。getCurrentUser();
    用于(最终CreditCardPaymentInfoModel creditCardPaymentInfo:getCustomerAccountService()
          .getCreditCardPaymentInfos(currentCustomer,false))
    {
       如果(creditCardPaymentInfo.getPk()。toString()。equals(id))
       {
          getCustomerAccountService()。deleteCCPaymentInfo(currentCustomer,creditCardPaymentInfo);
          打破;
       }
    }
    updateDefaultPaymentInfo(currentCustomer);
 } 
方法尝试检索当前客户的CC,并最终检索一个空列表(或一个没有所需付款信息的清单),这就是为什么未删除所需付款信息的原因。
您可以添加您的方法来通过uid检索客户并使用它,而不是使用getUserService()。getCurrentUser()返回的方法。

一周热门 更多>