html 获取微信支付接口,微信支付接口调用H5(C#)

H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付。主要用于触屏版的手机浏览器请求微信支付的场景。可以方便的从外部浏览器唤起微信支付。

//微信H5支付

public string WeChatH5Pay(string OrderID, string Total)/ /这里的OrderID是我传过来的订单号,Total是订单金额。

{

OrderID = OrderID + DateTime.Now.ToString("fff");

//微信配置的参数

WXConfig wx = new WXConfig();

string url2 = "http://wap.ilife.cn";

//换算金额,以分为单位

int TotalMoney = Convert.ToInt32(Convert.ToDecimal(Total) * 100);

//string redirect_uri = HttpUtility.UrlEncode(url);

string redirect_uri = HttpUtility.UrlEncode(url2);

Senparc.Weixin.MP.TenPayLibV3.RequestHandler packageReqHandler = new Senparc.Weixin.MP.TenPayLibV3.RequestHandler(null);

//APPID

packageReqHandler.SetParameter("appid", wx.GetAppID());

//商户号

packageReqHandler.SetParameter("mch_id", wx.GetMchID());

//随机字符串

packageReqHandler.SetParameter("nonce_str", TenPayUtil.GetNoncestr());

//body商品描述

packageReqHandler.SetParameter("body", "商品描述");

//订单号

packageReqHandler.SetParameter("out_trade_no", OrderID);

//金额,以分为单位

packageReqHandler.SetParameter("total_fee", TotalMoney.ToString());

//终端IP

packageReqHandler.SetParameter("spbill_create_ip", GetIP());

//回调地址

packageReqHandler.SetParameter("notify_url", "回调地址");

//微信内部为JSAPI 微信H5为MWEB

packageReqHandler.SetParameter("trade_type", "MWEB");

//注:key为商户平台设置的密钥key

packageReqHandler.SetParameter("sign", packageReqHandler.CreateMd5Sign("key", wx.GetKey()));

string data = packageReqHandler.ParseXML();

var urlFormat = "https://api.mch.weixin.qq.com/pay/unifiedorder";

var result2 = Common.HttpHelper.HttpPost(urlFormat, null, packageReqHandler.ParseXML());

//获取微信支付的mweb_url

string mweb_url = "";

var res = XDocument.Parse(result2);

if (res.Element("xml").Element("return_code").Value == "SUCCESS")

{

mweb_url = res.Element("xml").Element("mweb_url").Value;

}

else

{

return res.ToString();

}

//string parameters = GetJsApiParameters(prepay_id);

return mweb_url;

}

这里返回的 mweb_url 就是调用微信支付的的url

具体的流程参考微信开发文档 https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_4

原文:https://www.cnblogs.com/Lance88/p/10234787.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值