Android 针对个人开发者的bmob支付

支付宝、微信等支付平台,SDK接口的使用是需要资质认证的,是不允许个人开发者接入的;然而第三方平台(ping++、bmob)的出现让尝试开发支付功能的个人开发者看到了希望,只是需要收取税费(bmob低一些)。下面介绍的是第三方bmob Android支付(bmob官网首页)
bmob官网上也有开发文档,以及实现支付需要的前提条件(完善资料、实名认证等),官网上都有介绍,这里就不列举;
新版与旧版不同,下面介绍的是新版SDK的操作
具体步骤:
1、下载Android支付SDK(不需要下载AndroidSDK)
2、解压,BmobPay_版本号.jar放在项目根目录下libs包中(没有的话,就新建一个),新版的只有一个jar包,旧版的有四个jar包。
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" />

4、在AndroidManifest.xml的Application标签下添加以下内容:

  <activity
      android:name="c.b.a.A"
      android:configChanges="orientation|keyboardHidden|navigation"
      android:exported="false"
      android:screenOrientation="behind"
      android:windowSoftInputMode="adjustResize|stateHidden" />
  <activity
      android:name="c.b.a.B"
      android:screenOrientation="portrait"
      android:theme="@android:style/Theme.Translucent" />

5、在您的应用程序主Activity的onCreate中调用如下方法:

//(Application ID在后台应用管理的 数据浏览->应用信息->应用密钥->Application IDBP.init(context,"你的Application ID");

6、发起支付调用,请使用如下方法:

//第5个参数为true时调用支付宝支付,为false时调用微信支付
BP.pay(MainActivity.this, "商品名称", "商品描述", 0.02, true, new Plistener(){...});

监听返回的四种结果详情请查官网文档
Activity代码:

package com.hpu.bmobpay;

import c.b.BP;
import c.b.PListener;

import com.example.bmobpay.R;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;


public class MainActivity extends Activity implements OnClickListener{

    private Button Button_Pay;
    private Thread th;
    private Handler mHandler;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.i("tag", "支付SDK的初始化");
        //支付SDK的初始化
        BP.init(this, "debbad29b32cd9122fd9c513bf215c2a");
        Init();
    }

    private void Init() {
        Log.i("tag", "初始化");
        // 
        Button_Pay = (Button) findViewById(R.id.button1);
        Button_Pay.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        // 点击事件的监听
        switch (v.getId()) {
        case R.id.button1:
            Pay();
            break;

        default:
            break;
        }
    }

    protected void Pay() {
        // TODO Auto-generated method stub
        Log.i("tag", "pay");
         /**
            * 第5个参数为true时调用支付宝支付,为false时调用微信支付
            */
        BP.pay(MainActivity.this, "商品名称", "商品描述", 0.02, true
                ,new PListener() {

                    @Override
                    public void unknow() {
                        // 因为网络等问题,不能确认是否支付成功,请稍后手动查询(小概率事件)
                        Log.i("tag", "unkonw");
                        Toast.makeText(MainActivity.this, "因为网络等问题,不能确认是否支付成功,请稍后手动查询(小概率事件)", 2000).show();
                    }

                    @Override
                    public void succeed() {
                        // TODO Auto-generated method stub
                        Toast.makeText(MainActivity.this, "成功", 2000).show();
                    }

                    @Override
                    public void orderId(String orderid) {
                        // TODO Auto-generated method stub
                        Toast.makeText(MainActivity.this, "返回的订单号"+orderid, 2000).show();
                    }

                    @Override
                    public void fail(int arg0, String reason) {
                        // TODO Auto-generated method stub
                        Toast.makeText(MainActivity.this, "失败的序号,reason="+reason, 2000).show();
                    }
                }
                );
    }

}

xml代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginTop="72dp"
        android:text="支付" />

RelativeLayout>

你可能感兴趣的:(android,bmob,支付,android)