微信支付----维权接口开发!
最近比较忙,没多少时间写!所以这篇可能比较乱,请理解。。
1.你需确定维权URL通知地址;
在“商户功能→商户信息→修改→维权通知URL”查看维权通知URL。(区分大小写)
2.添加用户维权入口
在服务号自定义菜单添加名称叫“维权”的菜单,该菜单不分层级,不分位置,微信自动跳转到维权页面。。
3.获取维权通知XML数据。
在ResponseHandler类(微信支付----没我想的那么难)添加获取XML参数的方法:
/**获取XML参数**/ public string getMpParameter(string parameter) { string s = (string)xmlMap[parameter]; return (null == s) ? "" : s; }
在URL通知页面获取数据:
if (!IsPostBack) { //创建支付应答对象 ResponseHandler resHandler = new ResponseHandler(Context); resHandler.init(); resHandler.setKey(TenpayUtil.key, TenpayUtil.appkey); //判断签名 if (resHandler.isWXsignfeedback()) { string AppId = resHandler.getMpParameter("AppId"); string TimeStamp = resHandler.getMpParameter("TimeStamp"); string OpenId = resHandler.getMpParameter("OpenId"); string AppSignature = resHandler.getMpParameter("AppSignature"); string MsgType = resHandler.getMpParameter("MsgType"); string FeedBackId = resHandler.getMpParameter("FeedBackId"); string TransId = resHandler.getMpParameter("TransId"); string Reason = resHandler.getMpParameter("Reason"); string Solution = resHandler.getMpParameter("Solution"); string ExtInfo = resHandler.getMpParameter("ExtInfo"); string SignMethod = resHandler.getParameter("SignMethod"); string txt = string.Empty; if (MsgType.ToLower().Trim() == "request") { //新增维权操作 } else { //用户确认处理完毕操作 } //回复服务器处理成功 Response.Write("OK"); Response.Write("OK:" + resHandler.getDebugInfo()); } else { //sha1签名失败 Response.Write("fail"); Response.Write("fail:" + resHandler.getDebugInfo()); } Response.End(); }
4.申请消除投诉
如您已经跟客户达成一致,可申请消除用户投诉!
/// <summary> /// 向微信发送撤销投诉申请 /// </summary> /// <returns></returns> private void MessageToTx(string accessToken, string openId, string feedBackId) { string url = "https://api.weixin.qq.com/payfeedback/update?access_token={0}&openid={1}&feedbackid={2}"; url = string.Format(url, accessToken, openId, feedBackId); HttpWebRequest webRequest2 = (HttpWebRequest)WebRequest.Create(url); webRequest2.ContentType = "text/html; charset=UTF-8"; webRequest2.Method = "GET"; webRequest2.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"; HttpWebResponse httpWebResponse2 = (HttpWebResponse)webRequest2.GetResponse(); StreamReader swRead = new StreamReader(httpWebResponse2.GetResponseStream(), System.Text.Encoding.GetEncoding("UTF-8")); Write(swRead.ReadToEnd()); }
至此维权接口已经开发完成,可申请全网支付,注意开启全网支付,不受白名单限制!
群号:87742911 大家可以一起交流
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端