JAVA支付宝和微信(APP支付,提现,退款)
公共参数图表:
接口
需要参数
通知方式
支付宝APP支付
应用公钥,应用私钥
异步
支付宝APP提现
应用公钥,应用私钥,支付宝公钥
同步
支付宝APP退款
应用公钥,应用私钥,支付宝公钥
同步
微信APP支付
APPID,商户号,api_key
支付密钥
异步
微信APP提现
APPID,商户号,api_key
支付密钥,证书
同步
微信APP退款
APPID,商户号,api_key
支付密钥,证书
同步
一. 支付宝APP
1.因为我们公司是做APP开发,所以把APP为蓝本。
2.支付接口
(1)支付宝支付分三步,第一步设置公共参数;第二步支付代码;第三步回调代码;其实比较麻烦的是第一步设置公共参数,因为如果参数设置不正确会提示你网络繁忙等错误,让人摸不清头脑,支付宝官网有现成的支付代码和回调代码 ,所以参照文档把第二步和第三步完成;
(2)注意:我做支付前习惯性的会把参数重新设置一遍,因为代码问题不大的时候多半是配置公共参数的问题,APP支付宝支付需要的公共参数是应用公钥和应用私钥,分清楚应用公钥和应用私钥和支付宝公钥 ,支付的时候其实只需要应用公钥和应用私钥。支付宝提供专门的签名工具,让你设置应用公钥和私钥,设置完公钥和私钥后可以验证下公钥和私钥的一致性,使用签名工具匹配下。
2.提现接口
(1)提现接口使用应用公钥和应用私钥还有支付宝公钥,在配置参数时只需要配置应用私钥和支付宝公钥,提现接口的通知方式是同步通知,不需要添加回调地址;
(2)注意:提现需要注意的问题注意如果出现网络繁忙时一般是公共参数配置有问题,注意应用私钥和支付宝公钥是否配套;
(3)方式:提现其实就是单笔转账接口,根据支付宝商户号向用户的支付宝帐号转账,所以在提现时需要提供用户的支付宝账户,跟我们在使用支付宝一样,就算没有对方好友也可以转账,并且转账是不可逆的,意思就是如果转账错误那么系统是无法还原的。在支付宝中如果金额过大我们可以添加真实姓名验证,这个参数在转账接口中是可选参数,如果嫌麻烦可以不选,只传支付宝帐号也是可以的。
3.退款接口
(1)退款接口,在我们向支付宝支付时需要提交一个out_trade_no这个参数是我们在提交支付时向支付宝系统提交的订单号,用来标识该支付在我们系统是唯一的标识,但是在支付成功后支付宝会返回一个trade_no是支付宝为此次支付行为的唯一标识,在退款中两个订单号都可以作为退款订单的唯一标识来操作,二选一。
(2)注意:退款通知同步通知 ,退款金额不能大于支付金额,如果大于会出现错误,并且单笔转账需要申请功能,并且签约;
4.总结
(1)支付宝APP接口使用第一步需要创建APP应用 ;
(2)创建成功后申请支付功能和单笔转账功能;
(3)申请成功后配置应用公钥和应用私钥还有支付宝公钥;
(4)根据支付宝官方提供的demo配置公共参数和私有参数;
(5)调起支付接口,根据支付错误查看具体原因;
(6)如果找不到提议重新设置应用公钥和应用私钥还有支付宝公钥,并且要保证其匹配性;
(7)这里就不写我的代码了如果有不懂的可以联联系我Q1015357413 备注支付
二. 微信APP
1.微信支付
(1)微信支付需要填写公共参数商户号和APPID(你在开放平台申请的)还有api_key,APPKey其实在微信支付上其实并没有什么用处,所以你甚至可以不需要填写,根据微信支付官方提供的demo,把参数配置下直接调用就可以了;
(2)注意:下载demo时你会发现为什么我还是不知道怎么用截图说明下
点击下载指定demo
我下载的是javaDemo打开指定的压缩包
打开最关键的文件README.md这里面是支付和退款的demo示例
根据这个文件调用接口就可以了
(3)微信支付单位是以分的,就是你支付1块其实在参数填写时你需要填写100,最小单位是一分;
2.微信提现
(1)其实微信提现严格来说叫企业付款,企业付款,企业付款到客户的零钱中,需要参数商户号,apikey,appid,appKey,还有最重要的证书,证书是在商户平台下载的在提现时需要通过证书验证;
(2)注意:提现是有限制的
你登录商户平台你发现我为撒没有企业付款功能呢?不是没有而是你没有权限而已,所以只能耐心等待,等条件满足了在商户平台再申请功能吧。
提现时需要通过openid来实现功能,openid是微信用户对于应用来说在微信的唯一标识,这个标识有两种获取途径,第一是授权,第二是支付。微信授权后我们会获取到用户的openid,支付成功后也会返回给我们openid。所以两种方式自己选择一种比较简单的方式吧。
3.微信退款
(1)根据订单号退款同步通知跟支付宝类似,同步通知退款;
(2)注意:退款的依据支付订单号transaction_id和out_trade_no也是二选一,一个是微信内部的订单号一个是我们系统内部的订单号,根据二个任何一个都可以完成退款操作,退款成功后如果金额过大可以调用查询退款接口,查询退款操作是否完成。
三. 微信小程序
(1)微信小程序和APP接口调用的不同,只有支付步相同,因为在微信小程序支付时需要的参数是openid,openid是微信的唯一标识,可以在小程序使用小程序授权接口获取到这个openid,获取到openid调起支付;
(2)今天主要讲支付有关于小程序的问题下次博客进行分享。
四。总结
1.支付接口需要前端(APP,小程序)提供参数并且集成,提现和退款接口服务端可以直接完成操作,所以支付接口会随着APP支付和小程序支付有这不同的改变,殊途同归;
2.支付宝和微信的不同,从一个菜鸟的角度来看其实支付宝接口调用和微信接口调用来说,支付宝接口调用更省力和简单,微信接口稍微有点麻烦,但是在实现功能方式上其实各有千秋,支付宝通过公钥和私钥加密加密和解密实现接口调用,微信通过apikey和商户id还有证书还有APPid加密实现接口调用,我感觉其实其实两个支付方式都挺好的;
3.支付宝APP支付你创建完应用以后需要功能功能签约,然后应用上线才能在正式环境中测试(划重点),支付数据可以在支付宝商户平台查看;
4.微信APP支付需要先创建微信开放平台帐号,申请成功后需要申请APP应用,并且需要APP的包和唯一标识,来确定唯一的APP,申请完毕以后在商户平台中申请企业付款等功能;
5.如果你想要提现请保证你的开发帐号是企业帐号,否则个人帐号是没有办法进行企业退付款的;
6.支付宝应用创建完以后可以在任何APP中调起支付,微信支付只能在指定的APP中调起支付,各有好处和坏处。
注意:如果有需要的,请联系本人,相关主流服务端开发的语言源码都有,价格可以商量。我联系方式:微信zxt18700482809 手机号码:18117108330