今天也要实以下功能:
站点A:提供WEB服务,让站点B调用,主要实现微信模板消息
站点B:调用站点A,在用户付完款后,调用接口,完成模板消息“支付成功通知”功能。
在开始的时候,我用最简单的方式实现:
代码如下:
public async Task SendTemplateMessage(}
{
var result = await Senparc.Weixin.MP.AdvancedAPIs.TemplateApi
.SendTemplateMessageAsync(Service.Config.AppId, openId,data);
return Content(result.ToJson());
}
直接在另一个站点直接调用:
HttpService.Get(url);
但是当我用POST时,就出现两边都不知道如何做的问题:
一边是如何POST过去。
另一边是如何接收。
最后,找同事指点,终于实现:
站点A如下:
[HttpPost]
public async Task SendTemplateMessage(FormCollection form)
{
Dictionary<string, string> nameValue = new Dictionary<string, string>();
for (int i = 0; i < form.Keys.Count; i++) {
nameValue.Add(form.GetKey(i), form.Get(i));
}
}
取得FORM值
站点B如下:
public static string HttpPost(string Url)
{//Post请求获取结果
try
{
HttpWebRequest request = (System.Net.HttpWebRequest)WebRequest.Create(Url);
System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
System.IO.StreamReader myreader = new System.IO.StreamReader(response.GetResponseStream(), Encoding.UTF8);
string responseText = myreader.ReadToEnd();
myreader.Close();
return responseText;
}catch(Exception ex)
{
return null;
}
}