以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]请问请求API如何携带证书信息  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=148440)

--  作者:智友软件工作室
--  发布时间:2020/4/8 8:43:00
--  [求助]请问请求API如何携带证书信息
有两个地方不清楚
1、按照官方文档请求需要携带证书,请问如何携带证书,从论坛搜了一下,相关资料很少
2、请求发起不从服务器端是否可以?我想从客户端直接发起这样可以吗?

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


--  作者:有点蓝
--  发布时间:2020/4/8 8:54:00
--  
参考:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=119409&replyID=&skin=1
--  作者:智友软件工作室
--  发布时间:2020/4/8 9:03:00
--  
我再看,请问是否可以从客户端直接发起请求呢?
--  作者:智友软件工作室
--  发布时间:2020/4/8 9:12:00
--  
另外再问一下,现在官方的HttpClient可以直接携带证书吗


--  作者:有点蓝
--  发布时间:2020/4/8 9:55:00
--  
接口一般都是客户端调用的。这个请看对方官方的帮助文档,能不能调用人家说了算。

HttpClient目前不支持携带证书

--  作者:智友软件工作室
--  发布时间:2020/4/8 10:19:00
--  
提交数据方法(CheckValidationResult)在全局代码定义后该怎么使用呢?
我看您的例子下载对账单是下面的方法:
\'下载对账单
Dim bill_date As String = args(0)
Dim bill_type As String = args(1)

Dim req As WxPayData = Functions.Execute("GetWxPayData")
req.SetValue("bill_date", bill_date) \'账单日期
req.SetValue("bill_type", bill_type) \'账单类型
req.SetValue("appid", Vars("appid")) \'商户号
req.SetValue("mch_id", Vars("mchid")) \'商户号
req.SetValue("nonce_str", req.GenerateNonceStr()) \'随机字符串
req.SetValue("sign", req.MakeSign()) \'签名

Dim url As String = Functions.Execute("GetApiUrl","api_downloadbill")
Dim hc As New HttpClient(url)
hc.C
hc.Timeout = 6
hc.Content = req.ToXML
Dim ret As String = hc.GetData()
Functions.Execute("logtext","下载对账单结果: " & vbcrlf & ret)

Return ret


这里直接使用的是系统HttpClient。

请问使用HttpClient,会自动调取CheckValidationResult证书
还是我需要使用CheckValidationResult这个方法请求url
如果是请问这个CheckValidationResult具体该怎么使用呢?

--  作者:智友软件工作室
--  发布时间:2020/4/8 10:24:00
--  
在帮助中只看到了定义CheckValidationResult,没有看到使用到的地方,能否给说明一下,如何使用传递证书的吗
--  作者:有点蓝
--  发布时间:2020/4/8 10:24:00
--  
看帮助申请退款,撤销订单的用法
--  作者:智友软件工作室
--  发布时间:2020/4/8 10:48:00
--  

\'Dim hc As New HttpClient(url)

\'hc.C

\'这里还需要加一个添加证书的方法,新版本才能提供

\'hc.AddClientCertificate(ProjectPath & "apiclient_cert.p12",Vars("mchid"))

\'hc.Timeout = 6

\'hc.Content = req.ToXML

\'Dim ret As String = hc.GetData()


上面是帮助被注释的

请问这里的\'hc.AddClientCertificate(ProjectPath & "apiclient_cert.p12",Vars("mchid"))

就自动调用帮助里面的“提交数据的方法”中的代码了吗?


因为帮助和实例里面都是被注释的

所以对.AddClientCertificate 的使用不是很明白,在官方高级版的帮助中也没有看到AddClientCertificate  的介绍

[此贴子已经被作者于2020/4/8 10:49:17编辑过]

--  作者:有点蓝
--  发布时间:2020/4/8 11:12:00
--  
这个AddClientCertificate还没有提供,无法使用。请使用没有注释的用法