下面是编程之家 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