Bmob 移动端支付
来源:互联网 发布:媒体播放器软件下载 编辑:程序博客网 时间:2024/06/05 10:09
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.
0 0
- Bmob 移动端支付
- 转载Bmob移动支付
- Bmob移动支付学习Demo
- 基于Bmob在小程序端实现一键支付
- Bmob之android支付接入
- Bmob解决移动端后台服务实现方案
- 移动端支付领悟
- 移动端app支付宝支付
- android接入支付宝移动端支付
- 移动端支付系统前景
- 移动端集成支付宝
- Bmob文档阅读5-支付快速入门
- Android 针对个人开发者的bmob支付
- Android Studio调用Bmob SDK实现支付
- Android应用接入Bmob第三方支付
- 移动支付
- 移动支付
- 移动支付
- ubuntu16.04 下安装 QQ8.5 或者QQ8.1
- 在使用Jquery的load方法加载时,只加载第一次的问题解决方法
- 五,MyBatis动态SQL
- PHP基本语法
- li标签中,前部分标签左对齐,后部分标签右对齐
- Bmob 移动端支付
- 微信开发第二篇:获取全局access_token
- 基于物理渲染的基础理论1.0版
- JDBC链接SQLServer数据库
- Android APK反编译就这么简单 详解(附图)
- Google Android API guide learning(a)
- 常用控件知识
- iOS 跳转到系统的设置界面
- 【译文】Mastering CMake(一)之为什么选择CMake