Android支付接入(五):机锋网

本文详细介绍机锋网支付接入的具体步骤与注意事项,包括在AndroidManifest.xml中配置支付相关Activity和参数,通过Fiap.java实现支付流程,并确保支付逻辑与游戏逻辑的兼容性。
前边已经陆续跟大家走了一遍运营商和支付宝付费接入,今天跟大家一起看看机锋网的支付接入。其实付费接入本身并没有太多需要注意的地方,做的多了以后你会发现套路都是大同小异的。而需要注意的地方在于怎么跟游戏兼容及后期的维护,包括增减支付方式。现在谈下我个人理解(说的不对希望大家猛喷),付费界面及逻辑尽量不要给一个单独的Activity,因为

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

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

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

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

 

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

AndroiManifest.xml

<!-- 机锋网 -->
        <activity
            android:name="com.gfan.sdk.payment.PaymentsActivity"
            android:configChanges="orientation|keyboardHidden" />
        <activity
            android:name="com.gfan.sdk.charge.ChargeActivity"
            android:configChanges="orientation|keyboardHidden" />
        <activity
            android:name="com.gfan.sdk.account.LoginActivity"
            android:configChanges="orientation|keyboardHidden"
            android:windowSoftInputMode="adjustUnspecified" />

        <!-- 请替换gfan_pay_appkey为开发者平台中的appKey -->
        <meta-data
            android:name="gfan_pay_appkey"
            android:value="XXX" />

        <!-- 不用动 -->
        <meta-data
            android:name="gfan_type"
            android:value="paysdk" />

        <!-- 不用动 -->
        <meta-data
            android:name="gfan_cpid"
            android:value="testcpid" />

<!--这里是Activity的声明及机锋参数配置-->
 

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

<!--权限的配置,第三方平台支付都是走的网络,所以需要联网权限,及获取是否联网的权限-->

 

Fiap.java

 

package com.example.blogforgfan;

// 机锋应用内支付
import com.gfan.sdk.payment.PaymentInfo;
import com.gfan.sdk.payment.PaymentsActivity;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;

@SuppressLint("HandlerLeak")
public class Fiap extends Activity {

	final int CATCAP_ANDROID_PAY = 0; // 跳转Activity请求码
	int catcap_android_pay_catcap_coin = 0; // 购买的猫币

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		findViewById(R.id.button1).setOnClickListener(
				new View.OnClickListener() {

					@Override
					public void onClick(View v) {
						// TODO Auto-generated method stub
						android_pay(2);
					}
				});
	}

	// ===================================
	// JAVA
	// ===================================

	public void android_pay(int index) {
		if (!is_can_internet(Fiap.this)) {
			fiapHandler.sendEmptyMessage(1);
			return;
		}
		int coin = 0;
		switch (index) {
		case 0:
			coin = 2;
			this.catcap_android_pay_catcap_coin = 50;
			break;
		case 1:
			coin = 4;
			this.catcap_android_pay_catcap_coin = 120;
			break;
		case 2:
			coin = 6;
			this.catcap_android_pay_catcap_coin = 200;
			break;
		case 3:
			coin = 8;
			this.catcap_android_pay_catcap_coin = 300;
			break;

		default:
			break;
		}
		// coin *= 10;此处coin是人民币,换算成机锋券需*10
		// 设置购买信息(购买的道具名,付费描述,支付金额,订单号)
		// PS:这里需要自己组织订单号,所以需保证每次订单号是唯一的,此处传入的金额是机锋券(1元=10机锋券)
		PaymentInfo info = new PaymentInfo("猫币", "购买游戏所用猫币", coin,
				get_order_id());
		// 到购买页面
		Intent intent = new Intent(this, PaymentsActivity.class);
		intent.putExtra(PaymentsActivity.EXTRA_KEY_PAYMENTINFO, info);
		startActivityForResult(intent, CATCAP_ANDROID_PAY);
	}

	// ===================================
	// Android
	// ===================================
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (requestCode == CATCAP_ANDROID_PAY) { // 保证结果码跟请求码一致
			if (resultCode == RESULT_OK) { // 支付成功,这里填写支付成功后的逻辑

				new AlertDialog.Builder(this).setTitle("感谢购买猫币")
						.setPositiveButton("确定", null).create().show();

			}
		}
		// 清空数据
		this.catcap_android_pay_catcap_coin = 0;
		super.onActivityResult(requestCode, resultCode, data);
	}

	public boolean is_can_internet(final Context context) {
		try {
			ConnectivityManager manger = (ConnectivityManager) context
					.getSystemService(Context.CONNECTIVITY_SERVICE);
			NetworkInfo info = manger.getActiveNetworkInfo();
			return (info != null && info.isConnected());
		} catch (Exception e) {
			return false;
		}
	}

	public String get_order_id() {
		long ran1 = get_round(1111, 9999);
		long ran2 = get_round(1111, 9999);
		// return android_get_umeng_channel () + "_" + ran1 +
		// System.currentTimeMillis () + ran2;
		return "_" + ran1 + System.currentTimeMillis() + ran2;
	}

	public long get_round(int min, int max) {
		return Math.round(Math.random() * (max - min) + min);
	}

	Handler fiapHandler = new Handler() {

		public void handleMessage(android.os.Message msg) {
			if (msg.what == 1) {
				new AlertDialog.Builder(Fiap.this).setTitle("提示")
						.setMessage("连接不到网络。").setPositiveButton("确定", null)
						.create().show();
			}
		};
	};
}


 

<!-- 转载完毕-->
内容概要:本文详细介绍了“秒杀商城”微服务架构的设计与实战全过程,涵盖系统从需求分析、服务拆分、技术选型到核心功能开发、分布式事务处理、容器化部署及监控链路追踪的完整流程。重点解决了高并发场景下的超卖问题,采用Redis预减库存、消息队列削峰、数据库乐观锁等手段保障数据一致性,并通过Nacos实现服务注册发现与配置管理,利用Seata处理跨服务分布式事务,结合RabbitMQ实现异步下单,提升系统吞吐能力。同时,项目支持Docker Compose快速部署和Kubernetes生产级编排,集成Sleuth+Zipkin链路追踪与Prometheus+Grafana监控体系,构建可观测性强的微服务系统。; 适合人群:具备Java基础和Spring Boot开发经验,熟悉微服务基本概念的中高级研发人员,尤其是希望深入理解高并发系统设计、分布式事务、服务治理等核心技术的开发者;适合工作2-5年、有志于转型微服务或提升架构能力的工程师; 使用场景及目标:①学习如何基于Spring Cloud Alibaba构建完整的微服务项目;②掌握秒杀场景下高并发、超卖控制、异步化、削峰填谷等关键技术方案;③实践分布式事务(Seata)、服务熔断降级、链路追踪、统一配置中心等企业级中间件的应用;④完成从本地开发到容器化部署的全流程落地; 阅读建议:建议按照文档提供的七个阶段循序渐进地动手实践,重点关注秒杀流程设计、服务间通信机制、分布式事务实现和系统性能优化部分,结合代码调试与监控工具深入理解各组件协作原理,真正掌握高并发微服务系统的构建能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值