微信支付 服务器开发教程,微信移动支付V3开发详细教程服务端采用.net mvc webapi(C#)...

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

///

/// 生成微信支付签名,生成结果直接在可以端提交即可

///

///

public static string partnerid = ""; //PartnerID

public static string partnerkey = ""; //PartnerKey

public static string mchid = ""; //mchid

public static string appId = ""; //appid

public static string appsecret = ""; //appsecret

public static string appkey = ""; //paysignkey(非appkey 在微信商户平台设置 (md5)111111111111)

public static string timeStamp = ""; //时间戳

public static string nonceStr = ""; //随机字符串

public static string notify_url = "http://api.kwstu.com/Pay/WxNotifyUrl"; //支付完成后的回调处理页面,*替换成notify_url.asp所在路径

public static string prepayId = ""; //预支付ID

public static string sign = ""; //为了获取预支付ID的签名

public static string paySign = ""; //进行支付需要的签名

public static string package = ""; //进行支付需要的包

public HttpResponseMessage PostWxConfirmPay()

{

//生成订单业务逻辑代码

//创建支付应答对象

var packageReqHandler = new RequestHandler();

//初始化

packageReqHandler.init();

timeStamp = TenpayUtil.getTimestamp();

nonceStr = TenpayUtil.getNoncestr();

//设置package订单参数

packageReqHandler.setParameter("appid",appId);

packageReqHandler.setParameter("body",unitBase.NAME + "于" + DateTime.Now.ToString("yyyy-MM-dd") + "在线预订“" + zphBase.ZPHNAME + "”的" + zphZwService.ZWID + "号展位,缴费" + price + "元。"); //商品信息 127字符

packageReqHandler.setParameter("mch_id",mchid);

packageReqHandler.setParameter("nonce_str",nonceStr.ToLower());

packageReqHandler.setParameter("notify_url",notify_url);

packageReqHandler.setParameter("out_trade_no",checkId); //商家订单号

packageReqHandler.setParameter("spbill_create_ip",HttpContext.Current.Request.UserHostAddress); //用户的公网ip,不是商户服务器IPHttpContext.Current.Request.UserHostAddress

packageReqHandler.setParameter("total_fee",(int.Parse(price)*100).ToString()); //商品金额,以分为单位(money * 100).ToString()

packageReqHandler.setParameter("trade_type","APP");

//获取package包

sign = packageReqHandler.CreateMd5Sign("key",appkey);

packageReqHandler.setParameter("sign",sign);

string data = packageReqHandler.parseXML();

string prepayXml = HttpUtil.Send(data,"https://api.mch.weixin.qq.com/pay/unifiedorder");

//获取预支付ID

var xdoc = new XmlDocument();

xdoc.LoadXml(prepayXml);

XmlNode xn = xdoc.SelectSingleNode("xml");

XmlNodeList xnl = xn.ChildNodes;

if (xnl.Count > 7)

{

prepayId = xnl[7].InnerText;

package = string.Format("prepay_id={0}",prepayId);

}

//设置支付参数

var paySignReqHandler = new RequestHandler();

paySignReqHandler.setParameter("appid",appId);

paySignReqHandler.setParameter("noncestr",nonceStr.ToLower());

paySignReqHandler.setParameter("package","Sign=WXPay");

paySignReqHandler.setParameter("partnerid",partnerid);

paySignReqHandler.setParameter("prepayid",prepayId);

paySignReqHandler.setParameter("timestamp",timeStamp);

paySign = paySignReqHandler.CreateMd5Sign("key",appkey);

var reList = new List();

var reModel = new WxPayListModel();

reModel.appid = appId;

reModel.noncestr = nonceStr.ToLower();

reModel.package = "Sign=WXPay";

reModel.partnerid = partnerid;

reModel.prepayid = prepayId;

reModel.timestamp = timeStamp;

reModel.sign = paySign;

reList.Add(reModel);

}

相关资料获取地址:https://item.taobao.com/item.htm?spm=686.1000925.0.0.AlZkml&id=524281028471

你可能感兴趣的:(微信支付,服务器开发教程)