前边已经陆续跟大家走了一遍运营商和支付宝付费接入,今天跟大家一起看看机锋网的支付接入。事实上付费接入本身并没有太多须要注意的地方,做的多了以后你会发现套路都是大同小异的。而须要注意的地方在于怎么跟游戏兼容及后期的维护,包含增减支付方式。如今谈下我个人理解(说的不正确希望大家猛喷),付费界面及逻辑尽量不要给一个单独的Activity,由于

1.界面的频繁跳转会费时(尤其对于用cocos2d-x写的游戏来说界面跳出跳进延时非常大,会影响游戏性);

2.开启新Activity会涉及到数据的传递,新Activity的维护及销毁,这里力求简洁,频繁的数据传递难免会出错(大家都知道,支付的逻辑是不同意出现丁点错误的),假设单一渠道的付费逻辑上非常easy,假设集合了5、6个甚至很多其它的付费方式的时候以及掺杂游戏逻辑之后,支付逻辑不够简洁会使你头疼。

3.正在尝试的让cocos2d-x的游戏跟Unity3D的游戏使用一套付费接口,这种话Activity多了不会是一个好的选择

4.假设使用Activity那么AndroidManifest里边必须要注意注冊此Activity,这是一个定时炸弹,由于不同支付方式都须要在Manifest里边注冊相关配置,当配置量大了以后难免会漏掉次Activity的声明,SDK的接入是批量的你可能会同一时候接不同的游戏和不同的付费方式,这就须要在最短的时间里准确的接好多种游戏及付费方式,因此注意事项越少越好。

机锋的支付是比較简单的一种支付方式,并且其本身已经集成了支付宝和充值卡支付,如今我们来看下代码:

AndroiManifest.xml

[html] view plaincopy
  1. <!-- 机锋网 -->
  2. <activity
  3. android:name="com.gfan.sdk.payment.PaymentsActivity"
  4. android:configChanges="orientation|keyboardHidden" />
  5. <activity
  6. android:name="com.gfan.sdk.charge.ChargeActivity"
  7. android:configChanges="orientation|keyboardHidden" />
  8. <activity
  9. android:name="com.gfan.sdk.account.LoginActivity"
  10. android:configChanges="orientation|keyboardHidden"
  11. android:windowSoftInputMode="adjustUnspecified" />
  12. <!-- 请替换gfan_pay_appkey为开发人员平台中的appKey -->
  13. <meta-data
  14. android:name="gfan_pay_appkey"
  15. android:value="XXX" />
  16. <!-- 不用动 -->
  17. <meta-data
  18. android:name="gfan_type"
  19. android:value="paysdk" />
  20. <!-- 不用动 -->
  21. <meta-data
  22. android:name="gfan_cpid"
  23. android:value="testcpid" />
  24. <!--这里是Activity的声明及机锋參数配置-->
  25. <uses-permission android:name="android.permission.INTERNET"/>
  26. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  27. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
  28. <!--权限的配置,第三方平台支付都是走的网络,所以须要联网权限,及获取是否联网的权限-->

Fiap.java

