TestRefillNotify.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. use PHPUnit\Framework\TestCase;
  3. use refill\util;
  4. define('APP_ID', 'test');
  5. define('BASE_ROOT_PATH', str_replace('/test', '', dirname(__FILE__)));
  6. require_once(BASE_ROOT_PATH . '/global.php');
  7. require_once(BASE_CORE_PATH . '/lrlz.php');
  8. require_once(BASE_ROOT_PATH . '/fooder.php');
  9. require_once(BASE_HELPER_PATH . '/refill/RefillFactory.php');
  10. require_once(BASE_HELPER_PATH . '/refill_proxy.php');
  11. require_once(BASE_CORE_PATH . '/framework/function/http.php');
  12. class TestRefillNotify extends TestCase
  13. {
  14. public static function setUpBeforeClass(): void
  15. {
  16. Base::run_util();
  17. }
  18. private function getProvider($name,$type = 'RefillPhone')
  19. {
  20. $file = BASE_HELPER_RAPI_PATH . "/$name/{$type}.php";
  21. if(!file_exists($file)){
  22. Log::record("provider api file={$file} not exist.",Log::DEBUG);
  23. return false;
  24. } else {
  25. require_once($file);
  26. Log::record("file={$file} load success.",Log::DEBUG);
  27. }
  28. $class_name = "refill\\{$name}\\{$type}";
  29. if (class_exists($class_name, false)) {
  30. $caller = new $class_name([]);
  31. return $caller;
  32. } else {
  33. $error = "Base Error: class {$class_name} isn't exists!";
  34. Log::record($error, Log::ERR);
  35. return false;
  36. }
  37. }
  38. private function xmlToArray($xml)
  39. {
  40. return json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
  41. }
  42. public function testCangBu()
  43. {
  44. $content = 'customerId=112&tmporder=8099200687720100332338&orderno=s16343761001545489501112&number=15202725166&money=100&amount=96.0000&code=1&cardno=&voucher=527102505060163546&sign=90269787b738e89884d22c5603a3b11f';
  45. parse_str($content,$params);
  46. $provider = $this->getProvider('cangbu','RefillCallBack');
  47. $ret = $provider->verify($params);
  48. $this->assertTrue($ret,'Verify is OK');
  49. $provider->notify($params);
  50. }
  51. public function testWangliantx()
  52. {
  53. $provider = $this->getProvider('wangliantx','RefillCallBack');
  54. // $xml = '<order><orderid>7DD563D3C300293073664</orderid><productid>10666</productid><num>1</num><ordercash>28.65</ordercash><price>30.0</price><productname>%E4%BB%A3%E7%90%86%E8%BE%BD%E5%AE%81%E7%A7%BB%E5%8A%A830%E5%85%83</productname><supnumber></supnumber><sporderid>8418840687878184059987</sporderid><mobile>13795190856</mobile><resultno>2</resultno></order>';
  55. // $resp = $this->xmlToArray($xml);
  56. //
  57. $params['userid'] = '10073664';
  58. $params['sporderid'] = '7017570687879655920102';
  59. $params['orderid'] = '02FDE541DBDB482E73664';
  60. $params['resultno'] = '1';
  61. $params['merchantsubmittime'] = '20211018134203';
  62. $params['ordermoney'] = '95.2';
  63. $params['verifystring'] = '0187e9b01a1dd25ad3dc0c5fbc7608b1';
  64. $params['sign'] = '9b9304a043167905fe88052735c57c2d';
  65. $params['supnumber'] = '11010336K132110181341020247862';
  66. $ret = $provider->verify($params);
  67. $this->assertTrue($ret,'Verify is OK');
  68. $provider->notify($params);
  69. }
  70. public function testQianqian()
  71. {
  72. $providers = $this->getProvider('qianqian', 'RefillCallBack');
  73. $datas = '{"orderNo":"F2110181448034576979","status":"003","consumerNo":"0687020687883683049582","voucherNo":"","mobile":"18976761665"}';
  74. $datas = json_decode($datas,true);
  75. $resp = $providers->notify($datas);
  76. }
  77. public function testHuafutong()
  78. {
  79. $providers = $this->getProvider('huafutong', 'RefillCallBack');
  80. $datas = '{"PostData":"GNY6FW+xi22du+5JHHM9iJ91YxgDJr6lWtPYNSf8m6KqRwzDFhqu828F\/gnCzQB7iZ0khqbP\/Brhbqpw252PnCCLr0F0hwpNhGlZXuqCc9o+QZY7oGJSIA45mkshDn8C"}';
  81. $datas = json_decode($datas,true);
  82. $resp = $providers->notify($datas);
  83. }
  84. public function testXianghongrui()
  85. {
  86. $provider = $this->getProvider('xianghongrui');
  87. $provider->xxx('<!DOCTYPE html>');
  88. }
  89. public function testYunlingfs()
  90. {
  91. $provider = $this->getProvider('yunlingfs');
  92. $provider->query(['order_sn' => '7861850691582899658106']);
  93. }
  94. }