提供一个自动注册的接口。 接收的参数:openid,nickname 返回格式: {‘flag’:’true’/’false’,’code’:”,’msg’:”,’attachparams’:{‘param1′:”,’param2′:”}} 1、新建一个表 customers_auto create table customers_auto( id int primary key auto_increment, out_id_name varchar(255), out_id_value varchar(255), out_type varchar(255), auto_email varchar(255), customers_id int ); out_id_name:外部id的key名称,如’openid’ out_id_value:外表id的值,如’zilshkksd9f0ak’ out_type:外部账号类型 auto_email:系统自动产生的邮箱,用于填充到zencart本身的customers表的customers_email_address字段 customers_id:是zencart的customers的表的主键 2、改造pages/create_account/下的header_php.php文件: $openid = $_POST[‘openid’]; if (!isset($openid)) { require(DIR_WS_MODULES . zen_get_module_directory(‘require_languages.php’)); include(DIR_WS_MODULES . zen_get_module_directory(FILENAME_CREATE_ACCOUNT)); $breadcrumb->add(NAVBAR_TITLE); // This should be last line of the script: $zco_notifier->notify(‘NOTIFY_HEADER_END_CREATE_ACCOUNT’); } else { include(DIR_WS_MODULES . zen_get_module_directory(“create_account_auto”)); exit; } 如果有openid就引入另一个文件来处理,否则就走平常的。 2、检查传递的参数, 验证传递的openid是否已经存在,如果是,则返回失败,msg为账号已存在; 3、自动生成一个email, 格式为openid+”@zencart.com” 5、插入到zencart的customers表 需要的信息用程序自动生成。 获取到其customers_id供下一步使用。 4、插入到customers_auto表 搞定。写一个页面测试一下: testcreateacc.php <form action=”create_account_auto.php” method=”post”> <input type=”text” name=”openid” value=”randomid” /> <input type=”text” name=”nickname” value=”little” /> <input type=”submit” value=”提交” /> </form> create_account_auto.php <?php $url=”http://localhost/zencart/index.php?main_page=create_account”; $post_data=array(‘openid’=>$_REQUEST[‘openid’], ‘nickname’=>$_REQUEST[‘nickname’]); // var_dump($post_data); //$post_data=implode(“&”,$post_data); $ch=curl_init(); curl_setOpt($ch,CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setOpt($ch,CURLOPT_POST,1); curl_setOpt($ch,CURLOPT_POSTFIELDS,$post_data); $content=curl_exec($ch); curl_close($ch); echo $content; ?> 测试返回: {‘flag’:’true’,’msg’:’success’} 重复提交: {‘flag’:’false’,’code’:’account_exist’,’msg’:’账号已经存在!’}
