/// <summary> /// 获取签名 /// </summary> /// <param name="reqEleme"></param> /// <param name="websiteModel"></param> /// <returns></returns> public string GetSign(ElemeRequset reqEleme, WebsiteInfo websiteModel) { SortedDictionary <string, string> dic = new SortedDictionary <string, string>(); dic.Add("appId", reqEleme.appId.ToString()); dic.Add("requestId", reqEleme.requestId); dic.Add("type", reqEleme.type.ToString()); dic.Add("message", reqEleme.message); dic.Add("shopId", reqEleme.shopId.ToString()); dic.Add("timestamp", reqEleme.timestamp.ToString()); dic.Add("userId", reqEleme.userId.ToString()); string signo = string.Empty; foreach (var item in dic) { signo += string.Format("{0}={1}", item.Key, item.Value); } if (websiteModel != null && !string.IsNullOrEmpty(websiteModel.ElemeAppSecret)) { signo += websiteModel.ElemeAppSecret; } string value = ZentCloud.Common.DEncrypt.GetMD5(signo, "UTF-8").ToUpper(); return(value); }
/// <summary> /// 商户同意取消申请 type=23 /// </summary> public void MerchantAgreeCencel(ElemeRequset reqEleme, WebsiteInfo websiteModel) { ToLog("商户同意取消申请=" + reqEleme.message); var sign = reqEleme.signature; var value = GetSign(reqEleme, websiteModel); if (sign == value) { RespApplyCencel oorder = ZentCloud.Common.JSONHelper.JsonToModel <RespApplyCencel>(reqEleme.message); WXMallOrderInfo mallOrder = bllMall.Get <WXMallOrderInfo>(string.Format(" WebsiteOwner='{0}' AND OutOrderId='{1}'", websiteModel.WebsiteOwner, oorder.orderId)); if (mallOrder != null) { mallOrder.Status = "已取消"; mallOrder.IsRefund = 0; mallOrder.OutOrderStatus = GetRefStatus(oorder.refundStatus); bllMall.Update(mallOrder); } resp.msg = "ok"; } else { resp.msg = "验签错误"; } Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); }
protected void Page_Load(object sender, EventArgs e) { string host = HttpContext.Current.Request.Url.Host; WebsiteDomainInfo domain = bllWebsite.Get <WebsiteDomainInfo>(string.Format(" WebsiteDomain='{0}'", host)); var websiteModel = bllWebsite.Get <WebsiteInfo>(string.Format(" WebsiteOwner='{0}'", domain.WebsiteOwner)); if (Request.RequestType.ToUpper() == "POST") { string body = PostInput(); ElemeRequset reqEleme = Newtonsoft.Json.JsonConvert.DeserializeObject <ElemeRequset>(body); switch (reqEleme.type) { case 10: OrderEntry(reqEleme, websiteModel); //订单生效 break; case 18: ReceiptConfirm(reqEleme, websiteModel); //订单已完成 break; case 20: OrderAppyCancel(reqEleme, websiteModel); //用户申请取消订单 break; case 21: withdrawCelcel(reqEleme, websiteModel); //用户撤回取消 break; case 22: MerchantrefuseCencal(reqEleme, websiteModel); //商户拒绝取消 break; case 23: MerchantAgreeCencel(reqEleme, websiteModel); //商户同意取消 break; default: break; } } else { var getMsg = new { message = "ok" }; Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(getMsg)); } }
/// <summary> /// 订单生效type=10 /// </summary> public void OrderEntry(ElemeRequset reqEleme, WebsiteInfo websiteModel) { var sign = reqEleme.signature; var value = GetSign(reqEleme, websiteModel); if (sign == value) { AddOrder(reqEleme.message, websiteModel.WebsiteOwner); resp.msg = "ok"; } else { resp.msg = "验签错误"; } Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); }
/// <summary> /// 订单已完成 type=18 /// </summary> /// <param name="oorderInfo"></param> /// <param name="websiteOwner"></param> public void ReceiptConfirm(ElemeRequset reqEleme, WebsiteInfo websiteModel) { var sign = reqEleme.signature; var value = GetSign(reqEleme, websiteModel); if (sign == value) { RespApplyCencel oorder = ZentCloud.Common.JSONHelper.JsonToModel <RespApplyCencel>(reqEleme.message); WXMallOrderInfo mallOrder = bllMall.Get <WXMallOrderInfo>(string.Format(" WebsiteOwner='{0}' AND OutOrderId='{1}'", websiteModel.WebsiteOwner, oorder.orderId)); if (mallOrder != null) { mallOrder.Status = "交易成功"; mallOrder.ReceivingTime = DateTime.Now; mallOrder.OutOrderStatus = GetRefStatus(oorder.refundStatus); bllMall.Update(mallOrder); } resp.msg = "ok"; } else { resp.msg = "验签错误"; } Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); }