.net 微信APP支付接口的开发流程以及坑

流程php

  1. 申请APP的微信支付
  2. 申请成功以后获得APPID 商户号 以及本身设置商户号的支付密码
  3. 这时就能够开发接口了

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

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

接口开发mvc

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

      

 

二、调用统一下单。dom

  照着参数列表把必须传的参数赋值就能够了(非必传的看你本身的业务须要了),而后发送给微信,获得返回的结果是xml,若是你用的是微信的dome,那么下单的方法是给你返回的 WxPayData 类型post

      

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

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

三、调起支付接口spa

  须要的是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/。看看一样的参数你生成的签名和微信的同样不,同样说明对了,不同就错了。

四、支付结果通知

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

相关文章
相关标签/搜索