日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

苹果内购挖坑实录

發(fā)布時間:2023/12/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 苹果内购挖坑实录 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1 ?首先第一步 去蘋果官網(wǎng)配置各個參數(shù) ?Itunes connect? 然后配置各個參數(shù)。 ?點擊打開鏈接? 這里有詳細(xì)的方式啦 ?配置的時候,有個銀行卡的信息 需要百度查一個什么碼什么的。

2 ?然后添加app ?,添加內(nèi)購項目, 這里有個坑。包名一定要com.xxx.xxx.xxx ? 否則 彈不出購買框

3 ?下面就是在unity啦, 使用再帶的插件5.5版本的 ?Ctrl+0 彈出service

選擇這個然后,點擊improt

4 ?支持導(dǎo)入了自動購買插件 ,然后新鍵腳本,來處理邏輯響應(yīng)

?

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; using System.IO; using System; using UnityEngine.Purchasing; using UnityEngine.Purchasing.Extension; using UnityEngine.Store; #if UNITY_IPHONE || UNITY_IOS using UnityEngine.Purchasing.Security; using System.Runtime.InteropServices;public class IAP : MonoBehaviour , IStoreListener { // [DllImport("__Internal")] // private static extern void _InitLogin(); // [DllImport("__Internal")] // private static extern void _Login(); // [DllImport("__Internal")] // private static extern void _LoginOut(); private bool bInitStore = false;private static IAP iap = null;private IStoreController controller;// Use this for initializationvoid Start () {if (iap == null) iap = this; #if UNITY_IOS || UNITY_IPHONE//InitStore();////_InitLogin(); #endif}public static IAP GetInstance(){return iap;}private void InitStore(){ConfigurationBuilder builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());builder.AddProduct("com.jiuying.twelveAnimal.6", ProductType.Consumable);builder.AddProduct("com.jiuying.twelveAnimal.12", ProductType.Consumable);builder.AddProduct("com.jiuying.twelveAnimal.18", ProductType.Consumable);builder.AddProduct("com.jiuying.twelveAnimal.30", ProductType.Consumable);builder.AddProduct("com.jiuying.twelveAnimal.45", ProductType.Consumable);builder.AddProduct("com.jiuying.twelveAnimal.73", ProductType.Consumable);builder.AddProduct("com.jiuying.twelveAnimal.348", ProductType.Consumable);builder.AddProduct("com.jiuying.twelveAnimal.88", ProductType.Consumable);UnityPurchasing.Initialize(this, builder);NetMngr.GetSingleton().MyTransmit.AddEventListener("doIosRequest", ChargeCallBack);NetMngr.GetSingleton().MyTransmit.AddEventListener("chargeComplete", ChargeCompleteCallBack);}public void OnInitialized(IStoreController controller, IExtensionProvider extensions) {this.controller = controller;bInitStore = true;}public void OnInitializeFailed(InitializationFailureReason error) {Debug.Log("OnInitializeFailed "+error.ToString());bInitStore = false;}public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e){ Debug.Log("購買回調(diào) "+ e.purchasedProduct.receipt);Dictionary<string, object> obj = MiniJSON.Json.Deserialize(e.purchasedProduct.receipt) as Dictionary<string, object>;validate(obj["TransactionID"].ToString(), obj["Payload"].ToString());return PurchaseProcessingResult.Complete;}public void OnPurchaseFailed(Product item, PurchaseFailureReason r) {Debug.Log(item+" 購買失敗 OnPurchaseFailed"+ r.ToString());//啟用SystemModel.GetSingleton().eventSystem.SetActive(true);}public void OnPurchaseClicked(string productId){if(!bInitStore){InitStore();return;}//_id = id;Debug.Log("開始購買!");controller.InitiatePurchase(productId);} #regionint _id = 0;public void Callback_productid(string productid){Debug.Log("nbnbnbnbnbnbnbnbnbnbnb" + "Callback_productidSignID :" + productid); // GoldShopData_IOS[] data = GoldShopDataManager_IOS.Instance.GetAllItem(); // for(int i = 0; i < data.Length; ++ i) // { // if(data[i].iosid == productid) // { // _id = data[i].id; // break; // } // }Debug.Log("nbnbnbnbnbnbnbnbnbnbnb" + "服務(wù)器要的ID :" + _id);}string _rece;public void CallBackRece(string str){_rece = str;Debug.Log("xxxxxxxxxxxxxx" + "Callback_SignID :" + str);}public void Callback(string str){//NetRequest.Send_ios_pay_sign(_id,str,_rece);Debug.Log("xxxxxxxxxxxxxx" + "Callback_SignID :" + str);}public void InitLogin(){//_InitLogin();Debug.Log("xxxxxxxxxxxxxx" + "IOS_Login ");}public void Login(){// _Login();}private string loginID;public void GetLoginID(string id){ // ClientLog.Instance.LogError("id ===="+id);loginID = id;}public void LoginCallBack(string token){ // AccountCtrl.Instance.m_LogOnView.LoginSDKFinish(); // CommonDefines._Account = SystemInfo.deviceUniqueIdentifier; // MyNetWork.Close(); // MyNetWork.ConnectServer(CommonDefines._loginIp, CommonDefines._loginPort, () => { // NetRequest.Send_Login_Msg(loginID,token,SystemInfo.deviceUniqueIdentifier); // });Debug.LogError("登錄成功,進入游戲");}public void LoginOut(){// _LoginOut();} #endregionpublic void validate(string id,string msg){object[] param = new object[]{id,msg};Debug.Log(id+"====="+msg);NetMngr.GetSingleton().SendMessage("user/doIosRequest",param, false);}private void ChargeCallBack(object[] args){//啟用SystemModel.GetSingleton().eventSystem.SetActive(true);Dictionary<string, object> obj = args[0] as Dictionary<string, object>;if (!(bool)obj["success"]){SoundController.GetSingleton().StartPlay(Config.SOUND_BAD);PopupRemind.GetRemind().ShowRemind((string)obj["message"]);}}private void ChargeCompleteCallBack(object[] args){//啟用SystemModel.GetSingleton().eventSystem.SetActive(true);SoundController.GetSingleton().StartPlay("Sound/System/buySuccess");Dictionary<string, object> obj = args[0] as Dictionary<string, object>;int types = (int)obj["type"];int diamond = (int)obj["newDiamondNum"];string gold = (string)obj["newGoldNum"];if (types == 0){SystemModel.GetSingleton().user.vip = 1;UIManager.GetUIManager().mainView.SetVIPImage();PopupRemind.GetRemind().ShowRemind("禮包購買成功,可至背包中查看", null);}else{PopupRemind.GetRemind().ShowRemind("充值成功", null);}UIManager.GetUIManager().SetDiamondText(diamond);SystemModel.GetSingleton().user.diamondNum = diamond;SystemModel.GetSingleton().user.goldNum = gold;UIManager.GetUIManager().SetGoldText(SystemModel.GetSingleton().user.GetGoldStr());// UIManager.GetUIManager().HideTwoAlpha(this.gameObject);}void Update(){if (Input.GetKeyDown(KeyCode.A)){Debug.Log("A 按下了");StreamReader sr = File.OpenText(Application.dataPath + "/a.txt");string input = sr.ReadToEnd();sr.Dispose();sr.Close();Debug.Log(input);Dictionary<string, object> obj = MiniJSON.Json.Deserialize(input) as Dictionary<string, object>;Debug.Log(obj["TransactionID"] + " "+obj["Payload"]);validate(obj["TransactionID"].ToString(), obj["Payload"].ToString());}}} #endif

