WechatPay.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace App\Libs\Pay;
  3. use App\Libs\Pay\Merchants\Swiftpass;
  4. use App\Libs\Pay\Merchants\Youluo;
  5. use App\Libs\Pay\Merchants\AllinPay;
  6. use App\Libs\Pay\Merchants\Official;
  7. use App\Libs\Pay\Merchants\LianLianPay;
  8. use App\Libs\Pay\Merchants\Palmpay;
  9. use App\Libs\Pay\Merchants\PalmpayV2;
  10. use App\Libs\Pay\Merchants\OriginBank;
  11. use App\Libs\Pay\Merchants\SmkPay;
  12. use App\Libs\Pay\Merchants\UnionPay;
  13. /**
  14. * @method \App\Libs\Pay\Merchants\UnionPay Union(array $data)
  15. * @method \App\Libs\Pay\Merchants\Official Official(array $data)
  16. */
  17. class WechatPay
  18. {
  19. static function instance($merchant, array $config = [])
  20. {
  21. switch ($merchant) {
  22. case 'SWIFTPASS':
  23. $instance = new Swiftpass();
  24. break;
  25. case 'YOULUO':
  26. $instance = new Youluo();
  27. break;
  28. case 'ALLINPAY':
  29. $instance = new AllinPay($config);
  30. break;
  31. case 'OFFICIALPAY':
  32. $instance = new Official($config);
  33. break;
  34. case 'LIANLIANPAY':
  35. $instance = new LianLianPay($config);
  36. break;
  37. case 'PALMPAY':
  38. $instance = new Palmpay($config);
  39. break;
  40. case 'PALMPAYV2':
  41. $instance = new PalmpayV2($config);
  42. break;
  43. case 'ORIGINBANK':
  44. $instance = new OriginBank($config);
  45. break;
  46. case 'SMKPAY':
  47. $instance = new SmkPay($config);
  48. break;
  49. case 'UNIONPAY':
  50. $instance = new UnionPay($config);
  51. break;
  52. default:
  53. return null;
  54. }
  55. return $instance;
  56. }
  57. /**
  58. * Dynamically pass methods to the application.
  59. *
  60. * @param string $name
  61. * @param array $arguments
  62. *
  63. * @return mixed
  64. */
  65. public static function __callStatic($name, $arguments)
  66. {
  67. $merchant = $arguments[0];
  68. $config = $arguments[1];
  69. return self::instance($merchant, $config);
  70. }
  71. }