티스토어 IAP 구매

Android 2015. 8. 14. 12:15

sendPaymentRequest 파라미터에

product_id=0910?????&appid=OA00??????&product_name=광고제거&tid=&bpinfo=

이런 형식으로 파라미터를 보내주면 구매가 된다



     private Handler mUiHandler = new Handler() {


        @Override

        public void handleMessage(Message msg) {

            if (msg.what == 100) {

                PaymentFragment.this.mLog.setText((String) msg.obj);

            }

            else if (msg.what == 101) {

                final Response response = (Response) msg.obj;

                JSONObject json = new JSONObject();

                try {

                    json.put("appid", mAid.getText().toString().toUpperCase());

                    json.put("txid", response.result.txid);

                    Log.d("Receipt", response.result.receipt.length() + " is the receipt ");

                    json.put("signdata", response.result.receipt);

                } catch (JSONException e) {

                    e.printStackTrace();

                    PaymentFragment.this.mLog

                            .setText("Failed while composing json data for verification receipt.");

                }

                

                ReceiptConfirm rc = new ReceiptConfirm();

                rc.execute((String) json.toString());

            } else if (msg.what == 200) {

                Toast.makeText(PaymentFragment.this.getActivity(), (String) msg.obj,

                        Toast.LENGTH_SHORT).show();

            }

        }

    };

private boolean requestPayment() {

   

        String parameter = makeRequest();

        mUiHandler.obtainMessage(100, parameter).sendToTarget();

        Log.i("IAP", parameter);

//        08-14 12:11:25.964: I/IAP(18268): product_id=0910035790&appid=OA00691495&product_name=광고제거&tid=&bpinfo=


        Bundle req = mPlugin.sendPaymentRequest(parameter,

                new IapPlugin.RequestCallback() {

       

                    @Override

                    public void onResponse(IapResponse data) {

                        if (data == null || data.getContentLength() <= 0) {

                            // TODO Unusual error

                            mUiHandler.obtainMessage(100,

                                    "onResponse() response data is null")

                                    .sendToTarget();

                            return;

                        }

                        

                        // 1. JSON �곗씠�곕� �듯븳 媛앹껜 蹂�솚 �ъ슜 ��original

                        Response response = ConverterFactory.getConverter().fromJson(

                                data.getContentToString());


                        String responseString = data.getContentToString();

                        Logger.v("Response String : "+responseString);



                        if (response == null) {

                            // TODO invalid response data

                            mUiHandler.obtainMessage(100,

                                    "onResponse() invalid response data")

                                    .sendToTarget();

                            return;

                        }


                        // TODO for logging

                        StringBuffer sb = new StringBuffer("onResponse() \n");

                        sb.append("From:" + data.getContentToString())

                                .append("\n")

                                .append("To:" + response.toString());

                        mUiHandler.obtainMessage(100, sb.toString()).sendToTarget();

                

                        // response.result.code

                        if (!response.result.code.equals("0000")) {

                            mUiHandler.obtainMessage(200,

                                    "Failed to request to purchase a item")

                                    .sendToTarget();

                            return;

                        }

                        // response.result.txid

                        // response.result.receipt

                        mUiHandler.obtainMessage(101, response).sendToTarget();


                    }


                    @Override

                    public void onError(String reqid, String errcode,

                            String errmsg) {

                        // TODO Error occurred

                        mUiHandler.obtainMessage(100, "onError() identifier:" + reqid + " code:" + errcode + " msg:" + errmsg)

                        .sendToTarget();

                    }

                });

        

        if (req == null) {

            // TODO request failure

            return false;

        }


        mRequestId = req.getString(IapPlugin.EXTRA_REQUEST_ID);

        if (mRequestId == null || mRequestId.length() == 0) {

            // TODO request failure

            return false;

        }


        return true;

    }



Posted by 에브리피플
,