ecshop整合QQ登陆地址同步/qq彩贝同步问题

2011-11-01 11:56 来源:www.chinab4c.com 作者:ecshop专家

    我们前段时间讨论了ecshop整合qq同步登陆问题.ecshop整合qq同步登陆其实很简单。我们只要调用对应的数据接口。以及获取对应的数据流,就能实现同步登陆了。qq同步登陆之后,我们还可以同步qq登陆的地址。以及qq彩贝的收货地址.达到同步到ecshop网站的目的.

   1:首先我们要封装对应的参数

    $sig =md5($charset.$merchant_id.$openid.$openkey.$return_fmt.$timestamp.$version.$appkeytmp);
   $addstring ="http://open.cb.qq.com/OpenAPI/openkey/get_user_address.php?version=1.0&";

    首先我们来解析下以下参数名称.

    $charset这个就是同步qq地址返回的数据编码

   $return_fmt这个就是返回数据的格式。

   当我们封装了这些数据之后。我们就可以通过以下代码来请求数据

    $add_file = @file_get_contents($addstring);

    $add_file=urldecode($add_file);

     因为ecshop整合QQ登陆地址同步/qq彩贝同步他们返回的数据是xml而且内容是urlencode()过的。我们必须urldecode()让他正常的显示中文数据.

   既然得到了返回的数据信息之后。我们就可以通过正则对这个返回数据XML进行解析.

    preg_match_all("/<address_id>(.*?)<\/address_id>/is",$add_file,$address_id1);
   
  preg_match_all("/<name>(.*?)<\/name>/is",$add_file,$name);
  preg_match_all("/<province>(.*?)<\/province>/is",$add_file,$province);
  preg_match_all("/<city>(.*?)<\/city>/is",$add_file,$city);
  preg_match_all("/<dist>(.*?)<\/dist>/is",$add_file,$dist);
  preg_match_all("/<post_code>(.*?)<\/post_code>/is",$add_file,$post_code);
  preg_match_all("/<address>(.*?)<\/address>/is",$add_file,$address);
  preg_match_all("/<mobile>(.*?)<\/mobile>/is",$add_file,$mobile);

    现在放入的数据都是我们获取到的QQ同步登陆/qq彩贝同步登陆过来的收货地址。我们可以通过address_id来进行判断。如果地址为空。我们就可以取得该地址,然后录入到user_address表中。如果该地址不为空,数据信息不一样。我们就更新这条收货地址。达到随时同步ecshop整合QQ登陆地址同步/qq彩贝.

    来源:http://www.chinab4c.com