[java] view plaincopy
  1. package com.example.blogforgfan;
  2. // 机锋应用内支付
  3. import com.gfan.sdk.payment.PaymentInfo;
  4. import com.gfan.sdk.payment.PaymentsActivity;
  5. import android.annotation.SuppressLint;
  6. import android.app.Activity;
  7. import android.app.AlertDialog;
  8. import android.content.Context;
  9. import android.content.Intent;
  10. import android.net.ConnectivityManager;
  11. import android.net.NetworkInfo;
  12. import android.os.Bundle;
  13. import android.os.Handler;
  14. import android.view.View;
  15. @SuppressLint("HandlerLeak")
  16. public class Fiap extends Activity {
  17. final int CATCAP_ANDROID_PAY = 0; // 跳转Activity请求码
  18. int catcap_android_pay_catcap_coin = 0; // 购买的猫币
  19. @Override
  20. protected void onCreate(Bundle savedInstanceState) {
  21. // TODO Auto-generated method stub
  22. super.onCreate(savedInstanceState);
  23. setContentView(R.layout.activity_main);
  24. findViewById(R.id.button1).setOnClickListener(
  25. new View.OnClickListener() {
  26. @Override
  27. public void onClick(View v) {
  28. // TODO Auto-generated method stub
  29. android_pay(2);
  30. }
  31. });
  32. }
  33. // ===================================
  34. // JAVA
  35. // ===================================
  36. public void android_pay(int index) {
  37. if (!is_can_internet(Fiap.this)) {
  38. fiapHandler.sendEmptyMessage(1);
  39. return;
  40. }
  41. int coin = 0;
  42. switch (index) {
  43. case 0:
  44. coin = 2;
  45. this.catcap_android_pay_catcap_coin = 50;
  46. break;
  47. case 1:
  48. coin = 4;
  49. this.catcap_android_pay_catcap_coin = 120;
  50. break;
  51. case 2:
  52. coin = 6;
  53. this.catcap_android_pay_catcap_coin = 200;
  54. break;
  55. case 3:
  56. coin = 8;
  57. this.catcap_android_pay_catcap_coin = 300;
  58. break;
  59. default:
  60. break;
  61. }
  62. // coin *= 10;此处coin是人民币,换算成机锋券需*10
  63. // 设置购买信息(购买的道具名,付费描写叙述,支付金额,订单号)
  64. // PS:这里须要自己组织订单号,所以需保证每次订单号是唯一的,此处传入的金额是机锋券(1元=10机锋券)
  65. PaymentInfo info = new PaymentInfo("猫币", "购买游戏所用猫币", coin,
  66. get_order_id());
  67. // 到购买页面
  68. Intent intent = new Intent(this, PaymentsActivity.class);
  69. intent.putExtra(PaymentsActivity.EXTRA_KEY_PAYMENTINFO, info);
  70. startActivityForResult(intent, CATCAP_ANDROID_PAY);
  71. }
  72. // ===================================
  73. // Android
  74. // ===================================
  75. @Override
  76. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  77. if (requestCode == CATCAP_ANDROID_PAY) { // 保证结果码跟请求码一致
  78. if (resultCode == RESULT_OK) { // 支付成功,这里填写支付成功后的逻辑
  79. new AlertDialog.Builder(this).setTitle("感谢购买猫币")
  80. .setPositiveButton("确定", null).create().show();
  81. }
  82. }
  83. // 清空数据
  84. this.catcap_android_pay_catcap_coin = 0;
  85. super.onActivityResult(requestCode, resultCode, data);
  86. }
  87. public boolean is_can_internet(final Context context) {
  88. try {
  89. ConnectivityManager manger = (ConnectivityManager) context
  90. .getSystemService(Context.CONNECTIVITY_SERVICE);
  91. NetworkInfo info = manger.getActiveNetworkInfo();
  92. return (info != null && info.isConnected());
  93. } catch (Exception e) {
  94. return false;
  95. }
  96. }
  97. public String get_order_id() {
  98. long ran1 = get_round(1111, 9999);
  99. long ran2 = get_round(1111, 9999);
  100. // return android_get_umeng_channel () + "_" + ran1 +
  101. // System.currentTimeMillis () + ran2;
  102. return "_" + ran1 + System.currentTimeMillis() + ran2;
  103. }
  104. public long get_round(int min, int max) {
  105. return Math.round(Math.random() * (max - min) + min);
  106. }
  107. Handler fiapHandler = new Handler() {
  108. public void handleMessage(android.os.Message msg) {
  109. if (msg.what == 1) {
  110. new AlertDialog.Builder(Fiap.this).setTitle("提示")
  111. .setMessage("连接不到网络。").setPositiveButton("确定", null)
  112. .create().show();
  113. }
  114. };
  115. };
  116. }

<!-- 转载完成-->

转载于:https://www.cnblogs.com/mfrbuaa/p/3852707.html

