微信、支付宝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 客户端使用说明

  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

如有疑问欢迎留言

时间: 2024-08-17 20:18:24

微信、支付宝App支付-JPay 简单而不简洁的App支付SDK的相关文章

微信支付宝扫码支付聚合系统

一.简介 微信支付宝扫码支付聚合系统,聚合了微信支付和支付宝的所有扫码支付模式.并支持微信支付服务商子商户模式.支持五种扫码技术.   二.主要功能 1. 微信扫码支付:包括扫码支付模式一.扫码支付模式二.刷卡支付.其中扫码支付模式一.扫码支付模式二是用户扫商家,刷卡支付是商家扫用户.包含5大扫码支付. 2. 支付宝扫码支付:包括扫码支付和条码支付.其中扫码支付是用户扫商家,条码支付是商家扫用户 3. 支持微信服务商子商户模式:包括扫码支付模式二.刷卡支付.子商户没有扫码支付模式一. 4. 数据

Android仿微信/支付宝密码输入框_Android

在用到支付类app时,都有一个简密的输入框..开始实现的时候思路有点问题,后来到github上搜了下,找到了一个开源的库看起来相当的牛逼,,来个地址先: https://github.com/Jungerr/GridPasswordView 效果图: 这个开源库我研究了之后,又有了自己的一个思路:来个假的简密框---底部放一个EditTextView,顶部放置6个ImageView的原点,控制他们的显隐来实现这个简密宽 开发步骤: 1 布局 <?xml version="1.0"

微信支付宝红包大战搞得这么热闹

摘要: 羊年春节红包到底火到什么程度?连新华社都发文批抢红包正在毁掉春节! 当微信支付宝激战正酣,微博.手机QQ以及陌陌等也是火力全开.手机QQ玩红包不奇怪,都是腾讯家的:陌陌 羊年春节红包到底火到什么程度?连新华社都发文批抢红包正在毁掉春节! 当微信支付宝激战正酣,微博.手机QQ以及陌陌等也是火力全开.手机QQ玩红包不奇怪,都是腾讯家的:陌陌去年上市,似乎也也应该玩红包试试水.问题是微信支付宝红包大战这么搞得这么热闹,已经连续玩了好多年红包的微博为什么还要坚守红包阵地? 因为人家数据也不差.实

Android仿微信/支付宝密码输入框

在用到支付类app时,都有一个简密的输入框..开始实现的时候思路有点问题,后来到github上搜了下,找到了一个开源的库看起来相当的牛逼,,来个地址先: https://github.com/Jungerr/GridPasswordView 效果图: 这个开源库我研究了之后,又有了自己的一个思路:来个假的简密框---底部放一个EditTextView,顶部放置6个ImageView的原点,控制他们的显隐来实现这个简密宽 开发步骤: 1 布局 <?xml version="1.0"

平安互联网“五虎将”明挑微信支付宝

中介交易 SEO诊断 淘宝客 云主机 技术大厅 马明哲解密平安互联网战略,壹钱包推出时将有余额理财产品BAT(百度.阿里和腾讯)阵营终于迎来一员有力的竞争者---平安."我们是看到方向在哪,再挖地道过去,有感觉了再往前走,可能比互联网公司慢一点,但我们在学习,在努力适应互联网新文化与环境."平安集团董事长马明哲昨日在上海如此表示.在三马合作"众安在线"之时,三马之间的竞争也在加剧.昨日,马明哲在上海携其互联网"五虎将"在一个小型媒体会上亮相,正式

EasyPay把银行卡信息转换成二维码支付更简单

EasyPay把银行卡信息转换成二维码,用户注册EasyPay的移动App之后,和自己的银行卡做一个绑定,就可以到店消费时,亮出二维码,商家扫描来完成支付. 通常来说,移动支付有近场支付和远场支付两种形式,远场支付可以是短信支付.联网支付,而近场支付方式最为我们最熟悉的一种则是 NFC,比如通过手机刷卡来乘坐公交卡.超市购物等等.但 NFC 由于硬件设备的局限.产业链各方都想介入支付一环,而并没有大范围推行起来.由InnoSpace孵化的 EasyPay 项目,则希望用全软件的方式完成近场支付-

微信小程序会不会倒逼苹果App Store模式变革?

文/王新喜 小程序出来之后,外媒对这个事儿比较敏感,说微信想要在未来十年内挑战苹果.但笔者认为挑战可能谈不上,但可能倒逼苹果对apps store模式进行变革. 到目前为止,App Store上线已经达到8年时间,根据官方公布的数据,App Store应用程序已经从最初的500款左右飙升至今天的200万款.除了应用数量增长之外,应用的下载次数也达到了1300亿次.另据了解,App Store应用商店收入创新高.苹果宣布,2016年各种软件在苹果应用程序商店里一共赚了高达200亿美元,比2015年

微信小程序TOP100揭晓,多数为低频APP

本文讲的是微信小程序TOP100揭晓,多数为低频APP[IT168评论]在不少的演讲论坛中都听过这样的一个概念,我们已经步入了应用经济时代,从14年底开始,大大小小的APP崛地而起,也催生了许多创业者揭竿而起的APP开发之路,仅2年的时间,作为应用时代的入口,APP就要被颠覆?这些都源于昨日正式上线的微信小程序,传闻中的APP终结者历经一年时间,终于揭开神秘面纱. 微信小程序是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫或搜一下即可打开应用.在16年12

支付宝钱包新版增公众服务 可以进行离线支付

自微信在全新的5.0版本中增加"微信支付"功能之后,领先者支付宝也开始感受到了微信移动支付带来的竞争和压力.在即将上线的7.6版支付宝钱包中,将正式推出"公众服务"功能,并且强化当面付.离线支付.扫码支付等功能,以阻止微信从移动端分流用户和支付交易. 首先,新版支付宝钱包将其"公众平台/账号"体系定义为"公众服务",面向商家开放申请,用户层面则自由添加. 目前,支付宝公众服务开放平台首批已接入中信.平安等10多家银行,能为用户