公共参数图表:
       接口
 
需要参数
 
通知方式
 
支付宝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中调起支付,各有好处和坏处。

JAVA支付宝和微信(APP支付,提现,退款)的更多相关文章

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

    由于公司运营需要,需要在客户端(android/ios)增加微信以及支付宝支付,在调用微信app支付时遇到一些问题,也算是一些踩过的坑,记录下来 ,希望能对.net开发者服务端网站更快的集成微信app ...

  2. H5使用codovar插件实现微信支付(微信APP支付模式,前端)

    H5打包的app实现微信支付及支付宝支付,本章主要详解微信支付,支付宝支付请查看另一篇“H5使用codovar插件实现支付宝支付(支付宝APP支付模式,前端)” ps:本文只试用H5开发的,微信 AP ...

  3. Android版-微信APP支付

    首发地址: Android版-微信APP支付 欢迎留言.转发 微信极速开发系列文章(微信支付.授权获取用户信息等):点击这里 目录 1.注册账号.开发者认证 2.添加应用 3.申请微信支付 4.技术开 ...

  4. .Net后台实现微信APP支付

    上一节分享了微信小程序支付的后台,这一节来分享一下微信APP支付的后台.微信APP支付和微信小程序差别不大,微信APP支付后台不需要微信登录凭证.后台下单时交易类型(trade_type)不再是&qu ...

  5. 微信app支付 ci框架做的

    /**     * 组合微信app支付  获得prepayid     * @param int $order_num     */    private function _wxpay_reques ...

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

    流程 申请APP的微信支付 申请成功之后得到APPID 商户号 以及自己设置商户号的支付密码 这时就可以开发接口了 微信APP支付API:https://pay.weixin.qq.com/wiki/ ...

  7. php开发微信APP支付接口

    之前在开发APP中用到了微信支付,因为是第一次用,所以中途也遇到了好多问题,通过查看文档和搜集资料,终于完成了该功能的实现.在这里简单分享一下后台php接口的开发实例. 原文地址:代码汇个人博客 ht ...

  8. nodejs+koa2微信app支付,小程序支付

    企业付款到零钱文档:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2 1,搞微信支付,先看流程图 https: ...

  9. asp.net core 微信APP支付(扫码支付,H5支付,公众号支付,app支付)之4

    微信app支付需要以下参数,类封装如下 public class WxPayModel { /// <summary> /// 应用ID /// </summary> publ ...

随机推荐

  1. 力扣(LeetCode)292. Nim游戏 巴什博奕

    你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头. 拿掉最后一块石头的人就是获胜者.你作为先手. 你们是聪明人,每一步都是最优解. 编写一个函数,来判断你 ...

  2. x1c 2018 静音调教

    折腾快1周,在去intel官网手动下载最新显卡驱动,手动卸载老驱动,断网,重启,手动安装之后(还要再禁用点和散热相关的设备).终于不卡了.开始工作,但又遇到一个问题:太TM吵了! 经过调教,基本保障看 ...

  3. new int

    new int, 在申请内存,定义int变量:new int (100),在申请内存,定义int变量,并初始化为100:new int[100] , 在申请内存,定义int数组变量.

  4. sublime text---注释

    Sublime在进行前端开发时非常棒,当然也少不了众多的插件支持,DocBlocker是在Sublime平台上开发一款自动补全代码插件,支持JavaScript (including ES6), PH ...

  5. c# 静态构造函数与私有构造函数共存

    在使用静态构造函数的时候应该注意几点: 1.静态构造函数既没有访问修饰符,也没有参数.因为是.NET调用的,所以像public和private等修饰符就没有意义了. 2.是在创建第一个类实例或任何静态 ...

  6. Docker微容器+微服务将颠覆传统的软件架构

    从我的观点看:Docker是一个微容器,一个云计算的微PaaS容器,类似JVM但比其更强大的容器,直接基于Linux内核,支持各种语言,它比VM虚拟机更加轻量,能够在Linux或云计算IaaS等平台上 ...

  7. 如何理解机器学习/统计学中的各种范数norm | L1 | L2 | 使用哪种regularization方法?

    参考: L1 Norm Regularization and Sparsity Explained for Dummies 专为小白解释的文章,文笔十分之幽默 why does a small L1 ...

  8. Android+Servlet+MySql+JSON实现简单的数据查询操作--C/S架构

    本例简单地实现Android客户端与服务器端交互,主要是通过客户端输入内容(学号)提交到服务器端,服务器端与数据库交互去查询相应信息(姓名).根据这个做个完整的安卓登录是没问题的.本例数据库服务器都采 ...

  9. PHP如何定义类及其成员属性与操作

    1.类的定义: 类的关键字定义使用class 1.定义一个空类 Class Person{}; 2.定义一个有成员属性和操作的类 Class Person{ //成员属性 $name     =  ' ...

  10. 剑指offer-栈的压入与弹出

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序 ...