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

//微信H5支付
public string WeChatH5Pay(string OrderID, string Total)/ /这里的OrderID是我传过来的订单号,Total是订单金额。
{
OrderID = OrderID + DateTime.Now.ToString("fff");
//微信配置的参数
WXConfig wx = new WXConfig();
//换算金额,以分为单位
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

微信支付接口调用H5(C#)的更多相关文章

  1. 微信小程序PHP 微信支付接口调用

    小程序端 /** * 微信支付接口 */ wxPaymoney:function (out_trade_no, true_money){ //out_trade_no 后台统一下单接口需要用 var ...

  2. 微信支付接口调用问题(android正常,iphone调不起)

    转自:http://blog.csdn.net/tt123123/article/details/53897035 碰到的问题 :根据微信提供的示例代码(ASP.NET),配置好一切后, 用andro ...

  3. 微信JS支付代码_前端调用微信支付接口

    转自:http://dditblog.com/itshare_553.html 跟大家分享一段微信支付的js代码片段.V3版的微信支付没有paySignKey参数.基本上是直接复制就可以使用了.改一改 ...

  4. 微信支付开发(7) H5支付

    关键字:微信支付 微信支付v3 H5支付 wap支付 prepay_id 作者:方倍工作室原文: http://www.cnblogs.com/txw1958/p/wxpayv3_h5.html 本文 ...

  5. JAVA微信支付接口开发——支付

    微信支付接口开发--支付 这几天在做支付服务,系统接入了支付宝.微信.银联三方支付接口.个人感觉支付宝的接口开发较为简单,并且易于测试. 关于数据传输,微信是用xml,所以需要对xml进行解析. 1. ...

  6. php微信支付接口开发程序

    php微信支付接口开发程序讲解 微信支付接口现在也慢慢的像支付宝一个可以利用api接口来实现第三方网站或应用进行支付了, 下文整理了一个php微信支付接口开发程序并且己测试,有兴趣的朋友可进入参考. ...

  7. 如何使用 RESTClient 调试微信支付接口

    我们知道微信支付使用http协议进行api调用,body 使用xml格式,使用的一般http在线调试工具,无法进行xml数据的post. RESTClient 做的很好,支持各种http 方法,bod ...

  8. php微信支付接口开发程序(流程已通)

    php微信支付接口开发程序(流程已通) 来源:未知    时间:2014-12-11 17:11   阅读数:11843   作者:xxadmin [导读] 微信支付接口现在也慢慢的像支付宝一个可以利 ...

  9. 微信支付接口--超详细带注释代码--Demo

    如果本文对你有用,请爱心点个赞,提高排名,帮助更多的人.谢谢大家!❤ 如果解决不了,可以在文末进群交流. 如果对你有帮助的话麻烦点个[推荐]~最好还可以follow一下我的GitHub~感谢观看! 微 ...

随机推荐

  1. Ruby http/net 中连接超时问题

    下面在调用币安的接口时,经常会卡住,设置连接超时也不会抛出异常,代码如下(默认连接超时为nil, 参考:https://github.com/ruby/ruby/pull/269): require ...

  2. vue如何使用rules对表单字段进行校验

    基于element-ui 1.在代码中,添加属性::rule <el-form :model="form" :rules="rules" ref=&quo ...

  3. python 修改的函数装饰器

    把好的代码记录下来 方便以后学习 修改的函数参数装饰器 from functools import wraps import time import logging def warn(timeout) ...

  4. day 8:open文件和with的使用

    本节内容: 1,open打开文件后的几种操作 2,with和open的连用 3,flush的使用 1:open 1)r权限 f = open("D:\\auto\project\\fulls ...

  5. mysql备份最近8天的数据库,老的自动删除方案

    服务器上的处理脚本记录: [root@mysql01 test]# crontab -l0 2 * * * /bin/sh /script/sqlbackup.sh >/dev/null 2&g ...

  6. 设计模式学习心得<组合模式 Composite>

    组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象.组合模式依据树形结构来组合对象,用来表示部分以及整体层次.这种类型的设计模式属于结构型模式, ...

  7. Numpy 数组属性

    Numpy 数组的维数称为秩(rank),一维数组的秩为 1 , 二维数组的秩为 2 , 以此类推:在Numpy中, 每一个线性的数组称为是一个轴(axis),也就是维度(dimensios).比如说 ...

  8. shell 到达一定数量文件自动删除最久时间文件

    #!/bin/bash#rm_file>14day ReservedNum=4                      #保留文件数量rm_file_dir='/home/sean/sean/ ...

  9. AX_CreateAndPostInventJournal

    static void CreateAndPostInventJournal(Args _args) { InventJournalTable inventJournalTableLocal; Inv ...

  10. 使用signalr实现网页和微信公众号实时聊天(上)

    最近项目中需要实现客户在公众号中和客服(客服使用后台网站系统)进行实时聊天的功能.折腾了一段时间,实现了这个功能.现在将过程记录下,以便有相同需求的同行可以参考,也是自己做个总结.这篇是上,用手机编辑 ...