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. C++ 深入理解 虚继承、多重继承和直接继承

    [摘要] 本文从5段代码实例出发,通过类中类的普通继承,类的虚继承,类的多重继承,多个虚函数类的普通继承.虚继承与多重继承,几个交叉概念,详细的阐释了继承.虚函数与虚继承的基本概念,深入剖析了继承于虚 ...

  2. java-27 Properties类的使用

    1.Properties Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串. 2.方法 setProperty( ...

  3. ubuntu18.04微信小程序学习笔记

    安装微信小程序开发工具 安装 https://github.com/cytle/wechat_web_devtools 创建快捷方式 sudo nautilus //在/usr/share/appli ...

  4. html模板导出pdf文件

    package com.crc.commonreport.util; import java.awt.Insets; import java.io.ByteArrayOutputStream; imp ...

  5. PCB设计基本流程

    [PCB设计基本流程]1.准备原理图和网络表2.电路板规划3.参数设置4.导入网标5.布局6.布线7.规则检查与手工调整8.输出文件 [具体步骤]1.在原理图环境下:Tool——>Footpri ...

  6. mongodb的配置文件详解()

    官方地址  https://docs.mongodb.com/manual/reference/configuration-options/#configuration-file 以下页面描述了Mon ...

  7. Could not load file or assembly (Exception from HRESULT: 0x80131047)-解决办法

    场景:.Net 4.0 MVC WebAPI 应用程序添加ApplicationInsights监控后在demo环境运行正常,发布到testing环境出现异常 异常信息: Could not load ...

  8. python14 常用模块 二

    一.json模块 强大:不同语言之间可以进行数据交换 序列化:把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serializati ...

  9. oracle数据导出以及导入

    导出 1.服务器上mkdir创建一个真实目录/home/oracle/dump 2.sqlplus /nolog 3.conn /as sysdba; 4.SQL> create directo ...

  10. 微信支付自带的简易log

    using System; using System.Collections.Generic; using System.Web; using System.IO; namespace WxPayAP ...