问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

.net如何获取接口返回值

发布网友 发布时间:2022-04-25 19:53

我来回答

4个回答

热心网友 时间:2022-04-28 01:19

参考实例如下:
调用方法:
1、引入CommonAliPay.dll
2、实现接口的方法调用方式:
AliPay ap = new AliPay();
string key = "";//填写自己的key
string partner = "";//填写自己的Partner
StandardGoods bp = new StandardGoods("trade_create_by_buyer", partner, key, "MD5", "卡2", Guid.NewGuid().ToString(), 2.551m, 1, "hao_ding2000@yahoo.com.cn", "hao_ding2000@yahoo.com.cn"
, "EMS", 25.00m, "BUYER_PAY","1");
bp.Notify_Url = "http://203.86.79.185/ali/notify.aspx";
ap.CreateStandardTrade("https://www.alipay.com/cooperate/gateway.do", bp, this);上面是通用的调用方式。
下面是只支持虚拟货物的方式:
string key = "";//填写自己的key
string partner = "";//填写自己的Partner
AliPay ap = new AliPay();
DigitalGoods bp = new DigitalGoods("create_digital_goods_trade_p", partner, key, "MD5", "卡2", Guid.NewGuid().ToString(), 2.551m, 1, "hao_ding2000@yahoo.com.cn", "hao_ding2000@yahoo.com.cn");
bp.Notify_Url = "http://203.86.79.185/ali/notify.aspx";
ap.CreateDigitalTrade("https://www.alipay.com/cooperate/gateway.do", bp, this);3、实现通知接口方法的调用(支持虚拟和实物):
protected void Page_Load(object sender, EventArgs e)
{

string key = "";//填写自己的key
string partner = "";//填写自己的Partner
AliPay ap = new AliPay();
string notifyid = Request.Form["notify_id"];
Verify v = new Verify("notify_verify", partner, notifyid);
ap.WaitSellerSendGoods+=new AliPay.ProcessNotifyEventHandler(ap_WaitSellerSendGoods);
ap.WaitBuyerPay += new AliPay.ProcessNotifyEventHandler(ap_WaitBuyerPay);
ap.ProcessNotify(this, "https://www.alipay.com/cooperate/gateway.do",key,v, "utf-8");
}

void ap_WaitBuyerPay(object sender, NotifyEventArgs e)
{
// //加入自己的处理逻辑
Log4net.log.Error("wait buyer pay fire");
}

private void ap_WaitSellerSendGoods(object sender, NotifyEventArgs e)
{
//加入自己的处理逻辑
Log4net.log.Error("WaitSellerSendGoods fire");
}的交易状态都被定义成了类似名称的事件。
部分源代码解析:
1、解析Forms集合到NotifyEventArgs类,因为后面此类的数据要用来做MD5Sign,所以所有值类型,不能存在初始值,如:int的0等。因此用Nullable范型。
private NotifyEventArgs ParseNotify(NameValueCollection nv, object obj)
{
PropertyInfo[] propertyInfos = obj.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);

