想必很多人个人开发者和我有同样的感触,想要在自己开发的app中接入微信支付和支付宝支付,仅仅是去申请支付接口就把我们挡在了门外,微信和支付宝都只对接企业的,那不是想逼死我们个人开发者吗?一开始使用过waps的支付(其实不是万普的,仅仅是和万普有合作)、bmob支付、还有trpay(随时封你账号,这个牛了),还有就是66支付(这个更牛直接删除应用,我想问问产生的收益去哪里了)。今天向大家介绍一款我使用了很久的平台吧,并介绍一下他快速的接入步骤,它就是 支付精灵。
官网地址:http://payelves.com
大家在注册填写推荐人的时候,填写free4free@yeah.net ?
一、引入SDK
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" />
<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" />
2、通过jcenter添加sdk
allprojects { repositories { maven { url "https://dl.bintray.com/dqzhai/payelves-maven" } jcenter() } }
2、通过gradle 引入
dependencies { compile 'com.payelves:sdk-release:3.2.2' }
官网还提供了aar方式的引入
二、接入支付
1、初始化
/** * 支付服务初始化 * @param openId * 用户id(不能为空,区分大小写,数据来源:后台->设置->API接口信息->OPEN_ID) * @param token * 秘钥(不能为空,区分大小写,数据来源:后台->设置->API接口信息->TOKEN) * @param appKey * appKey(不能为空,数据来源:后台->应用->该应用appKey) * @param channel * channel(可为空)"baidu","xiaomi" ,"360" * @return */ EPay.getInstance(getApplicationContext()).init(String openId, String token, String appKey, String channel);
2、发起支付
/**
* 发起支付
*
* @param subject 商品名称,不可为空和空字符串
* @param body 商品内容,不可为空和空字符串
* @param amount 支付金额,单位分,不能为null和<1
* @param orderId 商户系统的订单号(如果有订单的概念),没有可为空
* @param payUserId 商户系统的用户id(如果有用户的概念),没有可为空
* @param backPara 支付成功后支付精灵会用此参数回调配置的url
* (回调url在后台应用->添加应用时候配置)
* demo: backParas 的value(建议json) : {"a":1,"b":"2"},如不需要可为空。
* @param payResultListener,不能为null 支付结果回调
*/
EPay.getInstance(this).pay(subject, body, amount,
orderId, payUserId,backPara, new PayResultListener() {
/**
* @param context
* @param orderId 商户系统订单id
* @param payUserId 商户系统用户ID
* @param payResult
* @param payType 支付类型:1 支付宝,2 微信 3 银联
* @param amount 支付金额
* @see EPayResult#FAIL_CODE
* @see EPayResult#SUCCESS_CODE
* 1支付成功,2支付失败
*/
@Override
public void onFinish(Context context, String orderId, String payUserId,
EPayResult payResult , int payType, Integer amount) {
EPay.getInstance(context).closePayView();//关闭快捷支付页面
if(payResult.getCode() == EPayResult.SUCCESS_CODE.getCode()){
//支付成功逻辑处理
Toast.makeText(MainActivity.this, payResult.getMsg(), Toast.LENGTH_LONG).show();
}else if(payResult.getCode() == EPayResult.FAIL_CODE.getCode()){
//支付失败逻辑处理
Toast.makeText(MainActivity.this, payResult.getMsg(), Toast.LENGTH_LONG).show();
}
}
});
到这里就接入完成了是不是很nb,就是这么方便。