TestRBridge.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. use PHPUnit\Framework\TestCase;
  3. define('APP_ID', 'test');
  4. define('BASE_ROOT_PATH', str_replace('/test', '', dirname(__FILE__)));
  5. require_once(BASE_ROOT_PATH . '/global.php');
  6. require_once(BASE_CORE_PATH . '/lrlz.php');
  7. require_once(BASE_ROOT_PATH . '/fooder.php');
  8. require_once(BASE_CORE_PATH . '/framework/function/http.php');
  9. require_once(BASE_HELPER_PATH . '/rbridge/RBridgeFactory.php');
  10. require_once(BASE_HELPER_PATH . '/refill/RefillFactory.php');
  11. class TestRBridge extends TestCase
  12. {
  13. public static function setUpBeforeClass(): void
  14. {
  15. Base::run_util();
  16. }
  17. private function getParams()
  18. {
  19. $params = ["action" => "CZ",
  20. "chargeId" => $this->make_sn(),
  21. "chargeAcct" => "13911129867",
  22. "chargeCash" => 100.000,
  23. "chargeType" => 0,
  24. "amount" => 1,
  25. "faceValue" => 0,
  26. "var1" => "",
  27. "var2" => "",
  28. "var3" => "",
  29. "var4" => "",
  30. "productSn" => 0,
  31. "nbrArea" => "广东省深圳-移动",
  32. "cardSn" => "",
  33. "cardPassword" => "",
  34. "agentAcct" => "",
  35. "agentPass" => "",
  36. "cardId" => 0,
  37. "retRsn" => "0"];
  38. $params['sign'] = $this->sign($params);
  39. return $params;
  40. }
  41. public function testWSDAdd()
  42. {
  43. $resp = http_post_data(BASE_SITE_URL . "/mobile/bridge_shr.php",json_encode($this->getParams()),['Content-Type: application/json']);
  44. }
  45. public function testTCPAdd()
  46. {
  47. $params = $this->getParams();
  48. $this->send(json_encode($params));
  49. }
  50. public function send($body)
  51. {
  52. global $config;
  53. $port = $config['wsd_bradge_port'];
  54. $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
  55. if(socket_connect($sock, "192.168.1.220", $port))
  56. {
  57. socket_write($sock,$body);
  58. $resp = socket_read($sock,1024);
  59. }
  60. }
  61. public function testSurAdd()
  62. {
  63. $input = '{"action":"CZ","chargeId":196,"chargeAcct":"13530017201","chargeCash":100.000,"chargeType":0,"amount":1,"faceValue":100.000,"var1":"","var2":"","var3":"","var4":"","productSn":0,"nbrArea":"广东省深圳-移动","cardSn":"","cardPassword":"","agentAcct":"","agentPass":"","cardId":0,"retRsn":"0","sign":"3c90ed55aa363a22cd86746f34eeedb0"}';
  64. $params = json_decode($input,true);
  65. $ret = rbridge\RBridgeFactory::instance()->add('shr',$params);
  66. }
  67. public function testCallBack()
  68. {
  69. refill\RefillFactory::instance()->notify_merchant(304);
  70. }
  71. private function make_sn()
  72. {
  73. return mt_rand(1000,9999)
  74. . sprintf('%010d',time())
  75. . sprintf('%06d', (float) microtime() * 1000000);
  76. }
  77. private function sign($params)
  78. {
  79. //md5(chargeId + chargeAcct + var1 + var2 + var3 + var4 + chargeCash + md5key)
  80. $keys = ['chargeId','chargeAcct','var1','var2','var3','var4','chargeCash'];
  81. $body = "";
  82. foreach ($keys as $key) {
  83. $body .= $params[$key] ?? "";
  84. }
  85. $body .= 'ac59f54faf1ffcc1';
  86. $sign = md5($body);
  87. return $sign;
  88. }
  89. }