一、直接上代碼:
/// <summary>
/// App支付回調
/// </summary>
[EnableCors(origins: "*", headers: "*", methods: "*")]
[RoutePrefix("api/AliPayCallBack")]
public class AliPayCallBackController : ApiController
{
string publics = "支付寶公鑰";
/// <summary>
/// 支付寶APP支付回調接口
/// </summary>
/// <param name="coll"></param>
/// <returns></returns>
[HttpGet]
[HttpPost]
public HttpResponseMessage GetAliPayNotify()
{
NameValueCollection collection = HttpContext.Current.Request.Form;
String[] requestItem = HttpContext.Current.Request.Form.AllKeys;
IDictionary<string, string> sArray = new Dictionary<string, string>();
for (int i = 0; i < requestItem.Length; i++)
{
sArray.Add(requestItem[i], collection[requestItem[i]]);
}
bool flag = AlipaySignature.RSACheckV1(sArray, publics, "UTF-8", "RSA2", false);
HttpResponseMessage res = new HttpResponseMessage();
if (flag)
{
res.Content = new StringContent("success", Encoding.GetEncoding("UTF-8"), "text/plain");
} else
{
res.Content = new StringContent("fail", Encoding.GetEncoding("UTF-8"), "text/plain");
}
return res;
}
}
二、注意
1、私鑰簽名、公鑰驗籤
2、公鑰加密、私鑰解密
3、支付寶官方示例代碼有坑,這是本人修改驗證後的代碼,僅供個人參考,若有錯誤歡迎留言,勿噴。