GithubHelp home page GithubHelp logo

jseasypay's Introduction

JsEsayPay

对安卓端微信、支付宝、银联支付作封装,便于快速集成支付

使用方法

在build.gradle中

allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}

dependencies {
	compile 'com.github.shuaijia:JsEasyPay:v1.1'
}

注:每次返回支付成功后,都建议再次请求服务器是否成功,双方都返回成功,则此次交易成功,否则失败。

微信支付

step 1:在清单文件中添加(直接复制即可)

<!-- 微信支付权限-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<!--依赖库中的微信支付广播-->
<receiver android:name="com.jia.jsesaypaylibrary.wxpay.JsWXPayReceiver">
	<intent-filter>
		<action android:name="com.tencent.mm.plugin.openapi.Intent.ACTION_REFRESH_WXAPP" />
	</intent-filter>
</receiver>

step 2:在根包名下建wxapi包,在该包下新建WXPayEntryActivity(支付完成回调页),继承JsWXPayHandler,实现其抽象方法(已回到主线程执行)

@Override
public void create(Bundle savedInstanceState) {

}

@Override
public void paySuccess() {

}

@Override
public void payCancel() {

}

@Override
public void payFail() {

}

将该Activity在清单文件中注册

step 3:将订单信息提交服务器,获取prepay_id, 开始支付

String prepay_id = "GET PREPAY_ID FROM SERVER";// 下单后将订单信息传给服务器,以获取prepay_id

WXPayConfig.getInstance().setAPI_KEY("YOUR API_KEY");
WXPayConfig.getInstance().setAPP_ID("YOUR APP_ID");
WXPayConfig.getInstance().setMCH_ID("YOUR MCH_ID");

WXPay wxPay = new WXPay(MainActivity.this);
wxPay.pay(prepay_id);

step 4:微信支付集成到此完成

支付宝支付

step 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" />

step 2: 配置账号信息,并创建支付对象

AlipayConfig.getInstance().setSELLER("YOUR SELLER"); // 商户收款账号
AlipayConfig.getInstance().setPARTNER("YOUR PARTNER"); // 商户PID
AlipayConfig.getInstance().setRSA_PRIVATE(""); // 商户私钥,pkcs8格式
AlipayConfig.getInstance().setCALL_SERVER_URL("YOUR CALLBACK URL"); // 支付宝请求服务器回调页

AliPay aliPay = new AliPay(MainActivity.this, "GOODS NAME", "GOODS DETAIL", "PRICE");

step 3:将订单ID和订单信息传给服务器,返回是否可以支付,可以则开始支付(项目不同,可自行处理此逻辑)

// 将订单id和info传给服务器,可以支付,则开始支付
if (checkOrderFromServer(aliPay.getOrderId(), aliPay.getOrderInfo())) {
	aliPay.pay(new AliPay.AlipayCallBack() {
		@Override
		public void success() {
			Log.e(TAG, "支付宝 success: ");
		}

		@Override
		public void faile() {
			Log.e(TAG, "支付宝 faile: ");
		}

		@Override
		public void paying() {
			Log.e(TAG, "支付宝 paying: ");
		}
	});
}

step 4:支付宝集成完成

银联支付

step 1:在清单文件中(直接复制即可)

<!--银联支付权限-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.NFC" />
<uses-feature android:name="android.hardware.nfc.hce" />

<!--银联支付页-->
<activity
	android:name="com.unionpay.uppay.PayActivity"
	android:configChanges="orientation|keyboardHidden"
	android:excludeFromRecents="true"
	android:label="@string/app_name"
	android:screenOrientation="portrait"
	android:windowSoftInputMode="adjustResize" />

step 2:将订单信息提交服务器,获取订单流水号tn

String tn=getTNfromServer(); // 从服务器获取订单流水号

step 3:开始支付

UPPay upPay=new UPPay(MainActivity.this,tn,"01"); //00表示正式环境,01表示测试环境
upPay.pay();

step 4:在onActivityResult中

UPPay.getPayResult(data, new UPPay.UPPayCallback() {
            @Override
            public void onSuccess() {
                Log.e(TAG, "银联 success: ");
            }

            @Override
            public void onFail() {
                Log.e(TAG, "银联 onFail: ");
            }

            @Override
            public void onCancel() {
                Log.e(TAG, "银联 onCancel: ");
            }
        });

step 5:银联集成完了,有没有很简单!

最后,由于时间匆忙,难免有错或需要改进的地方 有好的建议记得联系我哦!

更多精彩内容,请关注我的微信公众号——Android机动车

这里写图片描述

jseasypay's People

Contributors

shuaijia avatar

Stargazers

 avatar  avatar xiaobingchan avatar  avatar 天譩-倾仙 avatar xieqi avatar PaulAustin avatar  avatar  avatar  avatar  avatar charles avatar longs avatar  avatar  avatar  avatar  avatar 忍者无敌 avatar Edward Xie avatar  avatar liuchunhong avatar lingmin12603 avatar  avatar Deepblue avatar 司空摘星 avatar  avatar JohnHuang avatar Darker avatar  avatar yuechao An avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.