C#微信开发之旅(十一):V2发货接口

用户支付完成后,V2版本微信支付需要调用发货接口,否则微信会告警并且用户也可以进行维权,总之会有灰常多的事情:

 1         public void DeliverNotify()
 2         {
 3             string openId = string.Empty; //买家openid
 4             string transactionId = string.Empty;//微信交易单号
 5             string orderNo = string.Empty;//我们自己的订单号,文档中的out_trade_no
 6 
 7 
 8             WxPayModel model = WxPayModel.Create();
 9             string postData = model.CreateDeliverNotifyPackage(openId, transactionId, orderNo);
10             WeiXinHelper.DeliverNotify(postData);
11         }

下面是创建发货通知json的方法:

 1         /// <summary>
 2         /// 创建发货成功 Package (已测试通过)
 3         /// </summary>
 4         /// <returns></returns>
 5         public string CreateDeliverNotifyPackage(string openId, string transId, string out_trade_no)
 6         {
 7             Dictionary<string, string> nativeObj = new Dictionary<string, string>();
 8 
 9             nativeObj.Add("appid", AppId);
10             nativeObj.Add("openid", openId);
11             nativeObj.Add("transid", transId);
12             nativeObj.Add("out_trade_no", out_trade_no);
13             nativeObj.Add("deliver_timestamp", ((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000).ToString());
14             nativeObj.Add("deliver_status", "1");
15             nativeObj.Add("deliver_msg", "ok");
16             nativeObj.Add("app_signature", GetBizSign(nativeObj));
17             nativeObj.Add("sign_method", "sha1");
18 
19             var entries = nativeObj.Select(d => string.Format("\"{0}\": \"{1}\"", d.Key, d.Value));
20 
21             return "{" + string.Join(",", entries.ToArray()) + "}";
22         }

 

posted @ 2014-10-31 17:44  Nuclear  阅读(706)  评论(0编辑  收藏  举报

我只存在于我的世界!