String.Contains 메소드 사용.


string s1 = "Hello I'm blow";

stirng s2 = "blow";


if(s1.Contains(s2)) {

// 포함.

}else {

// 불포함.

}



WRITTEN BY
블로blow
iOS 개발자 생활이야기

트랙백  2 , 댓글  2개가 달렸습니다.
  1. 감성교육 2014.10.21 13:09
    edufeeling@naver.com 으로 초대장좀 부탁드려도 될까요?
secret





2D UI는 씬에 게임오브젝트가 생기는데, 여기엔 핵심적인 2개의 컴포넌트가 연결되어 있다.

1. UIRoot

위젯을 작업하기에 적합한 크기로 줄여주는 역할을 하고, Scaling Style를 담당한다.

Scaling Style에서 텍스처의 픽셀상의 본래 크기를 유지하는 Pixel perfect가 있고, 

파라미터에 지정한 값에 따라 화면에서 비율을 유지하는 방식인 FixedSize가 있다.



2. UICamera

버튼에 붙어있는 충돌체처럼, 각 UI요소에서 발생하는 이벤트와 관련된 메세지를 보내는것이 주된 기능이다.

OnClick()이나 OnHover()등의 메소드가 있다.


파라미터

EventType : 카메라가 처리할 이벤트 유형을 결정한다.

EventMask : 이벤트를 받아들일 레이어를 지정한다.

Debug : 디버그 모드의 사용여부, UI가 의도하지 않은 방식으로 작동할 때, 유용하다.

AllowMultiTouch : 멀티 터치 입력의 허용 여부를 결정한다.

Sticky Tooltip : 사용여부 결정.

Raycast Range : 특정 지점에서 특정 방향으로 소는, 보이지 않는 가상의 선이다. 중간에 다른 오브젝트와 만날 경우 진행을 멈춘다. 충돌체를 감지한 카메라는 이벤트를 처리하기 위해 마우스나 터치 입력이 발생하는 지점에서부터 정면을 향해 가상선을 그린다. 이 때 가상선의 진행 범위를 제한하면 상호작용이 발생하는 영역을 한정 할 수 있다. 기본값이 -1을 사용하면 카메라가 볼 수 있는 영역까지 가상선의 범위가 미친다.


3. UIAnchor

카메라 뷰 상에서 게임오브젝트를 이정한 지점에 고정시키기 위해 사용한다.


4. UIPanel

Panel의 목적은 위젯을 모아서 관리하고, 하나의 드로우콜로 렌더링하는 것.



WRITTEN BY
블로blow
iOS 개발자 생활이야기

트랙백  0 , 댓글  0개가 달렸습니다.
secret





유니빌에서 결제를 정상적으로 완료하고 나면,


private void onPurchased(PurchasableItem item);


함수를 호출하게 됩니다.

그럼 이 함수 안에서,

json과 signature의 값을 다음과 같이 알아냅니다.



private void onPurchased(PurchasableItem item) {

string[] receiptList = Unibiller.GetAllPurchaseReceipts(item);
string receipt = receiptList[receiptList.Length-1];

Dictionary<stringobjectjsonFullDic = (Dictionary<stringobject>)CMiniJSON.Json.Deserialize(receipt);
foreach (KeyValuePair<stringobjectpair in jsonFullDic) {
    //Debug.Log(pair.Value);
    if(pair.Key == "json") {
        purchaseJson = pair.Value.ToString();
    }
    else if (pair.Key == "signature"{
        signature = pair.Value.ToString();
    }
}

}




알게된, purchaseJson과 signature를 서버로 보내 PHP로 확인합니다.



public function verifycheck($json = '', $signature = "") {

//json 확인.

 $data = json_decode($json,true);

        $data = json_encode($data);


//$key 만들기.

//이 값은, play.google.com/apps/publish에서, 자신의 앱에서 서비스및 API->라이선스 및 인앱결제 -> 이 애플리케이션용 라이선스 키에서 찾을수 있습니다.


$publicKey = "MIIBIjANBg5CLWp0IwIDAQAB"; 

        $key = "-----BEGIN PUBLIC KEY-----\n";

 $key .= chunk_split($publicKey, 64, "\n");

 $key .= "-----END PUBLIC KEY-----";

        $key = openssl_get_publickey($key);


//key 확인.

        if (false === $key) {

                exit("error openssl_get_publickey");

        }


//openssl_verify를 이용해 검수.

        $result = openssl_verify($data, base64_decode($signature), $key);

        

//확인.

        if ($result == 1) {

                //echo "good";

        } else if ($result == 0) {

                //echo "bad";

        } else {

                //echo "error";

        }

        

        return $result;

}



원본 : http://blog.evendanan.net/2012/03/In-App-Purchase-Verification-using-PHP-OR-Making-sure-you-ain-t-getting-ripped-off-PHP-style



WRITTEN BY
블로blow
iOS 개발자 생활이야기

트랙백  0 , 댓글  0개가 달렸습니다.
secret