JPay

对微信App支付、支付宝App支付的二次封装,对外提供一个相对简单的接口以及支付结果的回调

GitHub:https://github.com/Javen205/JPay

OsChina:http://git.oschina.net/javen205/JPay

使用方法

1、引入

compile 'com.javen205.jpay:jpaysdk:latest.release.here'

2. Android Manifest配置

2.1权限声明
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2.2注册activity

application节点添加如下类容

 <!-- 微信支付 -->
<activity
android:name="com.javen205.jpay.weixin.WXPayEntryActivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:launchMode="singleTop"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity-alias
android:name=".wxapi.WXPayEntryActivity"
android:exported="true"
android:targetActivity="com.javen205.jpay.weixin.WXPayEntryActivity" />
<!-- 微信支付 end --> <!-- alipay sdk begin --> <activity
android:name="com.alipay.sdk.app.H5PayActivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:exported="false"
android:screenOrientation="behind"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>
<activity
android:name="com.alipay.sdk.app.H5AuthActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:exported="false"
android:screenOrientation="behind"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity> <!-- alipay sdk end -->

3. 发起支付

3.1 微信支付
JPay.getIntance(mContext).toPay(JPay.PayMode.WXPAY, payParameters, new JPay.JPayListener() {
@Override
public void onPaySuccess() {
Toast.makeText(mContext, "支付成功", Toast.LENGTH_SHORT).show()
} @Override
public void onPayError(int error_code, String message) {
Toast.makeText(mContext, "支付失败>"+error_code+" "+ message, Toast.LENGTH_SHORT).show();
} @Override
public void onPayCancel() {
Toast.makeText(mContext, "取消了支付", Toast.LENGTH_SHORT).show();
}
});

payParameters 为JSON字符串格式如下:

{
"appId": "",
"partnerId": "",
"prepayId": "",
"sign": "",
"nonceStr" : "",
"timeStamp": ""
}

或者

JPay.getIntance(mContext).toWxPay(appId, partnerId, prepayId, nonceStr, timeStamp, sign, new JPay.JPayListener() {
@Override
public void onPaySuccess() {
Toast.makeText(mContext, "支付成功", Toast.LENGTH_SHORT).show();
} @Override
public void onPayError(int error_code, String message) {
Toast.makeText(mContext, "支付失败>"+error_code+" "+ message, Toast.LENGTH_SHORT).show();
} @Override
public void onPayCancel() {
Toast.makeText(mContext, "取消了支付", Toast.LENGTH_SHORT).show();
}
});
3.2 支付宝支付
JPay.getIntance(mContext).toPay(JPay.PayMode.ALIPAY, orderInfo, new JPay.JPayListener() {
@Override
public void onPaySuccess() {
Toast.makeText(mContext, "支付成功", Toast.LENGTH_SHORT).show();
} @Override
public void onPayError(int error_code, String message) {
Toast.makeText(mContext, "支付失败>"+error_code+" "+ message, Toast.LENGTH_SHORT).show();
} @Override
public void onPayCancel() {
Toast.makeText(mContext, "取消了支付", Toast.LENGTH_SHORT).show();
}
});

或者

Alipay.getInstance(mContext).startAliPay(orderInfo, new JPay.JPayListener() {
@Override
public void onPaySuccess() { } @Override
public void onPayError(int error_code, String message) { } @Override
public void onPayCancel() { }
});

4.案例的使用

appId以及相关的key我们都从服务端获取

4.1 客户端使用说明

  1. AndroidManifest.xml 的包名修改为申请应用的包名
  2. 将应用中的build.gradleapplicationId修改为申请应用的包名
  3. 测试的时候修改默认的签名key

将key复制到项目的根目录(app)中并修改buildTypes 配置如下

 signingConfigs {
release {
storeFile file("wxkey")
storePassword '123456'
keyAlias '1'
keyPassword '123456'
}
} buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
signingConfig signingConfigs.release
}
}

4.2 服务端使用说明

  1. 开源项目地址weixin_guide
  2. 开源项目如何下载、如何导入到IDE 参考之前写的文章微信公众号之项目导入
  3. 微信支付服务端具体实现在com.javen.weixin.controller.WeixinPayController.java 类中的appPay()
  4. 支付宝支付服务端具体实现在com.javen.alipay.AliPayController.java 类中的appPay()

4.3 参考资料

微信、支付宝APP支付详细介绍参考资料 博客地址

Android版-微信APP支付

Android版-支付宝APP支付

支付宝Wap支付你了解多少?

安利

微信公众号开发:订阅号、服务号

AndroidStudio多渠道打包

Android依赖管理与私服搭建

Android Studio 上传aar(Library)到JCenter

