Foxtable(狐表)用户栏目专家坐堂 → 顺丰接口的问题


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

主题:顺丰接口的问题

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/9 10:23:00 [显示全部帖子]

写了什么代码?什么地方不懂?

顺丰文档说的是使用表单的方式提交数据,而不是json,参考这种用法:http://www.foxtable.com/mobilehelp/topics/0159.htm

Dim hc As New HttpClient("http://127.0.0.1/AddNew.htm")
hc.ContentType = "application/x-www-form-urlencoded;charset=UTF-8"
hc
.FormData.Add("产品","PD01")
hc
.FormData.Add("客户","CS01")
hc.FormData.Add("数量","100")
hc
.FormData.Add("单价","98")
hc
.FormData.Add("日期",Date.Today)
Dim
 ret As String = hc.getData()
[此贴子已经被作者于2022/3/9 10:23:23编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/12 11:40:00 [显示全部帖子]

顺丰开发文档链接发上来看看

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/12 13:36:00 [显示全部帖子]

提交的数据不完整

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/12 14:39:00 [显示全部帖子]

签名方法不正确,下载.net的sdk源码发上来看看

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/12 17:43:00 [显示全部帖子]

下载要登录的,我就不去注册账号了。麻烦下载C#的源码发上来

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/13 21:15:00 [显示全部帖子]

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim bw As String = FileSys.ReadAllText(dlg.FileName,Encoding.UTF8)
    
    Dim ts As String = clng((Date.Now - new Date(1970, 1, 1)).TotalSeconds)
    Dim hc As New HttpClient("https://sfapi-sbox.sf-express.com/std/service")
    hc.ContentType = "application/x-www-form-urlencoded;charset=UTF-8"
    Dim xml As String = CompressJson(JObject.Parse(bw))
    Dim checkword = "自己的checkword "
    
    Dim builder As new StringBuilder()
    For Each c As Char In xml & ts & checkword
        If  System.Web.HttpUtility.UrlEncode(c.ToString()).Length > 1 Then
            builder.Append(System.Web.HttpUtility.UrlEncode(c.ToString()).ToUpper())
        Else
            builder.Append(c)
        End If
    Next
    
    Dim encode As String = Convert.ToBase64String(New System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(builder.ToString())))
    hc.FormData.Add("partnerID","自己的partnerID")
    hc.FormData.Add("requestID",Guid.NewGuid().ToString())
    hc.FormData.Add("serviceCode","EXP_RECE_CREATE_ORDER" )
    hc.FormData.Add("timestamp",ts)
    hc.FormData.Add("msgDigest",encode )
    hc.FormData.Add("msgData",xml)
    Dim ret As String = hc.GetData()
    msgbox(ret)
End If

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/13 21:53:00 [显示全部帖子]

返回的数据就可以直接使用,不需要任何转换

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/13 23:07:00 [显示全部帖子]

dim jo2 as  JObject = JObject.Parse(jo("apiResultData"))
msgbox(jo2(“msgData”)("orderId").Tostring

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/14 9:54:00 [显示全部帖子]

Dim json As String = "{'name':'李云龙','age':'36','card':{'bank':'工行','account':'123456'},'aa':['a','b']}"
Dim jo As JObject = JObject.Parse(json)
For Each it As object In jo
    If typeof(it.value) Is JObject
        Dim jo2 As JObject = it.value
        For Each it2 As object In jo2
            Output.Show(it2.key & "-" & it2.value)
        Next
    ElseIf typeof(it.value) Is jarray
        For Each it2 As object In it.value
            Output.Show(it2)
        Next
    Else
        Output.Show(it.key & "-" & it.value)
    End If
Next

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/14 11:32:00 [显示全部帖子]

这种属于json里面嵌套使用json字符串。

jo("apiResultData")里面存储的是一个json字符串,而不是对象,所以需要二次使用JObject.Parse解析,二次解析之后就可以直接使用,不存在三次,四次的解析。

上面的代码是没有问题的,问题在于json里面的数据有多层嵌套,自己做个递归处理吧。上面的代码只处理了2层

 回到顶部
总数 12 1 2 下一页