微信、支付宝App支付-JPay 简单而不简洁的App支付SDK
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 客户端使用说明
- 将
AndroidManifest.xml
的包名修改为申请应用的包名 - 将应用中的
build.gradle
的applicationId
修改为申请应用的包名 - 测试的时候修改默认的签名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 服务端使用说明
- 开源项目地址weixin_guide
- 开源项目如何下载、如何导入到IDE 参考之前写的文章微信公众号之项目导入
- 微信支付服务端具体实现在
com.javen.weixin.controller.WeixinPayController.java
类中的appPay()
- 支付宝支付服务端具体实现在
com.javen.alipay.AliPayController.java
类中的appPay()
4.3 参考资料
微信、支付宝APP支付详细介绍参考资料 博客地址
安利
Android Studio 上传aar(Library)到JCenter
如有疑问欢迎留言

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
微信支付遇到的几种问题
喜欢的朋友可以关注下,粉丝也缺。 想必做过微信支付的都知道微信支付是一大坑。 这不是重点,重点是今天我们来如何解决问题,跳出这个大坑。 下面就来说说经常出现的几种问题: 1.url未注册 :公众平台配置支付授权目录(配置到支付页面的上层) 2.缺少参数或参数错误total_fee :setParameter("total_fee", "1"); //商品金额,以分为单位 3.签名错误 :注意签名参数的大小写,支付密钥key要到商户平台设置,设置的规则是32位数字与字母大小写的组合(不能随便填写,用在线工具生产)。 :body有中文时注意转码 首先换成英文试试看是不是编码问题 :参与签名生成的xml文件格式是否正确 4.xml数据格式错误 5.没有支付权限 :检查该公众帐号是否已经获取了支付资格。 6.redirect—uri参数错误 :请进入公众平台-开发者中心,找到填写商户的支付授权域名,填写的就是商户支付授权目录上的域名。 7.get_brand_wcpay_request:fail :签名错误(签名参数的大小写),请仔细检查签名 8.jsapi缺少参数key0 :问题出在网页端调...
- 下一篇
【译】用Fragment创建动态的界面布局(附Android示例代码)
原文链接:Building a Dynamic UI with Fragments 为了在Android上创建一个动态和多视图的用户界面,你需要封装UI控件和模块化Activity的行为,以便于你能够动态修改你的Activity。你可以用Fragment类来创建这些模块,它在某种程度上有点像嵌入型的Activity,它可以定义自己布局和管理自己的生命周期。 当一个fragment可以定义自己的布局,他就可以跟其他的fragment在Activity中实现不同的组合,这样,你就可以为不同的屏幕定义自己的布局方式(小屏幕可能一次显示一个fragment,而大屏幕可以一次显示2个或多个fragment)。 这个教程将会教你怎么用fragment创建一个动态的用户操作界面并且根据不同的屏幕大小优化app的用户操作界面。所有的这些都可以运行在像Android1.6一样老的系统上。 课程 创建Fragment 学习如何构建一个Fragment和在其回调方法实现基本的行为。 创建灵活的用户界面 学习如何构建应用程序的布局,为不同屏幕提供不同的fragment配置。 Fragment之间的通信 学...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Hadoop3单机部署,实现最简伪集群
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果