速卖通API开发步骤

关键字段说明

1、appKey和appSecret   

appKey是app的唯一标识,appSecret是app的密钥,它们相当于用户名和密码。注册app之后就会生成一个appKey和appSecret,请妥善保存。

2、code   

即临时令牌。当用户在开放平台访问app前,需对app进行授权,用户授权后,app方可访问用户的隐私数据。用户在完成授权之后,会跳转到redirect_uri,并带上临时令牌code,app再用code从开放平台后台接口换取access_token。code为一次性令牌,有效期为2分钟。

3、accessToken   

即用户授权令牌,为用户一次会话的授权标识,有效期10小时。在获得code后,通过调用开放平台后台接口getToken来获取accessToken。 App在访问用户隐私数据时,需要带上accessToken,也只有accessToken才能作为访问的凭证,其他token如code和refreshToken都不能直接作为访问凭证,需要转换为accessToken之后才能访问用户隐私数据。

4、refreshToken   

即长时令牌,有效期半年。当access_token过期后,可以使用refreshToken换取新的accessToken访问用户数据。

5、redirect_uri   即回调地址,指的是App发起请求时,所传的回调地址参数,必填。请参考授权流程中的说明。 API参考说明地址: http://gw.api.alibaba.com/dev/doc/sys_auth.htm?ns=aliexpress.open   速卖通API官网地址

开发逻辑流程

伸手党福利

代码虽然很乱,但感觉很对的起伸手党了,哈哈!!!

/*
* 获取信息模板
*/
public static function getAccountTemplates($config)
{
$config['moduleStatus'] = 'approved';
$config['pageIndex'] = 1;
$apiname = "api.findAeProductDetailModuleListByQurey";
//获取信息模板
$accountTemplats = Apiservice::getinfo($config,$apiname);
return $accountTemplats;
}

/*
* 获取帐号appkey
*/
public static function getacountinfo($account)
{
$account = DB::SELECT('appkey','account','appsecret')
->from('account')
->where('account','=',$account)
->execute('system')
->current();
return $account;
}

//新方法获取通行证
public static function newupdatetoken($account)
{
$row = Apiservice::newgetaccounts($account['account']);
if((strtotime($row['access_create_time'])+10*3600-60*10)<time()){
$ali = new Getapi();
$accessToken = $ali->getaccesstoken($row['refresh_token'],$account['appkey'],$account['appsecret']); //通过refreshToken换取accessToken
if(isset($accessToken['error'])){
return $accessToken;
}
$set = array(
'access_token' => $accessToken['access_token'],
'access_create_time' => date('Y-m-d H:i:s',time()),
);

$sql = "UPDATE `erp_aliexpress_accounts`
SET access_token='".$accessToken['access_token']."',access_create_time='".date('Y-m-d H:i:s')."'
WHERE `aliId`=".$accessToken['aliId'];

DB::query(Database::INSERT,$sql)
->execute('system');

$row['access_token'] = $accessToken['access_token'];
}elseif((strtotime($row['refresh_create_time'])+180*24*3600)<time()){
$row['access_token'] = NULL;
}
return $row['access_token'];
}

/**
* 获取速卖通新帐号
* Enter description here ...
* @param unknown_type $account
*/
public static function newgetaccounts($account = '',$fields = '')
{
if(empty($account)){
return '账户为空';
}else{

$result = DB::select('access_token','refresh_token','access_create_time','refresh_create_time')
->from('erp_aliexpress_accounts')
->where('aliexpress_account','=',$account)
->execute('system')
->current();
}
return $result;
}

/*
* 获取帐号appkey
*/
public static function getacountinfo($account)
{
$account = DB::SELECT('appkey','account','appsecret')
->from('account')
->where('account','=',$account)
->execute('system')
->current();
return $account;
}

/*
* 公用方法
*/
public static function getinfo($config,$apiname)
{
$appkey = Apiservice::getacountinfo($config['account']);
$config['appkey'] = $appkey['appkey'];
//获取信息模板
$api = new getapi();
$result = $api::api($config,$apiname);
return $result;
}

const URL = 'http://gw.api.alibaba.com/openapi/';
const SITE = 'aliexpress';

/*
* api公用方法
*/
public function api($set,$apiname)
{
if(empty($set['access_token'])){
return FALSE;
}
$api_url = 'param2/1/aliexpress.open/'.$apiname.'/'.$set['appkey'];
$url = Getapi::URL.$api_url;
$data = http_build_query($set);
$result = Getapi::sendRequestCurl($url,$data);
return $result;
}

/**
* 发送请求
* Enter description here ...
* @param unknown_type $url
* @param unknown_type $data
*/
protected static function sendRequestCurl($url,$data)
{

$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch,CURLOPT_POST,TRUE);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_setopt($ch,CURLOPT_TIMEOUT,300);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$response = curl_exec($ch);
curl_close($ch);
$response = json_decode($response,TRUE);
return $response;
}

