Android支付接入(五):机锋网
生活随笔
收集整理的這篇文章主要介紹了
Android支付接入(五):机锋网
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前邊已經陸續跟大家走了一遍運營商和支付寶付費接入,今天跟大家一起看看機鋒網的支付接入。事實上付費接入本身并沒有太多須要注意的地方,做的多了以后你會發現套路都是大同小異的。而須要注意的地方在于怎么跟游戲兼容及后期的維護,包含增減支付方式。如今談下我個人理解(說的不正確希望大家猛噴),付費界面及邏輯盡量不要給一個單獨的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- <!--?機鋒網?-->??
- ????????<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
?
[java] view plaincopy- 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();??
- ????????????}??
- ????????};??
- ????};??
- }??
?
轉載于:https://www.cnblogs.com/mfrbuaa/p/3852707.html
總結
以上是生活随笔為你收集整理的Android支付接入(五):机锋网的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于mysql字符集及导入导出
- 下一篇: hdu 2028 Lowest Comm