foreach (PropertyInfo pi in propertyInfos)
{
string v = nv.Get(pi.Name.ToLower());
if (v != null)
{
if (pi.PropertyType == typeof(string))
{

pi.SetValue(obj, v, null);

}
else if (pi.PropertyType == typeof(int?))
{
pi.SetValue(obj, int.Parse(v), null);
}
else if (pi.PropertyType == typeof(decimal?))
{

pi.SetValue(obj, decimal.Parse(v), null);
}
else if (pi.PropertyType == typeof(DateTime?))
{

pi.SetValue(obj, DateTime.Parse(v), null);
}
else if (pi.PropertyType == typeof(bool))
{

pi.SetValue(obj, bool.Parse(v), null);
}
else
{
//转型失败会抛出异常
pi.SetValue(obj, v, null);
}
}

}
return (NotifyEventArgs)obj;

}
2、从类型中获取排序后的参数
/**//// <summary>
/// 获取排序后的参数
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
private SortedList<string,string> GetParam(object obj)
{

PropertyInfo[] propertyInfos = obj.GetType().GetProperties(BindingFlags.Public|BindingFlags.Instance);
SortedList<string, string> sortedList = new SortedList<string, string>(StringComparer.CurrentCultureIgnoreCase);
foreach (PropertyInfo pi in propertyInfos)
{

if (pi.GetValue(obj, null) != null)
{
if (pi.Name == "Sign" || pi.Name == "Sign_Type")
{
continue;
}
sortedList.Add(pi.Name.ToLower(), pi.GetValue(obj, null).ToString());

}
}
return sortedList;

}3、从SortedList中产生参数
private string GetUrlParam(SortedList<string, string> sortedList,bool isEncode)
{
StringBuilder param = new StringBuilder();
StringBuilder encodeParam = new StringBuilder();
if (isEncode == false)
{

foreach (KeyValuePair<string, string> kvp in sortedList)
{
string t = string.Format("{0}={1}", kvp.Key, kvp.Value);
param.Append(t + "&");
}
return param.ToString().TrimEnd('&');
}
else
{
foreach (KeyValuePair<string, string> kvp in sortedList)
{
string et = string.Format("{0}={1}", HttpUtility.UrlEncode(kvp.Key), HttpUtility.UrlEncode(kvp.Value));
encodeParam.Append(et + "&");
}
return encodeParam.ToString().TrimEnd('&');
}

热心网友 时间:2022-04-28 02:37

你的代码里不都是会写吗?
doc.SelectSingleNode("response/result/code").InnerText得到的结果就是0
doc.SelectSingleNode("response/data/id").InnerText得到的结果就是你要的178这个id

热心网友 时间:2022-04-28 04:12

XmlDocument把XML文件load进来,解析节点。追问引用 1 楼 的回复:
用XML类 序列化

大大 可以说得详细些吗?万份感谢,在线等,急呀

热心网友 时间:2022-04-28 06:03

使用XML进行解析即可
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
交通事故致人死亡,该如何处理? 爱普生LQ1600KIIIH 断色带 爱普生针式打印机LQ1600KⅢH近两月来总频繁中断打印,同时电脑显示是通讯... ACQUA DI PARMA 帕尔玛之水 蓝色地中海系列 桃金娘加州桂中性淡香水 E... 女士香水推荐-ACQUA DI PARMA 帕尔玛之水 优雅木兰女士浓香水 EDP 50... ACQUA DI PARMA帕尔玛之水克罗尼亚系列中性香水套装-适用对象 帕尔玛 | 必须拥有的小众沙龙香 ACQUA DI PARMA/帕尔玛之水克罗尼亚系列黑调男士古龙水-适用对象 ACQUA DI PARMA 帕尔玛之水 克罗尼亚系列 风度中性古龙水 EDC 20ml... ACQUA DI PARMA/帕尔玛之水-绅士男士古龙水EDC 帮我译成英文(高分) 请求翻译,不要机器翻译的! 谁知道MVP英文怎么翻译 怎么用梦幻古龙私服GM指令? partner ID什么意思 什么是商业模式,什么是盈利模式? 寻高人帮忙翻译 中译英 传统的商业运作模式的流程? 什么是商业模式?它有什么用 商业模式涵盖什么内容? 关于友谊的英语单词有哪些 分业模式定义? lua接收到的结构体,如何传给C/C++,并解析成json字符串 五万元预算以内新能源车哪个好? 随着汽车行业新能源化转型速度加快,纯电车该怎么选? 新能源汽车里的微型纯电动车,哪个比较好? 如今新能源车型越来越畅销,哪几款纯电车型性价比很高? 新能源汽车纯电动排名 申请专利的过程是怎样? 我想申请专利怎么走流程? 桩基表示方法 什么是地基、基础、桩基、基桩? 独立桩基,单桩基础区别 在百度上如果发布了违规内容应怎么处理? 百度里,如果我浏览图片不离开百度网站的范围,有毒吗? 柯尼卡镜头上的AE版和EE版的区别 如果一不小心把百度删没了怎么办 请问konica镜头AE版还是EE版成像好? 如果百度消失了的话会怎么样? konica 57/1.4成像是白圈的好呢还是全黑的好? @早安:如果百度有不懂的用百度百度可以百度到答案吗 谁能告诉我这是什么牌的照相机.[有图片地址] 百度上怎么发布自己的问题? konica1212 曝光度调试的具体步骤 急急急急急急!!! 现代诗歌《如果》 求柯尼卡7045 25模式开机软件开关代码 konica minolta 7220复印机显示please wait 是什么原因怎么解决?? 摄影发展史有哪些? 数码相机导购,一个新手的困惑 关于相片的一些资料