BasePayHandler.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <?php
  2. namespace common\pay;
  3. use yii\base\Component;
  4. class BasePayHandler extends Component
  5. {
  6. public $notifyUrl;
  7. public $returnUrl;
  8. /**
  9. * 构造自动提交表单
  10. * @param array $params
  11. * @param string $action
  12. * @return string
  13. */
  14. public static function createHtml($params, $action)
  15. {
  16. $encodeType = isset ($params ['encoding']) ? $params ['encoding'] : 'UTF-8';
  17. $html = <<<eot
  18. <html>
  19. <head>
  20. <meta http-equiv="Content-Type" content="text/html; charset={$encodeType}" />
  21. </head>
  22. <body onload="javascript:document.pay_form.submit();">
  23. <form id="pay_form" name="pay_form" action="{$action}" method="post">
  24. eot;
  25. foreach ($params as $key => $value) {
  26. $html .= " <input type=\"hidden\" name=\"{$key}\" id=\"{$key}\" value=\"{$value}\" />\n";
  27. }
  28. $html .= <<<eot
  29. <!-- <input type="submit" type="hidden">-->
  30. </form>
  31. </body>
  32. </html>
  33. eot;
  34. return $html;
  35. }
  36. /**
  37. * POST提交表单信息
  38. * @param array $postData
  39. * @param string $url
  40. * @return string
  41. */
  42. public static function curlPost($postData, $url)
  43. {
  44. $ch = curl_init($url);
  45. curl_setopt($ch, CURLOPT_POST, 1);
  46. curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
  47. curl_setopt($ch, CURLOPT_HEADER, 0);
  48. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  49. curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8');
  50. curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
  51. $response = curl_exec($ch);
  52. return $response;
  53. }
  54. /**
  55. * @param int $payType
  56. * @return aomei\PayHandler|aotu\PayHandler|balpal\PayHandler|huayin\PayHandler|huidao\PayHandler|xiaoyun\PayHandler|yef\PayHandler
  57. */
  58. public static function getPayHandlerByPayType($payType)
  59. {
  60. switch ($payType) {
  61. case 1:
  62. $handler = new \common\pay\renren\PayHandler();
  63. break;
  64. case 2:
  65. $handler = new \common\pay\wangtong\PayHandler();
  66. break;
  67. case 3:
  68. $handler = new \common\pay\sand\PayHandler();
  69. break;
  70. case 4:
  71. $handler = new \common\pay\shangxinshuntong\PayHandler();
  72. break;
  73. case 5:
  74. $handler = new \common\pay\threexmta\PayHandler();
  75. break;
  76. case 6:
  77. $handler = new \common\pay\xunjie\PayHandler();
  78. break;
  79. case 7:
  80. $handler = new \common\pay\ctype\PayHandler();
  81. break;
  82. case 8:
  83. $handler = new \common\pay\kexing\PayHandler();
  84. break;
  85. case 10:
  86. $handler = new \common\pay\otczhifu\PayHandler();
  87. break;
  88. case 11:
  89. $handler = new \common\pay\yinliantiaozhuan\PayHandler();
  90. break;
  91. case 12:
  92. $handler = new \common\pay\yinliantiaozhuan2\PayHandler();
  93. break;
  94. case 13:
  95. $handler = new \common\pay\yinliantiaozhuan3\PayHandler();
  96. break;
  97. case 14:
  98. $handler = new \common\pay\jiedeng\PayHandler();
  99. break;
  100. case 15:
  101. $handler = new \common\pay\eagle\PayHandler();
  102. break;
  103. case 16:
  104. $handler = new \common\pay\duisi\PayHandler();
  105. break;
  106. case 17:
  107. $handler = new \common\pay\duigong\PayHandler();
  108. case 18:
  109. $handler = new \common\pay\globalpay\PayHandler();
  110. break;
  111. default:
  112. $handler = null;
  113. break;
  114. }
  115. return $handler;
  116. }
  117. }