众所周知如果想使用像支付宝的支付功能或者微信的支付功能,前提是必须得先去各自的开发者平台上创建账户获得appkey,但是在申请的时候需要提交各自材料,如下图所示:
可以看到申请时需要的材料非常多,不管是企业支付还是个体都需要一系列的材料,但是像我们这样的个人程序员就想练习一下支付功能,或者就想做一个小应用挣点钱,支付宝和微信目前官网都不能支持,这就很坑爹,难道我们普通的程序员就不能使用支付功能了嘛?
后来找了很多资料,发现一个第三方支持支付的,那就是Bmob,它大概得原理就是本来我们要使用支付宝的支付功能申请的时候需要各种证件,现在Bmob用他们公司的各种证件自动给我们申请,即我们调用的支付宝、微信的支付功能均用的Bmob的账号,这样也就决定了用户支付给我们的钱不会直接到我们的账号,而是先到Bmob的账号中,我们可以申请提现。
由于我们使用的是Bmob的账户支付,所以在商家上一直显示的是“广州市比目网络科技有限公司”
Bmob支付功能一共涉及了两个jar包
微信支付需要安装微信插件
BmobPayPlugin.apk
关键代码如下
需要的权限
<!-- alipay sdk permission begin -->
<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" />
<!-- alipay sdk permission end -->
在Androidmainfest中需要注册的
<!-- bmob pay sdk activity begin ,please put below code into application tag -->
<activity
android:name="com.alipay.sdk.app.H5PayActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:exported="false"
android:screenOrientation="behind"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>
<activity
android:name="com.bmob.pay.tool.PayActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent" />
<!-- bmob pay sdk activity end -->
需要在application注册自己应用的秘钥
BmobPay.init(context,"你的Application ID");
秘钥去Bmob注册应用就可以,绑定一下自己的支付宝收款账号,就ok了,非常简单。
调用支付宝支付功能
new BmobPay(MainActivity.this).pay(0.02,"某商品",new PayListener(){...});
调用微信支付的支付功能
new BmobPay(MainActivity.this).payByWX(0.02,"某商品",new PayListener(){...});
查询订单的方法
new BmobPay(MainActivity.this).query("订单id",new OrderQueryListener(){...});
可以上Bmob查询自己的交易记录
Bmob的支付功能比直接上支付宝或微信官网的支付功能使用起来方便多了,感兴趣的童鞋不妨试试。