最近忙回调写了一段时间,首先在这边要说明一些概念,无论是支付宝还是微信他们的回调都是post请求,微信的回调需要在平台上面配置url,而支付宝的回调只需要在代码里面设置就可以了。另外有一点的是回调并不返回跟订单相关的具体信息回去,只需要回传一个状态回去就可以结束这次回调了。
首先我先放一段微信的回调代码。
[HttpPost]
public string PayNotify()
{
using (var ms = new MemoryStream(2048))
{
Request.Body.CopyToAsync(ms);
string xml = Encoding.GetEncoding("UTF-8").GetString(ms.ToArray()).TrimEnd('\0');
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);
var nt = new PayNotify();
XmlNode xmlNode = xmlDoc.FirstChild;//获取到根节点<xml>
XmlNodeList nodes = xmlNode.ChildNodes;
foreach (XmlNode xn in nodes)
{
XmlElement xe = (XmlElement)xn;
if (xe.Name == "appid")
{
nt.Appid = xe.InnerText;
}
else if (xe.Name == "attach")
{
nt.Attach = xe.InnerText;
}
else if (xe.Name == "bank_type")
{
nt.Bank_type = xe.InnerText;
}
else if (xe.Name == "cash_fee")