Home php教程 php手册 深圳通余额查询的API

深圳通余额查询的API

Jun 06, 2016 pm 07:35 PM
api balance Inquire Shenzhen

深圳通余额查询的API,可以通过深圳通号码查询到余额及卡有效期等信息。 用到Domxpath和Curl两方面的知识。 源码已托管到github,另外要加载个类:myclass 项目地址:https://github.com/skiy/dev 演示:http://api.oupag.com/dev/api/shenzhentong.php?cardn

深圳通余额查询的API,可以通过深圳通号码查询到余额及卡有效期等信息。
用到Domxpath和Curl两方面的知识。
源码已托管到github,另外要加载个类:myclass
项目地址:https://github.com/skiy/dev

演示:http://api.oupag.com/dev/api/shenzhentong.php?cardno=293005762

update 2014.10.20 22:53 
原来可以直接用GET方式,不需要用curl的POST方式来处理,这样响应快些~
PHP
<?php
/**
 * shenzhentong.php
 * 深圳通的API
 * @autuor: Skiychan
 * @contact: developer@zzzzy.com & QQ:1005043848
 * @website: www.zzzzy.com & http://weibo.com/ckiy
 * @date: 2014-10-19
 * @readme https://github.com/skiy/dev/blob/master/docs/shenzhentong.md
 */

/**
链接:http://query.shenzhentong.com:8080/sztnet/qrycard.jsp

接口信息
URL:http://query.shenzhentong.com:8080/sztnet/qryCard.do
     http://query.shenzhentong.com:8080/sztnet/qryCard.do?cardno=328375558
POST方法:cardno:328375558

### 返回字段 json格式
返回值字段 | 字段类型 | 字段说明
----|------|----
card_number   | int     | 卡号
card_balance  | string  | 卡内余额
balance_time  | string  | 余额截止时间
card_validity | string  | 卡有效期
current_time  | string  | 查询时间

 */

    require_once "../libs/myclass.php";

    date_default_timezone_set("Asia/Shanghai");

    $cardno = isset($_GET["cardno"]) ? $_GET["cardno"] : 0;
    $post_cardno = "cardno={$cardno}";
    $data = new Myclass();

    //curl 的POST方式
    //$page = $data->curls("http://query.shenzhentong.com:8080/sztnet/qryCard.do", false, $post_cardno);
    //直接GET方式
    $page = $data->curls("http://query.shenzhentong.com:8080/sztnet/qryCard.do?cardno={$cardno}");
    $page = $data->pageToDom($page, "GBK");

    $tr = $page->query("//table[@class='tableact']/tr/td");

    function getTextContent($m_query, $m_id) {
        $myTXT = str_replace(":", "", $m_query->item($m_id)->textContent);
        return $myTXT;
    }

    //截止时间内余额
    preg_match("/截止到([^\)]*)/", getTextContent($tr, 2), $expires);

    $results = array(
        "card_number" =>  (int) getTextContent($tr, 1),
        "card_balance" =>  getTextContent($tr, 3),
        "balance_time" => $expires[1],
        "card_validity" =>  getTextContent($tr, 5),
        "current_time" => date("Y-m-d H:i:s", time()));

    echo json_encode($results);

?>
 
Copy after login
<?php
/**
 * myclass.php
 * dev的基础类库
 * Autuor: Skiychan
 * Contact: developer@zzzzy.com & QQ:1005043848
 * Website: www.zzzzy.com & http://weibo.com/ckiy
 * Date: 2014-10-19
 */

class Myclass {

    /* curl配置: 取网页源码、模拟登陆、POST提交
     * @param $url: 如果非数组,则为http;如是数组,则为https
     * @param $header: 头文件
     * @param $post: post方式提交 array 或 abc=1&bcd=2 形式
	 * @param $cookies: 0默认无cookie,1为设置,2为获取
     */
	public function curls($urls, $header = FALSE, $post = FALSE, $cookies = 0) {
		$url = is_array($urls) ? $urls['0'] : $urls;
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		 
		//带header方式提交
		if($header != FALSE){
			curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
		}
		 
		//post提交方式
		if($post != FALSE){
			curl_setopt($ch, CURLOPT_POST, 1);
			curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
		}

        //cookies
		if($cookies == 1){
			curl_setopt($ch, CURLOPT_COOKIEJAR, "cookiefile");
		}else if($cookies == 2){
			curl_setopt($ch, CURLOPT_COOKIEFILE, "cookiefile");
		}

        //https
		if(is_array($urls)){
			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
			curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
		}
		
		$data = curl_exec($ch);
		curl_close($ch);
		return $data;
	}

    /* 将网页转换成XML,再转换成DOM
     * @param $data 非数组=>源码,数组 array($url, 1)1为file_get_contents,2为curl
     */
    public function pageToDom($data, $encoded = "utf-8"){

        if (is_array($data)) {
           if ($data[1] == 1) {
               $datas = @file_get_contents($data[0]);
           }

           if ($data[1] == 2) {
               $datas = @$this->curls($data[0]);
           }
        } else {
            $datas = $data;
        }

        if (empty($datas)){
            return false;
        }

        $meta = '<meta http-equiv="Content-Type" content="text/html; charset='.$encoded.'"/>';
        $datas = $meta.$datas;
        $xmldoc = new DOMDocument();
        @$xmldoc->loadHTML($datas);
        $xmldoc->normalizeDocument();
        $domresult = new Domxpath($xmldoc);

        return $domresult;
    }
}
Copy after login
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to check your academic qualifications on Xuexin.com How to check your academic qualifications on Xuexin.com Mar 28, 2024 pm 04:31 PM

