getProvider('dixin_normal'); $order_sn = $this->make_sn(); $resp = $provider->add(13911129867, 5, 50, ['order_sn' => $order_sn, 'regin_no' => 1]); $resp = $provider->query(['order_sn' => $order_sn]); $resp = $provider->balance(); } public function testDixinCB() { $content = '{"order_no":"OD40636475187360296","merchant_no":"0059570753462761433314","recharge_account":"13911129867","recharge_status":4,"complete_time":"2023-11-16 15:12:42","settlement_price":"47.30","total_amount":"50.00","actual_amount":"0.00","create_time":"2023-11-16 15:12:41","custom_tag":"123456","sign":"49b7f9f32a34f1c83dcb0d976f28d061"}'; $provider = $this->getProvider('dixin_normal','RefillCallBack'); $content = json_decode($content,true); $provider->verify($content); $provider->notify($content); } public function testSuhu() { $provider = $this->getProvider('suhu_normal'); $order_sn = $this->make_sn(); $resp = $provider->add(13167599238, 5, 100, ['order_sn' => $order_sn, 'regin_no' => 1]); $resp = $provider->query(['order_sn' => $order_sn]); $resp = $provider->balance(); } public function testSuhuCB() { $content = '{"order_no":"OD40636475187360296","merchant_no":"0059570753462761433314","recharge_account":"13911129867","recharge_status":4,"complete_time":"2023-11-16 15:12:42","settlement_price":"47.30","total_amount":"50.00","actual_amount":"0.00","create_time":"2023-11-16 15:12:41","custom_tag":"123456","sign":"49b7f9f32a34f1c83dcb0d976f28d061"}'; $provider = $this->getProvider('suhu_normal','RefillCallBack'); $content = json_decode($content,true); $provider->verify($content); $provider->notify($content); } public function testSuhuWozhifu() { $provider = $this->getProvider('suhu_wozhifu'); $order_sn = $this->make_sn(); $resp = $provider->add(13911129867, 5, 50, ['order_sn' => $order_sn, 'regin_no' => 1]); $resp = $provider->query(['order_sn' => $order_sn]); $resp = $provider->balance(); } public function testSuhuWozhifuCB() { $content = '{"order_no":"OD40636475187360296","merchant_no":"0059570753462761433314","recharge_account":"13911129867","recharge_status":4,"complete_time":"2023-11-16 15:12:42","settlement_price":"47.30","total_amount":"50.00","actual_amount":"0.00","create_time":"2023-11-16 15:12:41","custom_tag":"123456","sign":"49b7f9f32a34f1c83dcb0d976f28d061"}'; $provider = $this->getProvider('suhu_wozhifu','RefillCallBack'); $content = json_decode($content,true); $provider->verify($content); $provider->notify($content); } public function testYushang() { $provider = $this->getProvider('yushang_normal'); $order_sn = $this->make_sn(); $resp = $provider->add(13911129867, 5, 50, ['order_sn' => $order_sn, 'regin_no' => 1]); $resp = $provider->query(['order_sn' => $order_sn]); $resp = $provider->balance(); } public function testYushangCB() { $_POST= '{"ChargeAccount":"13911129867","ProductCode":"PLM100068","BuyCount":"1","MOrderID":"85661700722959070814","OrderID":"231123150239738000","State":"2","AppKey":"211394653","TimesTamp":"1700723025672","Sign":"86004EF5A40B8D8B30D7454246763DF4","ExtendParam":"{\"OfficialDes\":\"\u624b\u652f\u6e20\u9053\",\"OfficialOrderID\":\"OfficialOrderID001\",\"SellPrice\":16000}","ChargeMsg":""}'; $content = json_decode($_POST,true); $provider = $this->getProvider('yushang_normal','RefillCallBack'); $provider->verify($content); $provider->notify($content); } public function testLifang() { $provider = $this->getProvider('lifang_normal'); $order_sn = $this->make_sn(); // $resp = $provider->add(15652921127, 5, 30, ['order_sn' => $order_sn, 'regin_no' => 1]); // $resp = $provider->query(['order_sn' => $order_sn]); // $resp = $provider->balance(); } public function testLifangCB() { $_POST='{"orderId":"S23112800025098","outOrderId":"60201701159853851187","requestDate":"20231128164156","sign":"E172D40D040D26C8226E237ACED8C861","accessToken":"beaf87f8-7c6b-cb8a-98b8-53c207ca9aef","status":"1"}'; $content = json_decode($_POST,true); $provider = $this->getProvider('lifang_normal','RefillCallBack'); $provider->verify($content); $provider->notify($content); } public function testWeisanhuo() { $provider = $this->getProvider('weisanhuo_normal'); $order_sn = $this->make_sn(); $resp = $provider->add(13911220681, 4, 1, ['order_sn' => $order_sn, 'regin_no' => 1]);//30为测试产品 $resp = $provider->query(['order_sn' => $order_sn]); $resp = $provider->balance(); } public function testWeisanhuoCB() { $post = '{"operatorTradeNo":"202312198256229371","statusDesc":"交易成功","phone":"13911220681","outTradeNo":"91791702973663689415","sign":"c81575ceb8d2b28cd37e33c65141361c","inTradeNo":"20231219161425561173378018037","status":"success","reportTime":"1702974060008"}'; $data = json_decode($post, true); $provider = $this->getProvider('weisanhuo_normal', 'RefillCallBack'); $ret = $provider->verify($data); $resp = $provider->notify($data); } public function testSohanFast() { $provider = $this->getProvider('kefei_fast'); $order_sn = $this->make_sn(); $resp = $provider->add(13911129867, 4, 1, ['order_sn' => $order_sn, 'regin_no' => 1]);//30为测试产品 $resp = $provider->query(['order_sn' => $order_sn]); $resp = $provider->balance(); } public function testSohanFastCB() { $post = [ 'Action' => 'CX', 'AgentAccount' => 'api_test', 'Agentbalance' => '-400.000', 'Orderid' => '40661703685798184367', 'Chargeid' => '3386490685', 'Orderstatu_int' => '20', 'TransCash' => '1.000', 'OrderPayment' => '1.000', 'Errorcode' => '0000', 'Errormsg' => '', 'Sign' => '2fee99fc128de20c150d8d55ea8bb008' ]; $provider = $this->getProvider('kefei_fast', 'RefillCallBack'); $ret = $provider->verify($post); $resp = $provider->notify($post); } public function testGetOSN() { $get_osn = function($str) { $ret = preg_match("/[\s]+(?P[0-9a-zA-Z]*)/i",$str,$arr); if($ret > 0) { return $arr['osn']; } else { return ""; } }; $str = "缴费成功 8940247595202312075787697476"; $osn = $get_osn($str); // $ret = preg_match('/[\w\W]+UPDATE[\w\W]+available_predeposit=available_predeposit(?P[-+]+)(?P[.\d]+)/i', $line, $matches); $val = json_encode(['account' => '13911129867']); } private function getProvider($name, $type = 'RefillPhone') { $file = BASE_HELPER_RAPI_PATH . "/$name/{$type}.php"; if(!file_exists($file)){ Log::record("provider api file=$file not exist.",Log::DEBUG); return false; } else { require_once($file); Log::record("file=$file load success.",Log::DEBUG); } $class_name = "refill\\{$name}\\{$type}"; if (class_exists($class_name, false)) { $caller = new $class_name([]); return $caller; } else { $error = "Base Error: class {$class_name} isn't exists!"; Log::record($error, Log::ERR); return false; } } private function make_sn() { return mt_rand(1000, 9999) . sprintf('%010d', time()) . sprintf('%06d', (float)microtime() * 1000000); } public function testMillsec() { $microtime = intval(microtime(true) * 1000); } public function testLast() { $data = [0, 1, 2, 3, 4]; $val = $data[-1]; } }