微信JSAPI支付 统一下单 (.net后台)

交流QQ群  ASP.NET鹰组 460845632  我会倾囊相授

我们要做微信支付当配置好微信微信商户和支付配置之后我们首先应该看   https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1#

这是微信统一下单的参数,我将这个参数做成了一个数据模型

当做好这个数据模型之后仔细看一下里面那些参数是必须的,支付金额要注意,微信是按来计算的

接下来我们就要生成签名,我这写好了个类  生成签名后 返回提交的值.....先给大家看图

注意我这里是先生成签名,再把签名拼接到订单的参数里面并且签名排序了,下面的代码可以直接拿来用

接下来是代码

public string OrderSign(WXOrder order)

{

Dictionary<string, string> dic = ClassToObject.ClassToType.Test(order);

dic = dic.OrderBy(m => m.Key).ToDictionary(m => m.Key, m => m.Value);

StringBuilder sb = new StringBuilder();

StringBuilder sbXml = new StringBuilder();

sbXml.Append("<xml>");

foreach (var item in dic)

{

sbXml.Append("<" + item.Key + ">" + item.Value + "</" + item.Key + ">");

sb.Append(item.Key + "=" + item.Value + "&");

}

sb.Append("key=" + WXConfig.Config.KEY);

string str = sb.ToString().Replace(" ", "");

string sign = Common.Tool.GetMD5(str);

sbXml.Append("<sign>" + sign + "</sign></xml>");

return sbXml.ToString().Replace(" ", "");

}

接下来就是统一下单的请求了,

上面的方法会返回一个XML ,将这个XML  POST请求到 https://api.mch.weixin.qq.com/pay/unifiedorder

请求之后如果正确返回值是一个XML  解析方方法如下

将xml解析之后会返回一个键值对集合  我只提取了需要的四个值,注意 prepay_id是统一下单后订单的的信息,jsapi靠这个获取支付信息

之后将使用jsapi 发起支付    如果没有做过jsapi的请查看我的博客,有非常详细的讲解

我们看一下jsapi是怎么发起支付的

我是用ajax 请求的后台拿到上面的数据,返回的json  , 到此微信jsapi支付完成

如果你有什么不懂得可以加我的 QQ群  ASP.NET鹰组 460845632  我会倾囊相授

时间: 2024-08-04 18:46:48

微信JSAPI支付 统一下单 (.net后台)的相关文章

在.net core上,Web网站调用微信支付-统一下单接口(xml传参)一直返回错误:mch_id参数格式错误

这是 微信支付-统一下单 接口文档 一.问题描述 在调用统一下单接口时,报mch_id参数格式错误,但商户ID确实是10位数字正确的,可就是一直报这个错误 返回的错误xml如下: 二.排错过程 1.多次对比官网xml格式,确认生成的xml是否有误 2.检查生成的xml是否带有空格.字段是否拼写有误,检查生成的xml是否有缺少或多字符 官方的xml: 我开发过程中生成的xml: 对比发现,我生成的xml参数比官方的参数多了CDATA等着字符,但CDATA标签是用于说明数据不被XML解析器解析的,不

微信JSApi支付~集成到MVC环境后的最后一个坑(网上没有这种解决方案)

大叔第一人 之前写了关于微信的坑<微信JSApi支付~坑和如何填坑>,今天将微信的jsapi支付封装到了MVC环境里,当然也出现了一些新的坑,如支付参数应该是Json对象而不是Json字符串,这样也会应付引起“get_brand_wcpay_request:fail_invalid appid”这个大家都知道的异常,呵呵,解决方案网上说是“授权目录“,事实上,还有一种原因,那就是你的WeixinJSBridge.invoke方法里的参数应该是Json对象而不是字符串,这才是最重要的. 代码我们

微信app支付(android端+java后台)

本文讲解使用微信支付接口完成在android开发的原生态app中完成微信支付功能, 文章具体讲解了前端android如何集成微信支付功能以及后台如何组装前端需要支付信息, 话不多话, 具体看文章内容吧00:00 / 07:03正常 本实例项目运行条件: 开发环境: [Android Studio] 到微信开放平台注册帐号并且创建移动应用 https://open.weixin.qq.com/cgi-bin/frame?t=home/app_tmpl&lang=zh_CN Column 1 Col

微信JSApi支付~订单号和微信交易号&lt;转&gt;

本文转载自:张占岭 原文链接:http://www.cnblogs.com/lori/p/5364213.html 谈谈transactionId和out_trade_no 前一篇微信JSApi支付~坑和如何填坑文章反映不错,所以又写了个后篇,呵呵. 每个第三方在线支付系统中都会有至少两类订单号,其一为支付系统的订单号,我们称为transactionId,其二为商户平台的订单号,我们通常称为out_trade_no,这两个号一般用来对账,在第三方支付平台你可以通过这两个订单号来查询订单的状态,而

微信JSAPI支付(比较详细) 关于getRrandWCPayRequest:fail_invalid appid 错误

原文:微信JSAPI支付(比较详细) 关于getRrandWCPayRequest:fail_invalid appid 错误 首先微信支付需注册  微信公从平台开发 和 微信支付商户平台 关于4个密钥,如何获得:有图 AppID(应用ID) :wx000000000 (来自微信公众平台->开发者中心->配置项->开发者ID->AppID(应用ID)) AppSecret(应用密钥) :62d0000000000000000000ae (来自微信公众平台->开发者中心->

微信内网页支付(微信 JSAPI 支付)的一点经验

微信 JSAPI 支付的流程是:服务端根据情况,向微信服务器发起"下单"请求.此处需要提供自己维护唯一的订单号,并要求签名加密.根据"下单"反馈的微信提供的预支付"订单号",用刚才下单请求参数同样的签名方式,对几个基本数据进行封包签名.将签名摘要,和这几个基本数据,传输给 JavaScript 端.JavaScript 通过微信内置对象的方法,唤起支付,并前端返回支付操作结果.微信服务端会异步通知服务端,支付结果:此处通知地址是之前"下

微信JSAPI支付

最近在微信H5页面内集成微信JSAPI支付,遇到不少问题,现将集成步骤及遇到的问题记录如下: 1.官方下载SDK,下载地址:https://pay.weixin.qq.com/wiki/doc/api/download/WxpayAPI_php_v3.zip 2.下载之后,只保留存放证书的文件cert(从微信公众平台"API安全"中下载),库文件lib,日志文件logs,以及example里面的notify.php,jsapi.php文件 3.配置WxPay.Config.php文件(

asp.net微信jsapi支付

1.前台页面: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <meta name="viewpo

微信JSApi支付~坑和如何填坑&lt;转&gt;

本文转载自:张占岭 原文链接:http://www.cnblogs.com/lori/p/5355550.html 微信一直用着不爽,这几天研究它的jsapi支付,即在微信内打开H5页面,完成支付的过程,在这个过程中,你将会遇到各种各样的问题,而大叔将把这些问题的解决方法写一下,希望可以给你带来帮助! 一 网页授权的域名需要设置 注意:我们设置的域名为当前域名,而不是一级域名,如www.api.com,你不能设置为api.com,而要设置成www.api.com 二 授权目录需要设置 三 JsA