1 ?初始化商品(注意包名)

?

2 ? 購買商品

public void OnPurchaseClicked(string productId)
{
if(!bInitStore)
{
InitStore();
return;
}
? ? ? ? //_id = id;
? ? ? ? Debug.Log("開始購買!");
controller.InitiatePurchase(productId);
}

3 ?購買后,蘋果給的回調(diào)。這里需要把這個數(shù)據(jù),拿到蘋果驗證

public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e)
{?
Debug.Log("購買回調(diào) "+ e.purchasedProduct.receipt);
? ? ? ? Dictionary<string, object> obj = MiniJSON.Json.Deserialize(e.purchasedProduct.receipt) as Dictionary<string, object>;
? ? ? ? validate(obj["TransactionID"].ToString(), obj["Payload"].ToString());


? ? ? ? return PurchaseProcessingResult.Complete;
}

4 ?后端驗證的坑:

如果上線App Store,拿到數(shù)據(jù),需要先到正式服驗證,根據(jù)返回碼再到測試服驗證!

否則蘋果不讓上架,具體可以參考這個文章

http://blog.csdn.net/zzzzzdddddxxxxx/article/details/53220098點擊打開鏈接

總結(jié)

以上是生活随笔為你收集整理的苹果内购挖坑实录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久伊人色 | 亚洲影音先锋 | 日本美女上床 | 亚洲国产成人一区二区 | 手机av网址 | 国产探花精品在线 | 国产人妻aⅴ色偷 | 三区在线视频 | 日韩国产精品视频 | 国产精品国产三级国产专区53 | 久久久亚洲一区 | 中文字幕日韩国产 | 亚洲成人日韩在线 | 日日射日日操 | 久久久国产成人 | 在线播放91 | 国产精品麻豆果冻传媒在线播放 | 亚洲第一偷拍 | av小说免费在线观看 | 女人被狂躁60分钟视频 | 亚洲av成人精品毛片 | 人妻少妇一区二区 | 在线免费观看黄网 | 超碰com| 一级特黄色 | 亚洲国产区 | 国产精品3 | 日韩成人av网站 | 蜜桃臀av在线 | 91精品久久久久久综合五月天 | 天天狠狠 | 欧美高清不卡 | 成人免费播放 | av在线不卡免费看 | 99久久久无码国产精品 | 国产在线一区二区视频 | ass精品国模裸体pics | 337p粉嫩色噜噜噜大肥臀 | 亚洲激情第一页 | 亚洲美女屁股眼交3 | 一区二区伦理片 | 亚洲一区二区三区激情 | 91大神在线免费观看 | 国产精品一区二区三区免费看 | 黑人中文字幕一区二区三区 | 黄色av网站免费在线观看 | 91视频网址 | 久久99久久久 | 国产av人人夜夜澡人人爽 | 亚洲aaaaaa| 久久国产精彩视频 | 777精品伊人久久久久大香线蕉 | 激情啪啪网站 | 国产精品亚洲二区在线观看 | 老司机亚洲精品 | 天天干天天摸 | 亚洲人 女学生 打屁股 得到 | 日韩av.com| 日本精品一区在线观看 | 国产精品不卡av | 日韩av黄色片 | 亚洲综合激情五月久久 | 丰满熟妇人妻av无码区 | 国产网友自拍 | 中国黄色录像 | 一区二区三区四区免费观看 | 久久国产精品99久久人人澡 | 男人添女人囗交视频 | 国产精品手机在线 | 四虎影视免费永久观看在线 | 欧美精品在线观看一区二区 | 国产天堂 | 四虎影裤 | 亚洲欧美综合另类自拍 | 在线观看视频二区 | 婷婷丁香一区二区三区 | av一二三四区 | 国产精品久久色 | 国产精品理伦片 | 不卡的一区二区 | 91网站在线免费观看 | 日本在线第一页 | 日韩亚射吧 | 自拍第一页| 人人爱人人搞 | 黄色的网站免费观看 | 毛片在线免费播放 | 91香蕉嫩草 | 麻豆av免费观看 | 午夜影院污 | 爱av导航 | 大乳村妇的性需求 | 欧美日韩在线视频一区 | 日韩免费电影一区 | 日本人做受免费视频 | 欧美精品二区三区 | 国产女优在线播放 | 青青导航 | 国产原创在线观看 |