流程

  1. 申请APP的微信支付
  2. 申请成功之后得到APPID 商户号 以及自己设置商户号的支付密码
  3. 这时就可以开发接口了

微信APP支付API:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1

微信APP开发SDK:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=11_1

接口开发

  1、就说三个接口吧主要这三个接口是必须用的(如图),使用的方法SDK里面应该有(因为之前先开发的jsapi支付,所以我直接使用的是jsapi的dome方法)

      

2、调用统一下单。

  照着参数列表把必须传的参数赋值就可以了(非必传的看你自己的业务需要了),然后发送给微信,得到返回的结果是xml,如果你用的是微信的dome,那么下单的方法是给你返回的 WxPayData 类型

      

  注意:下单的时候会有一个参数 notify_url 这个参数是用来微信支付成功之后用来通知你的支付结果,用来你处理自己的逻辑,微信给的说明只是说能直接访问、不带参数就可以了,

     但是没说他结果是post回来的,如果你用的是mvc的话千万不能把回调页面写成httpget的,这样你会收不到微信的通知的

3、调起支付接口

  需要的是7个参数,如下

    应用ID(appid)、商户号(partnerid)、预支付交易会话ID(prepayid)、扩展字段(package)、随机字符串(noncestr)、时间戳(timestamp)、签名(sign)

  其中 应用ID(appid)、商户号(partnerid)、扩展字段(package)这三个值是可以让APP写死的就不用传值了,但扩展字段(package)参数微信只是暂填写固定值Sign=WXPay,

  所以以后他要变得话,还得重新让APP打包,尤其iOS还得审核,特别麻烦,所以建议由参数方式传值获取,prepayid就是上边统一下单接口返回的结果(当然上边的接口得调用无误),

  需要注意的是:签名(sign)并不是统一下单接口返回的那个签名,而是需要用同样的签名方式把前六个参数在签名一边,获取到的签名才是APP需要的那个签名。得到这些参数就可以传给APP开发了。

  如果不知道是不是签名正确可以用微信提供的签名在线验证方法:https://pay.weixin.qq.com/wiki/tools/signverify/。看看同样的参数你生成的签名和微信的一样不,一样说明对了,不一样就错了。

4、支付结果通知

  用的就是统一下单接口发送给微信的那个回调URL(notify_url),处理自己的逻辑业务

  

.net 微信APP支付接口的开发流程以及坑的更多相关文章

  1. php开发微信APP支付接口

    之前在开发APP中用到了微信支付,因为是第一次用,所以中途也遇到了好多问题,通过查看文档和搜集资料,终于完成了该功能的实现.在这里简单分享一下后台php接口的开发实例. 原文地址:代码汇个人博客 ht ...

  2. 微信APP支付服务端开发Java版(一)

    一.准备工作 去微信开发者中心下载(扫码支付,里面的大部分代码是可以用的) https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=11 ...

  3. 微信app支付android客户端以及.net服务端实现

    由于公司运营需要,需要在客户端(android/ios)增加微信以及支付宝支付,在调用微信app支付时遇到一些问题,也算是一些踩过的坑,记录下来 ,希望能对.net开发者服务端网站更快的集成微信app ...

  4. 微信支付-微信公众号支付,微信H5支付,微信APP支付,微信扫码支付

    在支付前,如果使用第三方MVC框架,则使用重写模式,服务器也需要配置该项 if (!-e $request_filename){ rewrite ^/(.*)$ /index.php/$ last; ...

  5. 微信APP支付整体流程记录备忘

      支付整体流程见文档:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_3   商户系统和微信支付系统主要交互说明:     步骤1: ...

  6. 微信App支付接入步骤&支付中前后端交互流程

    最近对微信App支付(App端集成微信支付SDK)申请步骤,以及终端在进行微信支付时商户App.商户Server.微信App.微信支付Server的交互流程进行了简单了解.这篇文章应该算是学习笔记,分 ...

  7. 微信app支付,完整流程,完整代码 (转)

    微信app支付流程 需要的配置参数 private function wechat($body,$indent_id,$cou,$user_id,$total_fee,$ip,$domain,$non ...

  8. H5使用codovar插件实现微信支付(微信APP支付模式,前端)

    H5打包的app实现微信支付及支付宝支付,本章主要详解微信支付,支付宝支付请查看另一篇“H5使用codovar插件实现支付宝支付(支付宝APP支付模式,前端)” ps:本文只试用H5开发的,微信 AP ...

  9. Android版-微信APP支付

    首发地址: Android版-微信APP支付 欢迎留言.转发 微信极速开发系列文章(微信支付.授权获取用户信息等):点击这里 目录 1.注册账号.开发者认证 2.添加应用 3.申请微信支付 4.技术开 ...

随机推荐

  1. fragment、ListFragment使用ListView及自定义Listview等初始化操作

    fragment.ListFragment使用ListView及自定义Listview等初始化操作 1.先说一下 从官方api中说fragment碎片中使用Listview有专门的 ListView碎 ...

  2. Centos 升级MySQL版本或者Yum安装Mysql5.6

    Centos 升级MySQL版本或者Yum安装Mysql5.6 1.从MySQL Yum仓库下载最新的rpm文件:http://dev.mysql.com/downloads/repo/yum/Cen ...

  3. PHP 面向对象:设计模式之单例模式

    单例模式要解决的问题就是“如何让这个类只有一个实例”. 我们的web应用中,大量使用了数据库连接,如果反复建立与数据库的连接必然消耗更多的系统资源. 我们如何解决这个问题,建立唯一的数据库连接是必要的 ...

  4. Redis的持久化选项

    Redis提供了两种不同的持久化方法来将数据存储到硬盘里面.一种方法叫快照(snapshotting),它可以将存在于某一时刻的所有数据都写入硬盘里面.另一种方法叫只追加文件(append-only ...

  5. opencv 中cvZero()的使用

    cvZero(CvArr* ar); // 是让矩阵的值都为0,有初始化的作用, Eg:   IplImage img=cvCreateImage(cvSize(640,480),IPL_DEPTH_ ...

  6. Tcl学习之--语法|变量

    [语法|变量] l 脚本.命令和单词 Tcl提供了大约100条命令.Tk提供了另外几十条,脚本包括一条或多条,通过换行符或分号分隔开. set a 12 set b 23 也能够写成一行: set a ...

  7. nyist 303序号互换(数学推理)

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=303 思路: 开始看错题了,以为最多只有两个字母. 字母转数字的表达式很容易看出来是:(2 ...

  8. 2014.9.20CSS样式表

    一.前景与背景 background-color: 背景色,定义背景的颜色 background-image:url() 定义背景图片 background-attachment:fixed/scro ...

  9. isEmpty()

    String a = new String(); 此时a是分配了内存空间,但值为空,是绝对的空,是一种有值(值存在为空而已) String b = ""; 此时b是分配了内存空间, ...

  10. JSP标签库

    step1: 定义一个标签处理类:改类必须实现SimpleTag接口,在实际中是拓展它的子类SimpleTagSupport.复写doTag方法 public class MyTag extends ...