php专区

 首页 > php专区 > PHP应用 > 开放平台 > 微信支付----维权接口开发! - 微信公众平台开发

微信支付----维权接口开发! - 微信公众平台开发

分享到:
【字体:
导读:
          最近比较忙,没多少时间写!所以这篇可能比较乱,请理解。。1 你需确定维权URL通知地址; 在商户功能rarr;商户信息rarr;修改rarr;维权通知URL查看维权通知URL。(区分大小写) 2 添加用...

最近比较忙,没多少时间写!所以这篇可能比较乱,请理解。。

1.你需确定维权URL通知地址;

   在“商户功能→商户信息→修改→维权通知URL”查看维权通知URL。(区分大小写)

   

2.添加用户维权入口

  在服务号自定义菜单添加名称叫“维权”的菜单,该菜单不分层级,不分位置,微信自动跳转到维权页面。。

3.获取维权通知XML数据。

  在ResponseHandler类(微信支付----没我想的那么难:http://www.2cto.com/weixin/201408/323334.html )添加获取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.申请消除投诉

 如您已经跟客户达成一致,可申请消除用户投诉!

/// 
    /// 向微信发送撤销投诉申请
    /// 
    /// 
    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());
    }

 

至此维权接口已经开发完成,可申请全网支付,注意开启全网支付,不受白名单限制!

分享到:
方倍微信公众平台开发(26) ACCESS TOKEN ...
 本文介绍微信公众平台下Access Token的概念及获取方法。 一、Access Token access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。正常情况下access_token有效期为7200秒,重复获取将导致上次获取的access_token失效。 公众号可以使用AppID和AppSecret调用本接口来获取access_token。Ap...
微信支付----没我想的那么难! - 微信公...
楼主公司是做微信周边产品开发的,最近公司接到一个case,跟客户公司接口对接,并实现微信支付。楼主可是从没接触过微信支付,当时心里感觉好高大上,能搞定么?马上忽悠来客户的公众平台帐号、密码上去看微信支付文档。   公众号支付有2种支付方式:   JS API 支付:是指用户打开图文消息或者扫描二维码,在微信内置浏...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……