如有疑问欢迎留言

微信、支付宝App支付-JPay0.0.2发布的更多相关文章

  1. JAVA支付宝和微信(APP支付,提现,退款)

    公共参数图表:       接口 需要参数 通知方式 支付宝APP支付 应用公钥,应用私钥 异步 支付宝APP提现 应用公钥,应用私钥,支付宝公钥 同步 支付宝APP退款 应用公钥,应用私钥,支付宝公 ...

  2. Android版-支付宝APP支付

    此项目已开源 赶快来围观 Start支持下吧 [客户端开源地址-JPay][服务端端开源地址-在com.javen.alipay 包名下] 上一篇详细介绍了微信APP支付 点击这里 此篇文章来详细介绍 ...

  3. 支付宝app支付服务端流程

    支付宝APP支付服务端详解 前面接了微信支付,相比微信支付,支付宝APP支付提供了支付封装类,下面将实现支付宝APP支付.订单查询.支付结果异步通知.APP支付申请参数说明,以及服务端返回APP端发起 ...

  4. 支付宝APP支付IOS手机端java后台版

    版权声明:http://blog.csdn.net/u012131769/article/details/76639527#t8 转载:http://blog.csdn.net/u012131769/ ...

  5. .Net后台实现支付宝APP支付

    前面讨论了微信支付,接下来聊聊支付宝的APP支付(新款支付宝支付).其实这些支付原理都一样,只不过具体到每个支付平台,所使用的支付配置参数不同,返回至支付端的下单参数也不同. 话不多说,直接上代码. ...

  6. 支付宝APP支付之Java后台生成签名具体步骤

    /** *支付宝支付 * @param orderId 订单编号 * @param actualPay 实际支付金额 * @return */ private String getOrderInfoB ...

  7. H5使用codovar插件实现支付宝支付(支付宝APP支付模式,前端)

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

  8. 支付宝app支付java后台流程、原理分析(含nei wang chuan tou)

    java版支付宝app支付流程及原理分析 本实例是基于springmvc框架编写     一.流程步骤         1.执行流程           当手机端app(就是你公司开发的app)在支付 ...

  9. SpringBoot2.1电商通用(微信+支付宝)支付系统实战

    『课程目录』: ├─第10章 全模块电商系统之商品模块 │      10-1_商品列表-上.mp4 │      10-2_商品列表-中.mp4 │      10-3_商品列表-下.mp4 │  ...

随机推荐

  1. java之jvm学习笔记十三(jvm基本结构) 通俗易懂的JVM 文件,没有之一

    http://blog.csdn.net/yfqnihao/article/details/8289363

  2. 学一点 MYSQL 双机异地热备份—-MYSQL主从,主主备份原理及实践

    简单介绍mysql双机,多机异地热备简单原理实战. 双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致. 这样做 ...

  3. In-Place upgrade to Team Foundation Server (TFS) 2015 from TFS 2013Team Foundation Server TFS TFS 2015 TFS upgrade TFS with Sharepoint

    This upgrade document gives detailed step by step procedure for the In-Place upgrade from TFS 2013 t ...

  4. DELPHI新的变量的声明方法

    DELPHI新的变量的声明方法 从DELPHI 10.3.1开始支持新的变量声明方法: procedure TForm1.查询1Click(Sender: TObject); begin var ur ...

  5. 3.13. Notepad++中Windows,Unix,Mac三种格式之间的转换

    由于历史原因,导致Windows,Unix/Linux,Mac三者之间,对于文件中所用回车换行符,表示的方法,都不一样. 这就导致了很多人都会遇到回车换行符的困惑,和需要在不同格式间进行转换. 其中, ...

  6. fragment做成选项卡,tab效果。 fragment+RadioGroup

    fragment做成选项卡,tab效果. fragment+RadioGroup from://http://blog.csdn.net/zimo2013/article/details/122393 ...

  7. transitionFromView方法的使用

    transitionFromView方法的使用 效果 源码 // // ViewController.m // TransitionFromView // // Created by YouXianM ...

  8. hydra 安装和使用

    udo add-apt-repository ppa:pi-rho/security sudo apt-get update sudo apt-get install hydra hydra -l r ...

  9. 关于MySQL的行转列的简单应用(二)---group函数

    MySQL的行转列.列转行.连接字符串  concat.concat_ws.group_concat函数用法使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一 ...

  10. 命令行界面 (CLI)、终端 (Terminal)、Shell、TTY的区别

    虽然这个话题已是老生常谈,搜索一下应该也能找到大把的相关文章.不过难得提到了这方面,就趁此机会把我的理解写下来,一来看看我是不是真正理解了,二来看看我能不能把它们之间的区别讲得更加简明易懂. 0. 太 ...