微信支付开发 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.微信支付的流程 如下三张手机截图,我们在微信网页端看到的支付,表面上看到的是 "点击支付按钮 - 弹出支付框 - 支付成功后出现提示页面",实际上的核心处理过程是: 点击支付按 ...
随机推荐
- CSS 基础 例子 定位及z-index
position 属性指定了元素的定位类型. position 属性的四个值: static 不设置默认为该值,即没有定位,元素出现在正常的流中.不能使用top,bottom,left,righ ...
- 记一次autofac+dapper+mvc的框架搭建实践
1,环境 .net framework4.7.2,Autofac,Autofac.Mvc5,sql server 2,动机 公司项目用的是ef,之前留下代码的大哥,到处using,代码没有分层,连复用 ...
- SignalR2简易数据看板演示
软件环境: 1.vs2015.windows7..net4.5 演示说明: 当点击按钮的时候,柱状图数值加1并实时变化 1.首先打开vs2015创建一个mvc项目,并安装SignalR2,具体操作可参 ...
- 路由其实也可以很简单-------Asp.net WebAPI学习笔记(一)
MVC也好,WebAPI也好,据我所知,有部分人是因为复杂的路由,而不想去学的.曾经见过一位程序猿,在他MVC程序中,一切皆路由,url中是完全拒绝"?"和“&”.对此,我 ...
- ASP.NET MVC 项目设置,移除多余的响应头,woff,woff2 字体文件请求处理
移除 X-AspNetMvc-Version 在 Global.asax 的 Application_Start添加代码 MvcHandler.DisableMvcResponseHeader = t ...
- [leetcode.com]算法题目 - Remove Duplicates from Sorted List
Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ...
- linux 使用进程管理工具 supervisor
1.supervisor是使用python进行开发的运行在linux服务器上的进程管理工具 老版本的supervisor需要运行在python2环境,如果需要使用supervisor管理python3 ...
- iOS 数据持久化-- FMDB
一.简介 1.什么是FMDB FMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语言API 2.FMDB的优点 使用起来更加面向对象,省去了很多麻烦.冗余的C语言 ...
- C语言写了一个socket client端,适合windows和linux,用GCC编译运行通过
////////////////////////////////////////////////////////////////////////////////* gcc -Wall -o c1 c1 ...
- c++之window.h
在c++中引入window.h头文件. Sleep函数,此函数接受一个时间参数,单位是ms.即使得程序在一段时间后继续运行.如下: 在hello输出之后3000ms,才会继续输出world字符串. M ...