微信和支付宝支付的二次封装 JPay

Apache
Java 查看源码»
Android
2017-04-09
Javen-IJPay

JPay

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

 


使用方法

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注册activityapplication节点添加如下类容

<!-- 微信支付 -->
        <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.gradle`的 `applicationId`修改为申请应用的包名
 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支付你了解多少?]

的码云指数为
超过 的项目
加载中

评论(4)

Javen-IJPay
Javen-IJPay 软件作者
@Liu_Peng 这个是Android版本的
Liu_Peng
Liu_Peng
只能在安卓用吗
bobop
bobop
支持!
楼兰碎叶
楼兰碎叶
挺好的

你的应用支持银联支付吗? JPay 0.0.4 版本发布

JPay 0.0.4 版本发布了,该版本添加银联手机控件支付的支持。 添加支付相关的权限     <uses-permission android:name="android.permission.INTERNET"/>     <uses-permission a...

2017/10/18 17:03

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

IJPay让支付触手可及

Gitee:http://gitee.com/Javen205/IJPay GitHub:https://github.com/Javen205/IJPay IJPay是JPay后台接口SDK不依赖任何第三方 mvc 框架,仅仅作为工具使用简单快速完成支付模块的开发,可轻...

2018/07/20 23:26
89
0
JAIN API 规范所包含的API

Java Application Interfaces for Communications: Java Application Containers for Communications: JAIN SIP 1.1 JAIN Service Logic Execution Environment (JSLEE) 1.0 SIP API for J2M...

2015/03/03 11:07
26
0
JAIN API 规范所包含的API

Java Application Interfaces for Communications: Java Application Containers for Communications: JAIN SIP 1.1 JAIN Service Logic Execution Environment (JSLEE) 1.0 SIP API for J2M...

2015/03/03 11:05
24
0
JFinal极速开发微信公众号

10分钟搭建属于自己的ngork服务器,实现内网穿透 Android 微信、支付App支付SDK IJPay 让支付触手可及,实现微信、支付宝系列支付 项目下载并导入IDE 开启开发模式 消息交互详解 自定义菜单 ...

2016/11/06 16:50
253
0
极光推送5大新产品闪耀亮相

为开发者解决痛点,帮助开发者连接用户、发现用户、获取用户,是极光的使命。“在创新的道路上,极光将全力以赴”,极光推送副总裁陈光炎说。

2015/11/24 14:45
56
0

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部