BE_Express_CallBack_VerifySign_SFTC.groovy 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import com.dderp.common.api.BusinessExecutor
  2. import com.dderp.common.datas.ERPModule
  3. import com.dderp.common.entity.base.InvokeCallParams
  4. import com.dderp.common.entity.base.InvokeCallResult
  5. import com.dySweetFishPlugin.sql.dao.OperatorWait
  6. import com.sweetfish.convert.json.JsonConvert
  7. import com.sweetfish.service.RetResult
  8. import org.apache.commons.lang3.StringUtils
  9. import org.apache.logging.log4j.LogManager
  10. import org.apache.logging.log4j.Logger
  11. import javax.annotation.Resource
  12. class BE_Express_CallBack_VerifySign_SFTC implements BusinessExecutor<InvokeCallParams, InvokeCallResult> {
  13. private final Logger logger = LogManager.getLogger(this.getClass().getSimpleName())
  14. @Resource(name = "property.sftc.appId")
  15. long sfAppId
  16. @Resource(name = "property.sftc.appKey")
  17. String sfAppKey
  18. @Resource
  19. JsonConvert jsonConvert
  20. @Override
  21. String scriptName() {
  22. return "顺丰同城回调数据验证签名"
  23. }
  24. @Override
  25. ERPModule module() {
  26. return ERPModule.EXPRESS_API
  27. }
  28. @Override
  29. OperatorWait getAWait(InvokeCallParams source) {
  30. return OperatorWait.SYNC
  31. }
  32. RetResult<InvokeCallResult> execute(InvokeCallParams source) {
  33. String body = source.params
  34. String currentSign = ExpressApiSign.sfGenerateOpenSign(body, sfAppId, sfAppKey)
  35. String orginSign = source.attach.getValue("sign", "")
  36. def resultData = [
  37. error_code: 0,
  38. error_msg: "success"
  39. ]
  40. if (!StringUtils.equals(currentSign, orginSign)) {
  41. logger.error("签名错误")
  42. return RetResult.<InvokeCallResult> errorT().retinfo("签名错误").result(
  43. InvokeCallResult.success().data(jsonConvert.convertTo(resultData))
  44. )
  45. }
  46. return RetResult.<InvokeCallResult> successT().result(
  47. InvokeCallResult.success().data(jsonConvert.convertTo(resultData))
  48. )
  49. }
  50. }