# java-pay-master **Repository Path**: tony_19890806/java-pay-master ## Basic Information - **Project Name**: java-pay-master - **Description**: 支付宝/微信所有支付退款 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-02 - **Last Updated**: 2024-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # java-pay 基于 Spring Boot 的各种支付对接微信App支付、小程序支付、微信扫码支付、微信退款、支付宝App支付、扫码支付,提现、退款 ## 微信支付 **微信支付流程** ### 微信App支付 **场景介绍** 适用于商户在移动端APP中集成微信支付功能。商户APP调用微信提供的SDK调用微信支付模块,商户APP会跳转到微信中完成支付,支付完后跳回到商户APP内,最后展示支付结果。目前微信支付支持手机系统有:IOS(苹果)、Android(安卓)和WP(Windows Phone)。 **交互细节** * 步骤1:用户进入商户APP,选择商品下单、确认购买,进入支付环节。商户服务后台生成支付订单,签名后将数据传输到APP端。 * 步骤2:用户点击后发起支付操作,进入到微信界面,调起微信支付,出现确认支付界面。 * 步骤3:用户确认收款方和金额,点击立即支付后出现输入密码界面,可选择零钱或银行卡支付。 * 第四步:输入正确密码后,支付完成,用户端微信出现支付详情页面。 * 第五步:回跳到商户APP中,商户APP根据支付结果个性化展示订单处理结果。 **业务流程图** ![app支付业务流程图](http://baocangwh.cn/t6/702/1555984684x2918527082.png) **商户系统和微信支付系统交互说明** * 1.用户在商户APP中选择商品,提交订单,选择微信支付。 * 2.商户后台收到用户支付单,调用微信支付统一下单接口。 * 3.统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appid,partnerid,prepayid,noncestr,timestamp,package。注意:package的值格式为Sign=WXPay * 4.商户APP调起微信支付。api参见本章节。 * 5.商户后台接收支付通知。api参见。 * 6.商户后台查询支付结果。 ### 微信小程序支付 小程序支付需要先有个小程序,并且好要有个一商户号,这样才能获取到一些必须要的信息。 **业务流程** 1、小程序内调用登录接口,获取到用户的openid。 2、商户server调用支付统一下单。 3、商户server调用再次签名。 4、商户server接收支付通知,并回复微信收到通知。 5、商户server查询支付结果。 ![小程序支付流程图](https://s2.ax1x.com/2019/04/23/EAvzIe.md.png) 小程序支付后App支付流程差不多都是现在后台向微信预下单然后返回调用返回的数据并进行签名前端支付成功后,微信会回调商户的后台服务,商户的后台服务做相应的处理。 ### 微信扫码支付 **场景介绍** * 1.商户根据微信支付的规则,为不同商品生成不同的二维码,展示在各种场景,用于用户扫描购买。 * 2.用户使用微信“扫一扫”扫描二维码后,获取商品支付信息,引导用户完成支付。 * 3.用户确认支付,输入支付密码。 * 4.支付完成后会提示用户支付成功,商户后台得到支付成功的通知,然后进行发货处理。 **业务流程图** ![微信扫码支付流程](https://s2.ax1x.com/2019/04/23/EAvkEF.md.png) **业务刘成刚说明** 业务流程说明: * 1.商户后台系统根据用户选购的商品生成订单。 * 2.用户确认支付后调用微信支付【统一下单API】生成预支付交易; * 3.微信支付系统收到请求后生成预支付交易单,并返回交易会话的二维码链接code_url。 * 4.商户后台系统根据返回的code_url生成二维码。 * 5.用户打开微信“扫一扫”扫描二维码,微信客户端将扫码内容发送到微信支付系统。 * 6.微信支付系统收到客户端请求,验证链接有效性后发起用户支付,要求用户授权。 * 7.用户在微信客户端输入密码,确认支付后,微信客户端提交授权。 * 8.微信支付系统根据用户授权完成支付交易。 * 9.微信支付系统完成支付交易后给微信客户端返回交易结果,并将交易结果通过短信、微信消息提示用户。微信客户端展示支付交易结果页面。 * 10.微信支付系统通过发送异步消息通知商户后台系统支付结果。商户后台系统需回复接收情况,通知微信后台系统不再发送该单的支付通知。 ### 微信公众号支付 ### 微信退款 **应用场景** 当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付款退还给买家,微信支付将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家帐号上。 注意: * 1、交易时间超过一年的订单无法提交退款 * 2、微信支付退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。申请退款总金额不能超过订单金额。 一笔退款失败后重新提交,请不要更换退款单号,请使用原商户退款单号 * 3、请求频率限制:150qps,即每秒钟正常的申请退款请求次数不超过150次,错误或无效请求频率限制:6qps,即每秒钟异常或错误的退款申请请求不超过6次 * 4、每个支付订单的部分退款次数不能超过50次 * 5、微信退款需要双向证书 ## 支付宝支付 ### 支付宝App支付 ### 支付宝扫码支付 ### 支付宝退款