Android支付接入(五):机锋网相关推荐

  1. Android支付接入(七):Googlenbsp;In-app-Billing

    http://qing.blog.sina.com.cn/tj/634ac835330048cu.html 原文地址:Android支付接入(七):Google In-app-Billing作者:屌丝 ...

  2. Android支付接入(7):Google In-app-Billing

    今天跟大家一起看下Google的in-app Billing V3支付. 如果没有GooglePlay此处附上安装Google Play的一键安装器的链接(需要Root权限):http://www.m ...

  3. Android支付接入

    转载自:http://blog.sina.com.cn/s/blog_9498c8b60101d7x5.html 今天跟大家一起看下Google的in-app Billing V3支付.   如果没有 ...

  4. Android支付接入(七):Google In-app-Billing

    转载 http://blog.csdn.net/michael_liu_89/article/details/12704461 今天跟大家一起看下Google的in-app Billing V3支付. ...

  5. Android支付接入:Google In-app-Billing

    http://blog.csdn.net/michael_liu_89/article/details/12704461 今天跟大家一起看下Google的in-app Billing V3支付.    ...

  6. Android支付接入(七):Google In-app-Billing

     今天跟大家一起看下Google的in-app Billing V3支付.  如果没有GooglePlay此处附上安装Google Play的一键安装器的链接(需要Root权限):http://www ...

  7. android团购客户端,领团网团购导航Android手机客户端获机锋网力推

    近日,领团网(www.lingtuan.com)推出的Android团购导航手机客户端1.1版本登陆国内最具影响力的Android交流平台机锋网,作为国内团购导航权威,领团网手机客户端获机锋网力推,绚 ...

  8. Android支付接入之Google In-app-Billing

    原文链接:http://www.mobile-open.com/2016/966337.html 因为公司需要接入Google的应用内支付(即Google的in-app Billing V3),接入过 ...

  9. Android支付接入(一):支付宝

    转载之前我想深深地感谢屌丝哥 相信相同过App获取利润的都会需要接入计费SDK,下边就跟大家走一遍完整的支付宝SDK接入,支付系列均通过计费Button触发,计费所有代码均放到一个java文件实现,这 ...

最新文章

  1. SQuirreL SQL Client 使用记录
  2. Valgrind使用【转】
  3. Java中的引用与C中的指针
  4. 初探swift语言的学习笔记八(保留了许多OC的实现)
  5. adb不识别设备(手机)的若干情形及解决方法
  6. 飞鸽传书举一个小例子
  7. 学术论文搜索相关的网址推荐
  8. stm32用tft-lcd 显示自定义大小的字体
  9. 银行争夺又一万亿市场:汽车金融
  10. mysql中数据处理小技巧
  11. VS2017报错 class “Cxxxx“没有成员“GetContextMenuManager“ “GetContextMenuManager“:不是“Cxxxx“的成员
  12. 根据录入的计算公式计算_炒股还需工匠精神:请笑纳30个财务分析指标和计算方式,上市公司财务分析必备,速速珍藏...
  13. [XCode] XCode 6 中修改模拟器版本
  14. celery 爬虫使用
  15. Java程序员必备的几款开发工具,高效才是硬道理!
  16. mandatory参数的使用
  17. STM32芯片替代方案 | 从原厂资料中获取GD32F103VET6通信串口接口电路设计 | 第五集
  18. 基于STM32的学习记录--MQ系列计算公式
  19. 滴滴派单算法_从算法模型思路到评估方案 - 详解
  20. 松下plc FP-XH写的4轴控制程序,其中两个轴做直线插补,已经在12台设备上稳定运行,程序文件包含有plc程序触摸屏程序

热门文章

  1. oracle 10.2.0.4 rac emca,ORACLE 10G RAC升级10.2.0.4报错
  2. 国内android应用商城中程序隐私泄露分析,基于数据流分析的Android应用隐私泄露检测研究...
  3. 普罗米修斯 监控_完美的分布式监控系统——普罗米修斯
  4. 计算机三级四级机考,2017年全国计算机等级考试四级上机编程试题一
  5. java 随机数 平均值_从平均值,变异系数生成对数正态分布随机数
  6. 用友u8计算机配置,用友软件环境配置要求!
  7. 程序员们都必须知道的8种通用数据结构
  8. 【PCL】基于法线的差异来分割点云
  9. Paper9:Fast RCNN
  10. Kdtree(K-dimension tree)学习