本文实例讲述了php版微信自动获取收货地址api用法。分享给大家供大家参考,具体如下:
微信公众平台现在是越来越强大了,我们可以通过各种api接口来与平台对接获取对应的数据了,下面来看一个由php实现的微信自动获取收货地址api程序,具体如下.
关于接口的说明我就不介绍了,在官方可以看到下面只看处理程序.
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
|
public function get_address_api() {
$APPID =C( 'APPID' );
$SCRETID =C( 'SCRETID' );
if (!isset( $_GET [ 'code' ])) {
$backurl = $this ->get_url();
$url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" . $APPID . "&redirect_uri=" .urlencode( $backurl ). "&response_type=code&scope=jsapi_address&state=123#wechat_redirect" ;
// snsapi_userinfo
Header( "Location: $url" );
exit ;
} else {
$code = $_GET [ 'code' ];
$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" . $APPID . "&secret=" . $SCRETID . "&code=" . $code . "&grant_type=authorization_code" ;
$re = file_get_contents ( $url );
$rearr = json_decode( $re ,true);
$backurl = $this ->get_url();
$openid = $rearr [ 'openid' ];
$unionid = $rearr [ 'unionid' ];
$asstoken = $rearr [ 'access_token' ];
S( 'jsapi_address_token' . $openid , $asstoken ,7200);
$data [ 'appid' ]= $APPID ;
$data [ 'url' ]= $backurl ;
$data [ 'timestamp' ]=time();
$data [ 'timestamp' ]= (string)( $data [ 'timestamp' ]);
$data [ 'noncestr' ]= $this ->getRandStr(10);
$data [ 'accesstoken' ]= $asstoken ;
foreach ( $data as $k => $v ) {
$Parameters [ $k ] = $v ;
}
//签名步骤一:按字典序排序参数
ksort( $Parameters );
$String = $this ->formatBizQueryParaMap( $Parameters , false);
$data [ 'addrsign' ]=SHA1( $String );
$this ->assign( 'data' , $data );
}
$this ->siteDisplay( 'address_api' );
}
|
希望本文所述对大家PHP程序设计有所帮助。