最近在开发自己的一款应用,其中涉及到移动快捷支付,但由于自己是个人开发者(哈哈~~相信有不少跟我一样的朋友),无法直接申请市场上主流支付,如支付宝、微信、银联等。在网上找了好久第三方支付SDK,后来不经意间看到了TrPay聚合支付,感觉费率还可以,便试着集成了,现在应用上线运营了快大半年了,今天来跟大家分享一下TrPay的两种集成过程(aar和jar方式)。
集成步骤:
一、准备工作:
1、登录TrPay官网:
http://pay.trsoft.xin
,注册一个账号并激活,之后登录控制台。
2、登录控制台后,点击“添加应用”按钮,填写自己的应用名称以及平台(Android、IOS、Wap),按提示进行下一步,最后进入到“完善应用详细内容”环节,上传自己的应用安装包、应用截图、应用描述等资料,之后点击”提交审核“按钮,提交成功后请等待TrPay官方人员对您的应用或网站进行审核。
3、当审核成功后,便开始我们的下一步集成工作了。
二、集成工作:
方式一:以aar方式集成:
1、下载TrPay支付的Android支付SDK,
TrPay_Android_SDK下载
。(另外,官方提供了两个demo,下载地址如下
TrPay_Android_Demo下载
(aar方式)、
TrPay_Android_AS_Demo_jar下载
(jar版本)
)
2、将已下载的paysdk复制到工程的libs(若无该目录,请先创建)目录下,并修改
build.gradle
配置文件。代码如下所示:
2.1、在
android
中增加以下内容:
repositories{flatDir{ dirs'libs'} }
2.2、在
dependencies
中增加以下内容:
compile(name:'paysdk-release-1.2.1', ext:'aar')//paysdk-release-1.2.1(sdk名称)
2.3、点击
Sync
,同步配置。
3、在你的应用程序的
AndroidManifest.xml
文件中添加相应的权限。代码如下所示:
<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" />
<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" />
方式二:以jar方式集成:
1.将解压后的SDK文件中的
TrPay_sdk_Jar.zip
文件解压,其中包含TrPay所需要的
jar文件
、
res资源文件
和
AndroidManifest.xml权限文件
。
2.1.将
alipaySdk-20170922.jar
和
paysdk-release-1.2.1.jar
文件复制到工程的libs(若无该目录,请先创建)目录下,之后将其加入项目依赖库中。
2.2.将res资源文件添加到您项目的res目录中(
若不想走TrPay收银台,可不必加入res资源文件
)。
3.修改您项目的
AndroidManifest.xml
文件,请参考
TrPay_sdk_Jar.zip
压缩包中
AndroidManifest.xml
权限文件设置。请添加以下核心代码:
<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" />
<activity
android:name="com.base.bj.trpayjar.TrPayAcitivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:exported="false"
android:launchMode="singleTask"
android:screenOrientation="behind"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>
<activity
android:name="com.base.bj.trpayjar.TrPayUnionAcitivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:exported="false"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>
<activity
android:name="com.base.bj.trpayjar.TrSelectListActivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:exported="false"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>
<!-- 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>
4、在你应用程序启动的
Activity的onCreate()
方法中初始化TrPay功能。代码如下所示:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 初始化PaySdk(context请传入当前Activity对象(如:MainActivity.this))
* 第一个参数:是您在trPay后面应用的appkey(需要先提交应用资料(若应用未上线,需上传测试APK文件), * 审核通过后appkey生效)
* 第二个参数:是您的渠道,一般是baidu,360,xiaomi等
*/
TrPay.getInstance(Activity.this).initPaySdk("您的应用AppKey","baidu");
}
5、设置支付相关的参数,并启动支付。代码如下所示:
/**
* 1.发起快捷支付调用(打开TrPay收银台页面,用户自己选择支付方式)
* @param tradename 商品名称
* @param outtradeno 商户系统订单号(商户系统内唯一)
* @param amount 商品价格(单位:分。如1.5元传150)
* @param backparams 商户系统回调参数
* @param notifyurl 商户系统回调地址
* @param userid 商户系统用户ID(如:trpay@52yszd.com,商户系统内唯一)
*/
TrPay.getInstance(Activity.this).callPay(tradename, outtradeno, amount, backparams, notifyurl, userid, new PayResultListener() {
/**
* 支付完成回调
* @param context 上下文
* @param outtradeno 商户系统订单号
* @param resultCode 支付状态(RESULT_CODE_SUCC:支付成功、RESULT_CODE_FAIL:支付失败)
* @param resultString 支付结果
* @param payType 支付类型(1:支付宝 2:微信 3:银联)
* @param amount 支付金额
* @param tradename 商品名称
*/
@Override
public void onPayFinish(Context context, String outtradeno, int resultCode, String resultString, int payType, Long amount, String tradename) {
if (resultCode == TrPayResult.RESULT_CODE_SUCC.getId()) {
//支付成功逻辑处理
} else if (resultCode == TrPayResult.RESULT_CODE_FAIL.getId()) {
//支付失败逻辑处理
}
}
});
/**
* 2.发起支付宝支付
* @param tradename 商品名称
* @param outtradeno 商户系统订单号(商户系统内唯一)
* @param amount 商品价格(单位:分。如1.5元传150)
* @param backparams 商户系统回调参数
* @param notifyurl 商户系统回调地址
* @param userid 商户系统用户ID(如:trpay@52yszd.com,商户系统内唯一)*/
TrPay.getInstance(Activity.this).callAlipay(tradename, outtradeno, amount, backparams, notifyurl, userid, new PayResultListener() {
/**
* 支付完成回调
* @param context 上下文
* @param outtradeno 商户系统订单号
* @param resultCode 支付状态(RESULT_CODE_SUCC:支付成功、RESULT_CODE_FAIL:支付失败)
* @param resultString 支付结果
* @param payType 支付类型(1:支付宝 2:微信 3:银联)
* @param amount 支付金额
* @param tradename 商品名称
*/
@Override
public void onPayFinish(Context context, String outtradeno, int resultCode, String resultString, int payType, Long amount, String tradename) {
if (resultCode == TrPayResult.RESULT_CODE_SUCC.getId()) {
//支付成功逻辑处理
} else if (resultCode == TrPayResult.RESULT_CODE_FAIL.getId()) {
//支付失败逻辑处理
}
}
});
/**
* 3.发起微信支付
* @param tradename 商品名称
* @param outtradeno 商户系统订单号(商户系统内唯一)
* @param amount 商品价格(单位:分。如1.5元传150)
* @param backparams 商户系统回调参数
* @param notifyurl 商户系统回调地址
* @param userid 商户系统用户ID(如:trpay@52yszd.com,商户系统内唯一)*/
TrPay.getInstance(Activity.this).callWxPay(tradename, outtradeno, amount, backparams, notifyurl, userid, new PayResultListener() {
/**
* 支付完成回调
* @param context 上下文
* @param outtradeno 商户系统订单号
* @param resultCode 支付状态(RESULT_CODE_SUCC:支付成功、RESULT_CODE_FAIL:支付失败)
* @param resultString 支付结果
* @param payType 支付类型(1:支付宝 2:微信 3:银联)
* @param amount 支付金额
* @param tradename 商品名称
*/
@Override
public void onPayFinish(Context context, String outtradeno, int resultCode, String resultString, int payType, Long amount, String tradename) {
if (resultCode == TrPayResult.RESULT_CODE_SUCC.getId()) {
//支付成功逻辑处理
} else if (resultCode == TrPayResult.RESULT_CODE_FAIL.getId()) {
//支付失败逻辑处理
}
}
});
6、若想关闭支付界面可调用以下代码:
TrPay.getInstance(Activity.this).closePayView();
7、集成测试,应用能否正常唤起支付。
好了,以上就是利用Android Studio集成
TrPay支付
的全部过程了,希望我的这篇文章能够帮助到更多个人开发者或企业在自己的产品中快速集成移动支付。
注:另有需要JAVA、Android、IOS、Python、C++、HTML5等全套编程视频教程的朋友,请关注微信公众号trteach“图灵技术社区”获取资源~~~