/*
* 通过refreshToken换取accessToken
* Enter description here ...
* @param unknown_type $refreshToken
*/
public function getaccesstoken($refreshtoken,$appkey,$appsecret)
{
$code_arr = array(
'client_id' => $appkey,
'grant_type' => 'refresh_token',
'client_secret' => $appsecret,
'refresh_token' => $refreshtoken,
);
$sign_str = 'param2/1/system.oauth2/refreshToken/544880';
$code_sign = Getapi::apiSign($appsecret,$code_arr,$sign_str,$appsecret);
$getTokenUrl = 'https://gw.api.alibaba.com/openapi/param2/1/system.oauth2/refreshToken/'.$appkey;
$data = 'grant_type=refresh_token&refresh_token='.$refreshtoken.'&client_id='.$appkey.'&client_secret='.$appsecret.'&_aop_signature='.$code_sign;
$result = $this->sendRequestCurl($getTokenUrl,$data);
return $result;
}

/**
* 签名串组规则
* Enter description here ...
* @param unknown_type $redirectUrl
*/
protected static function apiSign($appsecret,$code_arr,$sign_str = '')
{
ksort($code_arr);
foreach($code_arr as $key => $val){
$sign_str .= $key.$val;
}
$code_sign = strtoupper(bin2hex(hash_hmac("sha1",$sign_str,$appsecret,TRUE)));
return $code_sign;
}

速卖通API开发步骤相关推荐

  1. 速卖通 授权流程 java_外贸开发,用java调用速卖通api第一步,token的获取。

    第一步 定义速卖通api的常量 public String client_id; public String client_key; public String site; 第二步 获取登陆的uRL ...

  2. 速卖通API获得aliexpress商品详情,按关键词搜索,分类详情等数据

    item_get-获得商品详情 公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在URL中)注册Key和secret接口测试 secret String 是 ...

  3. 获取速卖通aliexpress分类详情 API接口

    aliexpress分类详情API接口是速卖通提供的一种产品数据接口,可以帮助速卖通卖家快速地将产品分类.属性.价格等信息,通过 aliexpress API接口来快速生成产品描述.图片.视频等产品信 ...

  4. 速卖通开放平台 预约交货模块开发指南

    速卖通开放平台,最近新增加一个功能模块,就是:预约交货的功能.简单说,就是让包裹更早的能够上网.可以快速查询什么的,有点像虾皮平台的首公里功能.其实也不算最近,上半年5月份的时候就开始推这个功能了,据 ...

  5. 淘宝商品api,天猫商品api,京东商品api,1688商品api,速卖通商品api,微商相册api,拼多多商品api

    用商城助理软件可以 从淘宝.天猫.京东.1688.alibaba国际站.速卖通.微商相册.拼多多等平台采集商品,并把数据通过API接口以josn的格式,发送到客户指定的API地址 商城助理是软件,需要 ...

  6. aliexpress商品详情API接口(速卖通商品详情页面数据接口)

    aliexpress商品详情API接口(速卖通商品详情页面数据接口)代码对接如下: 1.公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在URL中,点击获取 ...

  7. 速卖通商品详情API接口(商品详情页面数据接口)

    速卖通商品详情API接口代码对接如下: 1.公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在URL中,点击获取请求key和secret) secret S ...

  8. 关键字搜索aliexpress商品API接口(速卖通关键词搜索商品接口)

    关键字搜索aliexpress商品API接口(速卖通关键词搜索商品接口)代码对接如下: 1.公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在URL中,点击 ...

  9. 速卖通爆款打造方法是什么?分享爆款打造全链路步骤

    近期很多商家都在问我,我的店铺怎么没有爆款,别人家的是怎么做起来的,今天给大家分享的是爆款打造链路,从两个方面给大家分享,第一 剑走偏锋法(如何快速打造爆款)第二 正常打造爆款的思路与方法 影响搜索因 ...

最新文章

  1. 10进制转换为二十六进制字符串A-Z
  2. 利用ISA Server 2006服务器阵列构建高性能、高可靠的企业防火墙
  3. ADC0832双通道实现AD电压转换
  4. 为什么要使用页面缓存技术
  5. 语音控制 python_用Python编程实现语音控制电脑
  6. php url无效,PHP解析URL并失去URL中的参数
  7. SAP UI5和微信小程序框架里的全局变量
  8. Oracle学习笔记:数据字典
  9. 如何运用领域驱动设计 - 领域服务
  10. toj 4609 Internal Rate of Return
  11. alter procedure是什么意思_板上钉钉的意思
  12. Python complex()
  13. 成功与运气:好运与精英社会的神话
  14. 【开源教程9】疯壳·开源编队无人机-定时器(LED 航情灯、指示灯闪烁)
  15. django_jquery_ajax二级联动菜单
  16. QTcpSocket使用过程中的一些问题记录
  17. 浏览器无法访问hdfs界面问题
  18. 十年技术支持工作的几点感悟
  19. JAVA图片裁剪工具类
  20. 拓嘉启远电商:拼多多为什么要养词

热门文章

  1. java version命令_java -version命令报错如何解决
  2. 自动化测试生成用例一之单个参数
  3. 色彩搭配利器:最好用的配色工具App Top5
  4. 五十九秒的秒表C语言程序,51单片机秒表计时器课程设计报告(含C语言程序)解读.doc...
  5. nginx域名隐性(地址栏域名不变)跳转【nginx 跳转 隐藏 被跳转的域名】
  6. 【洛谷P4306】连通数【bitset 传递闭包】
  7. Nginx 虚拟主机与反向代理
  8. C++ 版本UrlEncoder编码解码工具:支持ANSIC和UTF8格式
  9. 在IDEA中快速查找一个类的快捷键
  10. Kafka 的 Confluent Schema Registry安装与使用教程