最近在开发淘宝订单与本司erp对接的php程序,每一家的api都大同小异,不同之处在登陆也就是取得系统信任的session,之后就万事大吉了。
如何去淘宝申请api接口的,自己去http://open.taobao.com/折腾吧,我就不说了,申请还是比较简单的。记得要设置回调的页面,还有Secret和Key。
利用API取得用户名和ID做自己网站的OpenID也是不错的哦。
淘宝卖家现在日订单上百的不在少数,手工接订单,或者依赖淘宝或淘宝的第三方程序都不是正解,很多淘宝卖家不是只在淘宝折腾的。
废话少说,上代码,该代码由三个页面组成,该示例三个页面都在一个目录。
config.php,定义全局:
1 2 3 4 5 6 7 8 | <?php header( 'Content-type: text/html; charset=utf-8' ); $aSecret = 'XXXXXXXX' ; $aKey = 'XXXXXXXX' ; $aLogin = 'http://container.open.taobao.com/container?appkey=[key]&encode=utf-8' ; $aUrl = 'http://gw.api.taobao.com/router/rest' ; ?> |
login.php,登陆:
1 2 3 4 5 6 7 8 9 10 11 | <?php include ( 'config.php' ); if ( empty ( $_COOKIE [ 'as' ])){ $aSession = '' ; echo ( '<a href="' . str_replace ( '[key]' , $aKey , $aLogin ). '">Login</a>' ); } else { $aSession = $_COOKIE [ 'as' ]; echo ( 'loged' ); } ?> |
callback.php,回调:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | <?php include ( 'config.php' ); if (! empty ( $_REQUEST [ 'top_appkey' ]) && ! empty ( $_REQUEST [ 'top_parameters' ]) && ! empty ( $_REQUEST [ 'top_session' ]) && ! empty ( $_REQUEST [ 'top_sign' ]) && $_REQUEST [ 'top_sign' ]== base64_encode (md5( $_REQUEST [ 'top_appkey' ]. $_REQUEST [ 'top_parameters' ]. $_REQUEST [ 'top_session' ]. $aSecret , true))){ $aSession = $_REQUEST [ 'top_session' ]; setcookie( 'as' , $_REQUEST [ 'top_session' ], 0, '/' ); $aParameters = array (); parse_str ( base64_decode ( $_REQUEST [ 'top_parameters' ]), $aParameters ); echo ( '<pre>' ); print_r( $aParameters ); echo ( '</pre>' ); } else { echo ( '<pre>' ); print_r( $_REQUEST ); echo ( '</pre>' ); exit ; } function get_api( $msg ){ $d = @json_decode( $msg ); return $d ; } function getCurl( $url , $data =null, $header =null){ $c = curl_init( $url ); curl_setopt( $c , CURLOPT_RETURNTRANSFER, true); curl_setopt( $c , CURLOPT_HEADER, false); curl_setopt( $c , CURLOPT_SSL_VERIFYPEER, false); if (! empty ( $data )){ curl_setopt( $c , CURLOPT_POST, 1); curl_setopt( $c , CURLOPT_POSTFIELDS, $data ); } if (! empty ( $header )){ curl_setopt( $c , CURLOPT_HTTPHEADER, $header ); } $d [ 'data' ] = curl_exec( $c ); $d [ 'header' ] = curl_getinfo( $c ); curl_close( $c ); return $d ; } $topurl = $aUrl ; $tu [ 'method' ]= 'taobao.trades.sold.get' ; $tu [ 'session' ]= $aSession ; $tu [ 'timestamp' ]= date ( 'Y-m-d H:i:s' ); $tu [ 'format' ]= 'json' ; $tu [ 'app_key' ]= $aKey ; $tu [ 'v' ]= '2.0' ; $tu [ 'sign_method' ]= 'md5' ; $tu [ 'fields' ]= 'orders' ; $tu [ 'start_created' ] = date ( 'Y-m-d H:i:s' , strtotime ( '-2 day' )); ksort( $tu ); $sign = $aSecret ; foreach ( $tu as $k => $v ){ $sign .= $k . $v ; } $sign .= $aSecret ; $tu [ 'sign' ] = strtoupper (md5( $sign )); $url = $topurl . '?' .http_build_query( $tu , '' , '&' ); $d =getCurl( $url ); echo ( '<pre>' ); print_r(get_api( $d [ 'data' ])); echo ( '</pre>' ); ?> |
本代码需要php5,json,curl函数支持。
5 Comments
您好, 我有一些关於淘宝API 的問題想請教. 現在的淘宝API 主要都是关於賣家和淘宝客. 但我想做一个关於买家自身的程序, 但因為我看淘宝的文檔看到一头霧水, 希望賜教.
請問淘宝API 能否做到用戶登入(其实我最不明白就是会員登入拿SESSION KEY 的部份), 然后拿回該会員的訂單或物流狀況呢? 我知道有有关這样的API, 但我不熟悉淘宝如果用API 寫登入的部份.
希望 閣下能對我提供一些指引, 謝謝
淘宝改规则了 现在自用型也要获取Sessionkey 如知道本地程序怎样不通过sdk获取Sessionkey请告知 谢谢!
这篇文章帮了我大忙,多谢了。
现在申请API使用的,必须都提交应用吧?申请API访问,对接您公司的ERP,您的这个思路照现在还行的通吗?
可以自用,自己有淘宝店铺。
也可以发布给别人使用,这个淘宝要审核