微信支付开发 c# SDK JSAPI支付开发的流程和微信大坑
微信支付开发流程
1. 开通微信支付功能
省略
2. 下载微信的C#版的微信SDK
下载连接:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1
各个版本的都有,可惜咱最熟悉C#
我的下载时间是2016-02-28日,所以所有的流程都是基于这个版本的SDK。
3. 配置各种参数
首先在微信支付的开发配置中配置发起支付的路径如下:

代码的solution中找到lib的config.cs文件,如下图,所有的参数都在这里,这里配置成功了,支付也就成功。

细说一下这个类文件中的几个参数

相信这几个参数大家都很熟悉,
APPID: 微信公众号的APPID,有点开发经验的都知道,
APPSECRET:公众帐号secert,
MCHID:商户号(必须配置), 这个在申请微信支付的邮箱中有,
KEY:商户支付密钥,参考开户邮件设置,相对来讲这个是最复杂的,
登录微信支付商户平台后,点击API安全,如下图,按照步骤设置即可,设置之后填写进来

微信证书,在上面的页面中按照步骤下载证书,替换你代码中文件中的cert

同时在服务器上双击这个证书,安装在服务器中(也不知道是不是必要的步骤)。
代码中的LOG 默认是不记录的,如果要打开,把LOG_LEVENL 设置为>0的。

设置微信JSAPI安全域名
由于这个demo代码中还使用了微信的授权,所以需要在微信的服务号的接口权限中设置安全域名,也就是微信支付的域名

部署服务器测试
把代码复制到服务器上,直接访问demo页面如下

按理来讲 现在的支付已经成功了。
微信大坑
但是,在进入JSAPI支付时,无论如何也不成功,但是也不报任何错误,最近经过调试发现,JsApiPayPage.aspx页面中的支付按钮不正确,目的是调用JS callpay 方法,但是写的是一个服务器端控件,如下图中的红色部分,是官方代码。
问题知道了,解决就很容易了,直接用一个HTML控件调用callpay方法即可,下图中蓝色代码。