How to check my academic qualifications on Xuexin.com? You can check your academic qualifications on Xuexin.com, but many users don’t know how to check their academic qualifications on Xuexin.com. Next, the editor brings you a graphic tutorial on how to check your academic qualifications on Xuexin.com. Interested users come and take a look! Xuexin.com usage tutorial: How to check your academic qualifications on Xuexin.com 1. Xuexin.com entrance: https://www.chsi.com.cn/ 2. Website query: Step 1: Click on the Xuexin.com address above to enter the homepage Click [Education Query]; Step 2: On the latest webpage, click [Query] as shown by the arrow in the figure below; Step 3: Then click [Login Academic Credit File] on the new page; Step 4: On the login page Enter the information and click [Login];

12306 How to check historical ticket purchase records How to check historical ticket purchase records 12306 How to check historical ticket purchase records How to check historical ticket purchase records Mar 28, 2024 pm 03:11 PM

Download the latest version of 12306 ticket booking app. It is a travel ticket purchasing software that everyone is very satisfied with. It is very convenient to go wherever you want. There are many ticket sources provided in the software. You only need to pass real-name authentication to purchase tickets online. All users You can easily buy travel tickets and air tickets and enjoy different discounts. You can also start booking reservations in advance to grab tickets. You can book hotels or special car transfers. With it, you can go where you want to go and buy tickets with one click. Traveling is simpler and more convenient, making everyone's travel experience more comfortable. Now the editor details it online Provides 12306 users with a way to view historical ticket purchase records. 1. Open Railway 12306, click My in the lower right corner, and click My Order 2. Click Paid on the order page. 3. On the paid page

How to check the activation date on Apple mobile phone How to check the activation date on Apple mobile phone Mar 08, 2024 pm 04:07 PM

If you want to check the activation date using an Apple mobile phone, the best way is to check it through the serial number in the mobile phone. You can also check it by visiting Apple's official website, connecting it to a computer, and downloading third-party software to check it. How to check the activation date of Apple mobile phone Answer: Serial number query, Apple official website query, computer query, third-party software query 1. The best way for users is to know the serial number of their mobile phone. You can see the serial number by opening Settings, General, About This Machine. . 2. Using the serial number, you can not only know the activation date of your mobile phone, but also check the mobile phone version, mobile phone origin, mobile phone factory date, etc. 3. Users visit Apple's official website to find technical support, find the service and repair column at the bottom of the page, and check the iPhone activation information there. 4. User

Comparison of similarities and differences between MySQL and PL/SQL Comparison of similarities and differences between MySQL and PL/SQL Mar 16, 2024 am 11:15 AM

MySQL and PL/SQL are two different database management systems, representing the characteristics of relational databases and procedural languages ​​respectively. This article will compare the similarities and differences between MySQL and PL/SQL, with specific code examples to illustrate. MySQL is a popular relational database management system that uses Structured Query Language (SQL) to manage and operate databases. PL/SQL is a procedural language unique to Oracle database and is used to write database objects such as stored procedures, triggers and functions. same

Oracle API integration strategy analysis: achieving seamless communication between systems Oracle API integration strategy analysis: achieving seamless communication between systems Mar 07, 2024 pm 10:09 PM

OracleAPI integration strategy analysis: To achieve seamless communication between systems, specific code examples are required. In today's digital era, internal enterprise systems need to communicate with each other and share data, and OracleAPI is one of the important tools to help achieve seamless communication between systems. This article will start with the basic concepts and principles of OracleAPI, explore API integration strategies, and finally give specific code examples to help readers better understand and apply OracleAPI. 1. Basic Oracle API

Oracle API Usage Guide: Exploring Data Interface Technology Oracle API Usage Guide: Exploring Data Interface Technology Mar 07, 2024 am 11:12 AM

Oracle is a world-renowned database management system provider, and its API (Application Programming Interface) is a powerful tool that helps developers easily interact and integrate with Oracle databases. In this article, we will delve into the Oracle API usage guide, show readers how to utilize data interface technology during the development process, and provide specific code examples. 1.Oracle

How to deal with Laravel API error problems How to deal with Laravel API error problems Mar 06, 2024 pm 05:18 PM

Title: How to deal with Laravel API error problems, specific code examples are needed. When developing Laravel, API errors are often encountered. These errors may come from various reasons such as program code logic errors, database query problems, or external API request failures. How to handle these error reports is a key issue. This article will use specific code examples to demonstrate how to effectively handle Laravel API error reports. 1. Error handling in Laravel

How to check the latest price of Tongshen Coin? How to check the latest price of Tongshen Coin? Mar 21, 2024 pm 02:46 PM

How to check the latest price of Tongshen Coin? Token is a digital currency that can be used to purchase in-game items, services, and assets. It is decentralized, meaning it is not controlled by governments or financial institutions. Transactions of Tongshen Coin are conducted on the blockchain, which is a distributed ledger that records the information of all Tongshen Coin transactions. To check the latest price of Token, you can use the following steps: Choose a reliable price check website or app. Some commonly used price query websites include: CoinMarketCap: https://coinmarketcap.com/Coindesk: https://www.coindesk.com/ Binance: https://www.bin

See all articles