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

流程

  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),处理自己的逻辑业务

原文地址:https://www.cnblogs.com/LiZhongZhongY/p/10957488.html

时间: 2024-10-23 19:44:00

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

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

一.准备工作 去微信开发者中心下载(扫码支付,里面的大部分代码是可以用的) https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=11_1 选择UTF-8的版本copy到你的项目里面 找到Configure.java的类修改成public static String PAY_API = "https://api.mch.weixin.qq.com/pay/unifiedorder"; 下面正式进入代码部分 1 //初始化

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

由于公司运营需要,需要在客户端(android/ios)增加微信以及支付宝支付,在调用微信app支付时遇到一些问题,也算是一些踩过的坑,记录下来 ,希望能对.net开发者服务端网站更快的集成微信app支付. 1.开发所需资料:微信开放平台应用的appid以及appsecert,商户平台的商户号以及api安全里面里面设置的key,详见 微信支付账户相关信息; 2.微信开发者平台完善应用平台的相关信息,android应用签名必须用打包签名过的发布版本apk(这一步很重用),包名必须一致,可以用微信提

微信app支付php开发

前几天做微信app支付,遇到了支付失败的问题,app进行支付的时候,返回-1.查了好多资料,没找到.后来经过排查,是因为签名的问题.不多说,直接上代码.服务器端的demo版本是v3. require(dirname(dirname(__FILE__))."/lib/WxPay.Api.php");            //生成订单            $out_trade_no = trim($_POST['orderid']);            //总金额(1表示1分钱) 

微信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

小黑式烂代码之微信APP支付 + 退款(JAVA实现)

首先,你得先有微信开发平台账号密码还需要开通应用,然后还有微信服务商平台商户版账号(这些我都是给产品经理拿的) 其次我认为你先去看一看微信开发平台的文档!  https://pay.weixin.qq.com/wiki/doc/api/index.html 这里有很多种支付,我就采用APP支付来说了(会了APP支付其实H5支付都差不多的!) 进来后是这样的,随便看看'APP支付那几篇文章'讲的流程!,看完后知道大概了就可以看看'API列表了' 我们后台开发需要关注的就是这三个API了! 1 /*

微信App支付(JAVA端)

low话不多说,直接上代码! 红色框框是核心jar包! 黑色框框是获取客户端的IP地址工具类! 紫色框框是微信支付的流程代码! 蓝色框框是订单实体类! 由于小黑我技术不咋地,所以以下代码仅供参考,copy过去后是跑不起来的,不过可以经过改动代码使其跑起来,反正思路是这样的! (代码处如有发现错误的自行矫正修改,例如没有对事务控制,逻辑有误等!! 还有,大神看也,不喜勿喷) 此处代码就是用来调用微信支付SDK的,然后SDK会返回几个参数,这几个参数就是给APP端(IOS/安卓)调起支付的参数!! 

.Net后台实现微信APP支付

上一节分享了微信小程序支付的后台,这一节来分享一下微信APP支付的后台.微信APP支付和微信小程序差别不大,微信APP支付后台不需要微信登录凭证.后台下单时交易类型(trade_type)不再是"JSAPI",而是"APP".商户后台传递给支付端的下单参数也有所不同.由于微信小程序支付和APP支付使用的APPID不同,索性直接写了两套支付,不再在代码里区分究竟该使用小程序支付的配置参数还是APP支付的参数. 官方是这样介绍的 具体实现: 新建AppPayConfig

微信app支付python代码实现

微信app支付python代码(使用weixin-python==0.5.4) 微信app支付python代码(python2) python3应该差不多, 官方文档: https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_1 业务流程: 商户系统和微信支付系统主要交互说明: #步骤1:用户在商户APP中选择商品,提交订单,选择微信支付. 用户在app页面选择商品,确定数量,提交订单,提供必要的参数 app支付需要的前端参数 1

微信APP支付的坑 - errorcode=-1

关于微信App支付errorcode=-1的原因网上的大多数的说明和微信的官方文档差不多,不外乎app签名包名对应问题,这些原因都很好排除. 但最要命的就是下图标3 其他异常! 这是[调起微信支付接口]要传递的参数以及返回结果说明,其中标1和标2很有意思,有意思在哪呢?就是微信在这里告诉你怎么生成对应的数据,但如果真实环境中你就这么用了,那返回结果肯定是-1. 那这两个参数我们要用什么呢? 答案是[调起微信支付]前的上一步[统一下单]中签名用到的随机字符串和时间戳,但可惜的是文档中并没有明确说明