微信支付接口调用H5(C#)
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#)的更多相关文章
- 微信小程序PHP 微信支付接口调用
小程序端 /** * 微信支付接口 */ wxPaymoney:function (out_trade_no, true_money){ //out_trade_no 后台统一下单接口需要用 var ...
- 微信支付接口调用问题(android正常,iphone调不起)
转自:http://blog.csdn.net/tt123123/article/details/53897035 碰到的问题 :根据微信提供的示例代码(ASP.NET),配置好一切后, 用andro ...
- 微信JS支付代码_前端调用微信支付接口
转自:http://dditblog.com/itshare_553.html 跟大家分享一段微信支付的js代码片段.V3版的微信支付没有paySignKey参数.基本上是直接复制就可以使用了.改一改 ...
- 微信支付开发(7) H5支付
关键字:微信支付 微信支付v3 H5支付 wap支付 prepay_id 作者:方倍工作室原文: http://www.cnblogs.com/txw1958/p/wxpayv3_h5.html 本文 ...
- JAVA微信支付接口开发——支付
微信支付接口开发--支付 这几天在做支付服务,系统接入了支付宝.微信.银联三方支付接口.个人感觉支付宝的接口开发较为简单,并且易于测试. 关于数据传输,微信是用xml,所以需要对xml进行解析. 1. ...
- php微信支付接口开发程序
php微信支付接口开发程序讲解 微信支付接口现在也慢慢的像支付宝一个可以利用api接口来实现第三方网站或应用进行支付了, 下文整理了一个php微信支付接口开发程序并且己测试,有兴趣的朋友可进入参考. ...
- 如何使用 RESTClient 调试微信支付接口
我们知道微信支付使用http协议进行api调用,body 使用xml格式,使用的一般http在线调试工具,无法进行xml数据的post. RESTClient 做的很好,支持各种http 方法,bod ...
- php微信支付接口开发程序(流程已通)
php微信支付接口开发程序(流程已通) 来源:未知 时间:2014-12-11 17:11 阅读数:11843 作者:xxadmin [导读] 微信支付接口现在也慢慢的像支付宝一个可以利 ...
- 微信支付接口--超详细带注释代码--Demo
如果本文对你有用,请爱心点个赞,提高排名,帮助更多的人.谢谢大家!❤ 如果解决不了,可以在文末进群交流. 如果对你有帮助的话麻烦点个[推荐]~最好还可以follow一下我的GitHub~感谢观看! 微 ...
随机推荐
- Ruby http/net 中连接超时问题
下面在调用币安的接口时,经常会卡住,设置连接超时也不会抛出异常,代码如下(默认连接超时为nil, 参考:https://github.com/ruby/ruby/pull/269): require ...
- vue如何使用rules对表单字段进行校验
基于element-ui 1.在代码中,添加属性::rule <el-form :model="form" :rules="rules" ref=&quo ...
- python 修改的函数装饰器
把好的代码记录下来 方便以后学习 修改的函数参数装饰器 from functools import wraps import time import logging def warn(timeout) ...
- day 8:open文件和with的使用
本节内容: 1,open打开文件后的几种操作 2,with和open的连用 3,flush的使用 1:open 1)r权限 f = open("D:\\auto\project\\fulls ...
- mysql备份最近8天的数据库,老的自动删除方案
服务器上的处理脚本记录: [root@mysql01 test]# crontab -l0 2 * * * /bin/sh /script/sqlbackup.sh >/dev/null 2&g ...
- 设计模式学习心得<组合模式 Composite>
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象.组合模式依据树形结构来组合对象,用来表示部分以及整体层次.这种类型的设计模式属于结构型模式, ...
- Numpy 数组属性
Numpy 数组的维数称为秩(rank),一维数组的秩为 1 , 二维数组的秩为 2 , 以此类推:在Numpy中, 每一个线性的数组称为是一个轴(axis),也就是维度(dimensios).比如说 ...
- shell 到达一定数量文件自动删除最久时间文件
#!/bin/bash#rm_file>14day ReservedNum=4 #保留文件数量rm_file_dir='/home/sean/sean/ ...
- AX_CreateAndPostInventJournal
static void CreateAndPostInventJournal(Args _args) { InventJournalTable inventJournalTableLocal; Inv ...
- 使用signalr实现网页和微信公众号实时聊天(上)
最近项目中需要实现客户在公众号中和客服(客服使用后台网站系统)进行实时聊天的功能.折腾了一段时间,实现了这个功能.现在将过程记录下,以便有相同需求的同行可以参考,也是自己做个总结.这篇是上,用手机编辑 ...