Foxtable(狐表)用户栏目专家坐堂 → 请教一个接口代码问题


  共有1970人关注过本帖树形打印复制链接

主题:请教一个接口代码问题

帅哥哟,离线,有人找我吗?
huangxueyao
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:443 积分:3530 威望:0 精华:0 注册:2013/2/9 12:45:00
请教一个接口代码问题  发帖心情 Post By:2017/8/3 9:25:00 [只看该作者]

为什么提交不了?
[此贴子已经被作者于2017/8/3 9:27:33编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
huangxueyao
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:443 积分:3530 威望:0 精华:0 注册:2013/2/9 12:45:00
  发帖心情 Post By:2017/8/3 9:28:00 [只看该作者]


有赞的API接口:

请求地址:https://open.youzan.com/api/oauthentry/youzan.multistore.goods.sku/3.0.0/update

参数:

名称   (类型)
price   (Price)
offline_id   (Number)
num_iid   (Number)

请求示例(C++)

以下内容为程序代码:

1 Auth auth = new Token("xxx"); // Auth auth = new Sign("app_id", "app_secret");
2
3 YZClient yzClient = new DefaultYZClient(auth);
4 Dictionary<string, object> dict = new System.Collections.Generic.Dictionary<string, object>();
5 dict.Add("num_iid", 1335438058);
6 dict.Add("offline_id", 1098006);
7 dict.Add("price", 99);
8
9 var result = yzClient.Invoke("youzan.multistore.goods.sku.update", "3.0.0", "GET", dict, null);
10 Console.WriteLine(result);



请求示例(php)

以下内容为程序代码:

1 <?php
2 require_once __DIR__ . '/lib/YZTokenClient.php';
3
4 $token = 'fill your token';//请填入商家授权后获取的access_token
5 $client = new YZTokenClient($token);
6
7 $method = 'youzan.multistore.goods.sku.update'; //要调用的api名称
8 $api_version = '3.0.0'; //要调用的api版本号
9
10 $my_params = [
11 'num_iid' => '1335438058',
12 'offline_id' => '1098006',
13 'price' => '99',
14 ];
15
16 $my_files = [
17 ];
18
19 echo '<pre>';
20 var_dump(
21 $client->post($method, $api_version, $my_params, $my_files)
22 );
23 echo '</pre>';


他们的调试工具网址:https://www.youzanyun.com/docs/debugger



不懂怎么写代码。
我想参照http://www.foxtable.com/mobilehelp/scr/0246.htm来写,但是一直没搞对,帮助文档里面只有一个APPCODE,但是有赞的话有AppID和AppSecret,希望狐爸能给写个代码举一反三。谢谢谢谢~


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/3 9:47:00 [只看该作者]

Dim hc As New HttpClient("https://open.youzan.com/api/oauthentry/youzan.multistore.goods.sku/3.0.0/update")
hc.FormData.Add("num_iid", 1335438058)
hc.FormData.Add("offline_id", 1098006)
hc.FormData.Add("price", 99)
Dim data As string = hc.GetData()
msgbox(data)

 回到顶部
帅哥哟,离线,有人找我吗?
huangxueyao
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:443 积分:3530 威望:0 精华:0 注册:2013/2/9 12:45:00
  发帖心情 Post By:2017/8/3 9:59:00 [只看该作者]

返回显示taken无效。
应该是没有加上AppID和AppSecret

这里有测试用的
AppID:8a0dbb466d27b3a182
AppSecret:4bf5a31f12709383bf47fc976c84b005

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/3 10:50:00 [只看该作者]

 没办法,人家只提供java的sdk,看不到源码,不清楚人家的sign是如何加密的。只能如下变通处理,利用debug工具

 

Dim url As String = "https://www.youzanyun.com/docs/debugger/interface/sign/shop/youzan.shop.get/3.0.0?"
'url &= "num_iid=123456789"
url &= "&app_id=8a0dbb466d27b3a182"
url &= "&app_secret=4bf5a31f12709383bf47fc976c84b005"
url &= "&timestamp=" & Date.now
url &= "&v=1.0"
url &= "&sign_method=md5"
url &= "&format=json"
url &= "&method=youzan.shop.get"
Dim hc As New HttpClient(url)
Dim data As String = hc.GetData()
msgbox(data)
Dim jo As JObject = JObject.Parse(data)
msgbox(jo("data")("sign"))
hc = New HttpClient(jo("data")("url"))
Dim json As String = hc.GetData()
jo = JObject.Parse(json)
msgbox(jo("response")("name"))


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/3 10:58:00 [只看该作者]

或者是,直接固定sign的值

 

Dim url As String = "https://open.youzan.com/api/entry/youzan.shop/3.0.0/get?"
'url &= "num_iid=123456789"
url &= "&app_id=8a0dbb466d27b3a182"
url &= "&app_secret=4bf5a31f12709383bf47fc976c84b005"
url &= "&timestamp=2017-08-03 10:52:24"
url &= "&sign=7936c9f6f224fc9c4f57d4668f4b6979"

url &= "&v=1.0"
url &= "&sign_method=md5"
url &= "&format=json"
url &= "&method=youzan.shop.get"
Dim hc As New HttpClient(url)
Dim data As String = hc.GetData()
msgbox(data)
Dim jo As JObject = JObject.Parse(data)
msgbox(jo("response")("name"))

 


 回到顶部
帅哥哟,离线,有人找我吗?
huangxueyao
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:443 积分:3530 威望:0 精华:0 注册:2013/2/9 12:45:00
  发帖心情 Post By:2017/8/3 11:00:00 [只看该作者]

谢谢谢谢,研究解决了

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/3 11:10:00 [只看该作者]

以下是引用huangxueyao在2017/8/3 11:00:00的发言:
谢谢谢谢,研究解决了

 

如何解决的?什么方法?


 回到顶部
帅哥哟,离线,有人找我吗?
huangxueyao
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:443 积分:3530 威望:0 精华:0 注册:2013/2/9 12:45:00
  发帖心情 Post By:2017/8/3 13:01:00 [只看该作者]

https://www.youzanyun.com/docs/guide/common/953

看这里,通过提交AppID和AppSecret获取一个7天有效期的access_token,再用这个access_token加上其它请求参数提交就可以了。

我也是看他们的帮助文档和您的代码来做的。

现在测试已经成功了。

 回到顶部