总结
整理上来讲,微信提供的demo和SDK已经很简单了,但是就是那么一点点的错误会浪费新手很长时间不知道如何解决(也许是我笨)。希望微信官方团队少出现点类是的错误吧。关于微信技术的任何问题可以加QQ群 497370827(2群)讨论。共学习,共进步。
教程导航:
微信开放平台 公众号第三方平台开发 教程二 创建公众号第三方平台
微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台
微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo
微信开放平台 公众号第三方平台开发 教程五 代公众号发起网页授权源码
微信支付开发 c# SDK JSAPI支付开发的流程和微信大坑的更多相关文章
- 术语-软件-软件开发:SDK(软件开发工具包)
ylbtech-术语-软件-软件开发:SDK(软件开发工具包) 软件开发工具包(缩写:SDK.外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包.软件框架 ...
- 【微信支付】公众号 JSAPI支付 HTML5(使用MUI前端框架)+WebApi 实现流程
必要参数: 1) AppID,AppSecret : 在微信公众号后台管理—>(菜单栏)开发 —> 基本设置 2)商户号 :在微信公众号后台管理—>(菜单栏)微信支 ...
- PHP应用如何对接微信公众号JSAPI支付
微信支付的产品有很多,1. JSAPI支付 2. APP支付 3. Native支付 4.付款码支付 5. H5支付. 其中基于微信公众号开发的应用选择“JSAPI支付“产品,其他APP支付需 ...
- 微信公众号JSAPI支付
微信公众号JSAPI支付 一:配置参数 申请成功后,获取接口文件, 将所有文件放入项目根目录weixin下,在WxPay.ub.config.php中填入配置账户信息; 二:设置授权 开发者中心-&g ...
- 网站如何接入微信公众号JSAPI支付PHP版
1.首先,我们要有一个微信公众号(分类类型有订阅号,服务号,企业号)我们的微信公众号一定是个服务号只有它才有微信支付接口.. 并且这个微信公众号一定要进行微信认证才能申请微信支付接口. 2.申请JSA ...
- 微信内置浏览器的JsAPI(WeixinJSBridge续)_Alien的笔记
微信内置浏览器的JsAPI(WeixinJSBridge续)_Alien的笔记 微信内置浏览器的JsAPI(WeixinJSBridge续)进入全屏 之前有写过几篇关于微信内置浏览器(WebView) ...
- php微信支付(仅Jsapi支付)详细步骤.----仅适合第一次做微信开发的程序员
本人最近做了微信支付开发,是第一次接触.其中走了很多弯路,遇到的问题也很多.为了让和我一样的新人不再遇到类似的问题,我把我的开发步骤和问题写出来,以供参考. 开发时间是2016/8/2,所以微信支付的 ...
- [5] 微信公众号开发 - 微信支付功能开发(网页JSAPI调用)
1.微信支付的流程 如下三张手机截图,我们在微信网页端看到的支付,表面上看到的是 "点击支付按钮 - 弹出支付框 - 支付成功后出现提示页面",实际上的核心处理过程是: 点击支付按 ...
- 微信公众号开发 [05] 微信支付功能开发(网页JSAPI调用)
1.微信支付的流程 如下三张手机截图,我们在微信网页端看到的支付,表面上看到的是 "点击支付按钮 - 弹出支付框 - 支付成功后出现提示页面",实际上的核心处理过程是: 点击支付按 ...
随机推荐
- Spring中注入bean学习的总结
1.在类上直接加注解@Component,那么这个类就直接注入到Spring容器中了 ,像@Contrloller,@Service这些本质上都是@Component, 2.@Configurati ...
- iOS笔记之UIKit_UITextField
- (void)viewDidLoad { [super viewDidLoad]; //建立在你已经遵守了<协议UITextFieldDelegate> self.numTF.deleg ...
- 11.js循环与函数
Switch语句 Switch(变量){ : 如果变量和1的值相同,执行该处代码 break; : 如果变量和2的值相同,执行该处代码 break; : 如果变量和3的值相同,执行该处代码 break ...
- [ASE][Daily Scrum]11.10
明天就是一年一度的光棍节了 提前提醒各位已经有妹子蓝孩子藏好自己的银行卡. 涛哥上周回家去了,进度上稍有一些耽搁不过今天就能补完所以影响不严重. 此外纠正我(PM-poor man)之前一个错误,我之 ...
- WPF学习笔记(1):DataGrid单元格实现逐键过滤功能
最近,开始学习WPF,其UI设计完全颠覆了传统的设计理念,为程序员提供了极大的自由发挥空间,让我为之惊叹,且为之着迷.然而,WPF在国内的热度却并不高,大部分贴子都是2012年以前的,出版的图书也很少 ...
- jQuery ajax 302跨域
一.ajax 302 ajax用于异步获取服务器数据,但是某天有这么一个使用场景: > 基于安全考虑,登录的用户的信息失效时,系统的所有ajax接口都由服务器直接重定向到系统的登录页面,此时登录 ...
- Python3.5 学习十九 Django分模块讲解 MTV+URL
本节内容概述: 表单提交的Method使用规则:get 获取数据 post提交数据 单选使用get 多选使用getlist request.POST.getlist("favor" ...
- RabbitMQ在mac上的安装
1.官网下载rabbitmq-server-3.6.3, 地址http://www.rabbitmq.com/install-standalone-mac.html.2.tar -zxvf rabbi ...
- 几种int类型的范围
我们在编程的过程经常会遇到数据溢出的情况,于是这个时候我们必须定义能表示更大的数的数据类型来表示这个数. 下面列出了int型的范围: unsigned int 0-4294967295 ...
- typescript-koa-postgresql 实现一个简单的rest风格服务器 —— 集成 koa
接上文 1.安装 koa yarn add koa koa-router koa-static yarn add @types/koa @types/koa-router @types/koa-sta ...