ProviderInterface.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. declare(strict_types=1);
  3. namespace Yansongda\Pay\Contract;
  4. use Psr\Http\Message\MessageInterface;
  5. use Psr\Http\Message\ResponseInterface;
  6. use Psr\Http\Message\ServerRequestInterface;
  7. use Yansongda\Pay\Exception\ContainerException;
  8. use Yansongda\Pay\Exception\InvalidParamsException;
  9. use Yansongda\Pay\Exception\ServiceNotFoundException;
  10. use Yansongda\Supports\Collection;
  11. interface ProviderInterface
  12. {
  13. /**
  14. * @return null|array|Collection|MessageInterface
  15. *
  16. * @throws ContainerException
  17. * @throws InvalidParamsException
  18. * @throws ServiceNotFoundException
  19. */
  20. public function pay(array $plugins, array $params);
  21. /**
  22. * @param array|string $order
  23. *
  24. * @return array|Collection
  25. */
  26. public function find($order);
  27. /**
  28. * @param array|string $order
  29. *
  30. * @return array|Collection|void
  31. */
  32. public function cancel($order);
  33. /**
  34. * @param array|string $order
  35. *
  36. * @return array|Collection|void
  37. */
  38. public function close($order);
  39. /**
  40. * @return array|Collection
  41. */
  42. public function refund(array $order);
  43. /**
  44. * @param null|array|ServerRequestInterface $contents
  45. */
  46. public function callback($contents = null, ?array $params = null): Collection;
  47. public function success(): ResponseInterface;
  48. }