开发微信APP支付,需要先去微信开放平台申请移动应用,并开通微信支付功能,通过审核后方可进行开发;
1.用户使用APP客户端,选择商品下单。
2.商户客户端,将用户的商品数据传给商户服务器,请求生成支付订单。
3.商户后台调用统一下单API向微信的服务器发送请求,微信服务器生成预付单,并生成一个prepay_id返回给商户后台。
4.商户后台将这个prepay_id返回给商户客户端。
5.用户点击确认支付,这时候商户客户端调用SDK打开微信客户端,进行微信支付。
6.微信客户端向微信服务器发起支付请求并返回支付结果(他们之间交互用的就是prepay_id这个参数,微信的服务器要验证微信客户端传过去的参数是否跟第三步中生成的那个id一致)。
7.用户输入支付密码后,微信客户端提交支付授权,跟微信服务器交互,完成支付
8.微信服务器给微信客户端发送支付结果提示,并异步给商户服务器发送支付结果通知。
9.商户客户端通过支付结果回调接口查询支付结果,并向后台检查支付结果是否正确,后台返回支付结果。
10.商户客户端显示支付结果,完成订单,发货。
1.调起微信客户端发起支付
2.显示支付结果
【后端】【接口调用】
1.调用统一下单API向微信的服务器发送请求,微信服务器生成预付单,并生成一个prepay_id返回给商户后台。
2.后台将这个prepay_id、sign签名 返回给商户客户端。
3.商户客户端通过支付结果回调接口查询支付结果,并向后台检查支付结果是否正确,后台返回支付结果。
【提现】
一、app提现微信公众号发红包
1.微信发红包提现api 必须 微信公众的的APPID和其对应的用户OPENID,调用才可以成功
2.微信商户号必须是该公众号APPID绑定的
3.app不能直接获取到公众号的对应用户的OPENID 需要一个中转,前提条件是1必须启用unionid机制,2用户必须关注此公众号
4.从公众号粉丝列表中提取该用户的信息,这个时候就拿到的公众号对应的OPENID,和unionid
5.根据app获取到的unionid去匹配得到公众号的OPENID,即可发送红包
二、app提现微信企业付款
1.企业付款和微信公众号发红包类似
2.企业用户可以支持APP端对应获得到的OPENID进行发送
3.企业付款时需要注意微信商户号必须是该开放平台APP的APPID绑定的
4.拿到APP对应的OPENID即可发起付款,无需关注公众号
5.通过API或网页操作,付款至目标用户(企业可根据APPID+OpenID锁定目标用户)。针对已实名认证的用户,微信支付可提供校验真实姓名一致性的可选功能。
-----【提示】
◆ 给同一个实名用户付款,单笔单日限额2W/2W
◆ 不支持给非实名用户打款
◆ 一个商户同一日付款总额限额100W
◆ 仅支持商户号已绑定的APPID;
◆ 针对付款的目标用户,已微信支付实名认证的用户可提供校验真实姓名的功能,未实名认证的用户无法校验,企业可根据自身业务的安全级别选择验证类型;
◆ 付款金额必须小于或等于商户当前可用余额的金额;
◆ 已付款的记录,企业可通过企业付款查询查看相应数据
-----【注意】
与商户微信支付收款资金并非同一账户,需要单独充值。
个人用户通过微信支付向你付款,如果你提现的话就会收取一般0.6%的手续费。
【名词解释】
1.微信公众平台
微信公众平台是微信公众账号申请入口和管理后台。商户可以在公众平台提交基本资料、业务资料、财务资料申请开通微信支付功能。
平台入口:http://mp.weixin.qq.com。
2.微信开放平台
微信开放平台是商户APP接入微信支付开放接口的申请入口,通过此平台可申请微信APP支付。
平台入口:http://open.weixin.qq.com。
3.微信商户平台
微信商户平台是微信支付相关的商户功能集合,包括参数配置、支付数据查询与统计、在线退款、代金券或立减优惠运营等功能。
平台入口:http://pay.weixin.qq.com。
4.微信支付系统
微信支付系统是指完成微信支付流程中涉及的API接口、后台业务处理系统、账务系统、回调通知等系统的总称。
5.商户收银系统
商户收银系统即商户的POS收银系统,是录入商品信息、生成订单、客户支付、打印小票等功能的系统。接入微信支付功能主要涉及到POS软件系统的开发和测试,所以在下文中提到的商户收银系统特指POS收银软件系统。
6.商户后台系统
商户后台系统是商户后台处理业务系统的总称,例如:商户网站、收银系统、进销存系统、发货系统、客服系统等。
7.商户证书
商户证书是微信提供的二进制文件,商户系统发起与微信支付后台服务器通信请求的时候,作为微信支付后台识别商户真实身份的凭据。
8.签名
商户后台和微信支付后台根据相同的密钥和算法生成一个结果,用于校验双方身份合法性。签名的算法由微信支付制定并公开,常用的签名方式有:MD5、SHA1、SHA256、HMAC等。
9.支付密码
支付密码是用户开通微信支付时单独设置的密码,用于确认支付完成交易授权。该密码与微信登录密码不同。
10.Openid
用户的身份标识,不同应用拥有不同的openid。商户后台系统通过登录授权、支付通知、查询订单等API可获取到用户的openid。主要用途是判断同一个用户,如果商户有公众号,可以通过获取unionid判断同一个用户。