网站开发 · 2025年4月26日

zencart添加一个自动注册的接口

提供一个自动注册的接口。 接收的参数: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’:’账号已经存在!’}