美文网首页Android安卓三方集成编程技术
EasyPay(易支付),两分钟集成三种Android支付方式

EasyPay(易支付),两分钟集成三种Android支付方式

作者: KingofGlory | 来源:发表于2017-03-07 17:09 被阅读2908次

    EasyPay(易支付)

    项目地址

    screenshot.gif

    Usage(使用)

    step 1

    在build.gradle直接引用 :

    compile 'com.xgr.easypay:EasyPay:1.0.2'
    

    下载库后作为module导入:

    compile project(':easypay')
    

    Or Maven :

    <dependency>
      <groupId>com.xgr.easypay</groupId>
      <artifactId>EasyPay</artifactId>
      <version>1.0.2</version>
      <type>pom</type>
    </dependency>
    

    step 2

    银联支付:

    配置:无需配置
    编码:
        private void unionpay(){
            //实例化银联支付策略
            UnionPay unionPay = new UnionPay();
            //构造银联订单实体。一般都是由服务端直接返回。测试时可以用Mode.TEST,发布时用Mode.RELEASE。
            UnionPayInfoImpli unionPayInfoImpli = new UnionPayInfoImpli();
            unionPayInfoImpli.setTn("814144587819703061900");
            unionPayInfoImpli.setMode(Mode.TEST);
            //策略场景类调起支付方法开始支付,以及接收回调。
            EasyPay.pay(unionPay, this, unionPayInfoImpli, new IPayCallback() {
                @Override
                public void success() {
                    toast("支付成功");
                }
    
                @Override
                public void failed() {
                    toast("支付失败");
                }
    
                @Override
                public void cancel() {
                    toast("支付取消");
                }
            });
        }
    

    微信支付:

    配置:(具体可参考demo项目)
    • 在你的项目包名(applicationId:com.xxx.xxx)目录下建立.wxapi(如com.xxx.xxx.wxapi)目 录。在目录下新建WXPayEntryActivity.java,继承WXPayEntryBaseActivity.java,实现getWXAppId()方法。
    public class WXPayEntryActivity extends WXPayEntryBaseActivity {
        @Override
        public String getWXAppId() {
            return "appid";
        }
    }
    
    • 在AndroidManifest.xml中注册上述Activity.
            <activity
                android:name=".wxapi.WXPayEntryActivity"
                android:exported="true"
                android:launchMode="singleTop"
                android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
    
    编码:
        private void wxpay(){
            //实例化微信支付策略
            String wxAppId = "";
            WXPay wxPay = WXPay.getInstance(this,wxAppId);
            //构造微信订单实体。一般都是由服务端直接返回。
            WXPayInfoImpli wxPayInfoImpli = new WXPayInfoImpli();
            wxPayInfoImpli.setTimestamp("");
            wxPayInfoImpli.setSign("");
            wxPayInfoImpli.setPrepayId("");
            wxPayInfoImpli.setPartnerid("");
            wxPayInfoImpli.setAppid("");
            wxPayInfoImpli.setNonceStr("");
            wxPayInfoImpli.setPackageValue("");
            //策略场景类调起支付方法开始支付,以及接收回调。
            EasyPay.pay(wxPay, this, wxPayInfoImpli, new IPayCallback() {
                @Override
                public void success() {
                    toast("支付成功");
                }
    
                @Override
                public void failed() {
                    toast("支付失败");
                }
    
                @Override
                public void cancel() {
                    toast("支付取消");
                }
            });
        }
    

    支付宝支付:

    配置:无需配置。
    编码:
        private void alipay(){
            //实例化支付宝支付策略
            AliPay aliPay = new AliPay();
            //构造支付宝订单实体。一般都是由服务端直接返回。
            AlipayInfoImpli alipayInfoImpli = new AlipayInfoImpli();
            alipayInfoImpli.setOrderInfo("");
            //策略场景类调起支付方法开始支付,以及接收回调。
            EasyPay.pay(aliPay, this, alipayInfoImpli, new IPayCallback() {
                @Override
                public void success() {
                    toast("支付成功");
                }
    
                @Override
                public void failed() {
                    toast("支付失败");
                }
    
                @Override
                public void cancel() {
                    toast("支付取消");
                }
            });
        }
    

    没错,就是这样,这就搞定了。

    由于水平有限,难免会有错误。请大家多多指教。
    有任何问题请在issues里面留言交流。Issues.

    Contact Me(联系我)

    License

    MIT License
    
    
    Copyright (c) 2017 kingofglory
    
    
    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:
    
    
    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.
    
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.

    相关文章

      网友评论

      • 507b472e4c40:您好!我直接在build.gradle直接引用 的,支付也都可以。就是现在要做h5支付宝支付。我看您github上支付宝那libs到的jar包是2016的,现在这个类库有更新维护吗?
        KingofGlory:@雲焘93 你可以直接把源码下载下来,替换一下
        507b472e4c40:您好,我导module导不进去啊能给解答一下吗?
      • 72b6388dba3c:你好,我的银联支付也直接崩溃了 是缺少so库 libentryexpro.so
        KingofGlory:@阿康_fd67 我这个路径下EasyPay/unionpay/src/main/jniLibs/armeabi/其实有这个库
        72b6388dba3c:已解决 我加入了libentryexpro.so 就ok了00 大神 我现在3个支付全用你的了 靠你了 哈哈
        KingofGlory:@阿康_fd67 手机型号和系统版本号是什么,麻烦提供一下
      • 8b5dec43c39f:你好,点击银联支付直接崩溃。。。
        KingofGlory:@王虚的闪光 有可能是第三方支付更新了so或者是一些新机型需要64位so,你可以把错误贴上来我看看
        8b5dec43c39f:你好,我网上查了下,说是少so文件,这个需要额外加so文件吗
        KingofGlory:@王虚的闪光 查看log信息吧,你看我截的动图都是顺利了的
      • 叁分钟热血:你好,问一下微信支付的时候取消支付后,回到APP中会闪一下,请问是WXPayEntryActivity销毁的效果么?那么这个怎么处理能友好一些?
      • CSDN与简书:银联的支付不好用啊,大神。直接就提示检查您的网络,
        KingofGlory:@小果子666 用测试生成的订单号能支付成功吗?
      • hollowWord:我用支付宝是后台获取参数,直接传入 alipayInfoImpli.setOrderInfo("");就行了吗 一直显示交易订单处理失败,稍后再试。
        KingofGlory:@hollowWord 请仔细看文章readme
        hollowWord:只是传入订单信息吗 appid那些在其他地方传吗
        KingofGlory:@hollowWord 不,你得传入从你们后台返回的订单信息啊
      • VIP_6ce3:success和failed怎么不走呢
        VIP_6ce3:@KingofGlory 微信的
        KingofGlory:@VIP_6ce3 哪个支付?dubug跟下看看走到哪
      • d13cd7e656ff:你那个 wxpay alipay 支付策略是什么东西?我以前集成原生的SDK 没有这些啊
        KingofGlory:@OoTYPoO 对。这些数据后台会一次性返回来,直接拿到就好。
        d13cd7e656ff:@KingofGlory 那应该怎么使用呢?还是说 不用管 照着你I的写?我看你微信的那个策略 wxappid=“” 不明白是啥意思 这些不是都放在后台了吗
        KingofGlory:@OoTYPoO 就是我运用了策略模式,就是具体的支付封装类。
      • 心藏_583c: 你好,想问一下支付宝做的时候,怎么配置公钥私钥啥的
        心藏_583c:@KingofGlory好的谢谢
        KingofGlory:@心藏_583c 为了防止密钥泄露等问题,这些工作都在服务端完成,服务端拼凑参数后生成最终的支付字符串,我们直接传入EasyPay即可。
      • 恰同学少年_0a3e:是不是我用的时候 ,微信,支付宝的sdk还得下载 然后再在依赖里面加入你的库
        KingofGlory:@恰同学少年_0a3e 不需要。
      • b5535fc62d95:我们也想接入EASY PAY,官网多少。
        KingofGlory:这个库只是三种支付方式的代码封装,支付相关信息请分别到支付宝、微信以及银联去申请。
      • 13871066fc58:厉害了 那支付回调服务器接口地址怎么设置?:smile:
        KingofGlory:@科大大 这个自行更新即可。不同公司用的版本不一样,但是接口应该没区别。
        00e20104771c:亲测试过了OK么?万一支付宝,微信或者其他的sdk更新,你会及时更新me?
        KingofGlory:你在onSuccess中回调应该ok吧?

      本文标题:EasyPay(易支付),两分钟集成三种Android支付方式

      本文链接:https://www.haomeiwen.com/subject/uknmgttx.html