月度归档 2017年9月12日

通过清心醉

模块化第三方接口开发一,模块化的登陆

很多做WEB开发的人都知道,现在做WEB,都需要使用第三方比如支付宝、微信等 。拿国内的ecshop来说吧,我们在添加一个支付宝授权登陆、微信授权登陆,支付宝支付、微信支付的时候,都会需要对不同的模块进行频繁的修改,虽然说也有封装部分的接口,但也不能得尽人意。而且如果后续要对接比如PAYPAY支付、GOOGLE支付等其他第三方支付的时候,会显示出我们写的代码的质量是多么的脆弱,好吧,上正题,本文将从登陆开始,来实现系统化的调用。

该文章作者会大概的阐述自定义

首先我们来定个目标变量,假设支付宝=0,微信=1

//定义第三方接口参数注册
$api = array(
0=>array(
‘extend’=>’AlipayApi’, //接口类名
‘useragent’=>’AlipayClient’,//接口识别用户访问类型
),
1=>array(
‘extend’=>’Weixin’,
‘useragent’=>’MicroMessenger’,
),
);

在这里我们定义好了第三方的接口所需要的信息。

一维代表类型,当然也可以自身在数据库中用户表来进行捆绑识别

二维代表实际参数extend表示需要调用的第三方文件类库,useragent是针对HTML5里识别APP的访问类型。

好吧,我们先从访问开始。

用户在进行HTML登陆的时候,当然也可以对接帐号密码登陆,因为我们都是通过$_SESSION来进行;

class LoginAPI{
function getlogin($user_agent,$store_id){
for ($i=0;$i<count($api);$i++){
if (strpos($user_agent,$api[$i][‘useragent’])){
$login = new $api[$i][‘extend’]();
$url = $login->getLoginApi($store_id);
header(“Location:”.$url);
exit();
}
}
die(“<h1>ERROR</h1>”);
}
}

我们在需要使用的地方,直接实例化LoginAPI,调用方法,附加用户的标识,交由脚本执行。

由于作者实际写的系统是针对HTML5为主,授权登陆我们都知道,需要跳转到支付宝、微信的开放平台的接口,执行实现回调URL;

$url = $login->getLoginApi($store_id);

我们来看看目录结果:

/loginapi.php //授权类

/api/alipay.php  //支付宝类,包括登陆、支付、模板消息

/api/weixin.php //微信类,包括登陆、支付、模板消息

上文的代码中我们没有看到任何实际性的requirce,因为作者使用的是自己写的框架,里面对常用的接口进行过requcie,虽然浪费资源,但能更快效率的进行实例化调用,而且现在大内存时候,也不用去考虑这一块;

 

好了,回正题,我们来看看调用的实际登陆

/***
* 支付获取请求的URL
* @return string
*/
function getLoginApi($store_id){
$url=’https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?’;
$url.=’app_id=’.$this->appid;
$url.=’&scope=auth_userinfo’;
$url.=’&redirect_uri=’.HTTP_SERVER.’api/alipay.php’;
$url.=’&state=’.$store_id;
return $url;
}

 

/***
* 微信获取登陆授权
* @param unknown $store_id
* @return string
*/
public function getLoginApi($store_id){
$url =’https://open.weixin.qq.com/connect/oauth2/authorize?’;
$url.=’appid=’.$this->appid;
$url.=’&redirect_uri=’.HTTP_SERVER.’api/weixin.php’;
$url.=’&response_type=code&scope=snsapi_userinfo’;
$url.=’&state=’.$store_id;
$url.=’#wechat_redirect’;
return $url;
}

这样一来,我们如果要添加京东授权登陆,添加对应的class添加对应的功能,然后统一回调写入数据库即可。

至于添加的时候,需要注册到全局的API里面,以方便在for()里实现调用

如此我们打开支付宝、微信,调用的都是同一个方法名,实现同样的效果,不再需要频繁的写switch(),if()来判断用户的登陆类型了。

 

下文作者将讲解模块化的支付、回调,代码前瞻:

return $this->pay_class[$this->login_type]->Pay($this->store_id,$this->order_id,$this->store_system,$title,$this->money,$this->customer,$this->return_url);

 

 

 

通过清心醉

境外电商,如何更好的实现SEO

说起境外电商,无非就是对国内现有产品进行境外的一个销售。

现在主流的系统有轻量级的opencart、zencart、prestashop,而中量级因为功能没优势,便捷没优势就不说了,而重量级的首选magento

那么问题来了,我们做跨境电商前,就先明确我们要做到什么程度。

如果你只是想做英国、美国单一的国家的话,那么一个opencart、zencart、prestashop绝对足够满足单一语言的SEO标准,而且服务器配置成本低,关键是还轻量,随便找个2年开发经验的PHP就可以胜任修改成自己想要的。(别拿国内的什么ecshop等系列软件对比,国内不流行SEO)。如果要用做多个国家,比如法国、美国等,那么magento是必不可少的一个趋势。

结合作者多年的跨境电商的SEO开发及后端数据开发经验,整理下SEO的必须标准:

单语:

站点元标题、元描述、元关键字

站点图片标签化处理

然后就是语言化的产品名字、介绍等系列功能了

 

不过除了magento可以实现多语言的元标记、图片标记,其他系统上对这一块的抽象类操作并不是很友好

我们来假设有个中英双语言站

一个产品名为:iphone,中文苹果手机

那么我们上列的系统,都可以很好的支持产品的seo

但是,单纯的产品的文字匹配,利用元标记来实现,但如果是图片化的alt标记,却会让爬虫望尘莫及,因为爬虫不知道图片所属类型,更不知道代表什么。

 

我们都知道,SEO最大的特点,就是需要对页面上关键字的一个占有量控制,一般控制有5%基本就足够。

但就文字描述介绍,不能编写过多的关键字特性,又不能在全站的元标记内进行处理,否则会导致关键字泛滥,GOOGLE会以作弊形式直接K站。

图片alt+多语言文章站内url,引导更多的关键字流量。

 

时间有限,笔至此停!

如有需要做境外的可以联系我

公司地址:梅州市梅县区程江镇扶外路梅县扶外市场2楼-梅州市东发网络科技有限公司

联系电话:13823819185