您的位置:首页 > 移动开发

Bmob 移动端支付

2016-09-01 11:21 375 查看

1.导入jar包



2.修改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" />


添加 一个 Bmob 默认的 Activity

<activity
android:name="com.bmob.pay.tool.PayActivity"
android:theme="@android:style/Theme.Translucent" />
<!-- bmob pay sdk activity end -->


3.代码

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bmob.initialize(this, "cef177e901d6ad01156903c626c8c63a");

order = new PayOrder();
bmobPay = new BmobPay(this);
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);

button1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
order.setPrice(0.1);
order.setName("套餐1");
choseType();

}
});

button2.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
order.setPrice(0.2);
order.setName("套餐1");
choseType();
}
});

}


/**
* 弹出框支付方式选择
*/
protected void choseType() {
// TODO Auto-generated method stub
new AlertDialog.Builder(this)
.setMessage("支付方式选择")
.setPositiveButton("支付宝",
new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog,
int which) {

pay(true);
}
})
.setNeutralButton("微信", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
pay(false);
}
}).create().show();

}


/**
* 进行支付
*
* @param byAli
*/
void pay(final boolean byAli) {
Toast.makeText(this, "正在申请支付。。请稍候。。", Toast.LENGTH_SHORT).show();
order.setPaid(false);
order.save(MainActivity.this);

PayListener listener = new PayListener() {

@Override
public void unknow() {
Toast.makeText(MainActivity.this, "支付失败,很抱歉你只能看这么一点了",
Toast.LENGTH_SHORT).show();
}

@Override
public void succeed() {
Toast.makeText(MainActivity.this, "支付操作完成!请等待服务器校验通过即可满足您的要求!",
Toast.LENGTH_SHORT).show();
checkAgain();
}

@Override
public void orderId(String arg0) {
order.setOrderId(arg0);
order.update(MainActivity.this);
}

@Override
public void fail(int arg0, String arg1) {
Toast.makeText(MainActivity.this, "支付失败,很抱歉你只能看这么一点了",
Toast.LENGTH_SHORT).show();
if (!byAli && arg0 == -3) {
Toast.makeText(MainActivity.this, "您尚未安裝微信支付插件", 0).show();
// 没有微信支付安装微信支付插件
InstallPlugin.installBmobPayPlugin(MainActivity.this,
InstallPlugin.ASSETS_PLUGIN);
}
}
};

// 支付宝 true / 微信 false
if (byAli) {
bmobPay.pay(Double.parseDouble(order.getPrice().toString()),
order.getName(), listener);
// bmobPay.pay(order.getName(), "一步到味",
// Double.parseDouble(order.getPrice().toString()), true, listener);
} else {
bmobPay.payByWX(Double.parseDouble(order.getPrice().toString()),
order.getName(), listener);
}

}


/**
* 支付完成后
*/
void checkAgain() {
bmobPay.query(order.getOrderId(), new OrderQueryListener() {

@Override
public void succeed(String arg0) {
if (arg0.equals("NOTPAY")) {
Toast.makeText(MainActivity.this, "支付失败",
Toast.LENGTH_SHORT).show();
} else {
order.setPaid(true);
order.update(MainActivity.this);
Toast.makeText(MainActivity.this,
"感谢你购买" + order.getName() + "!", Toast.LENGTH_SHORT)
.show();

}
}

@Override
public void fail(int arg0, String arg1) {
Toast.makeText(MainActivity.this, "查询失败", Toast.LENGTH_SHORT)
.show();
}
});
}


4.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  移动 bmob 支付