Java 如何获取谷歌游戏订阅费

Java 如何获取谷歌游戏订阅费,java,android,android-billing,Java,Android,Android Billing,我试着谷歌播放订阅账单。代码正在进行支付。但是我想尝试一下,当一个支付成功时,我想捕获支付成本、时间(每月、每年),然后我发送了一个带有ID或令牌的php API。我怎样才能做到这一点 我尝试在PurchaseSupdated上覆盖 public void onPurchasesUpdated(BillingResult billingResult, @Nullable List<Purchase> purchases) { } public void onPurch

我试着谷歌播放订阅账单。代码正在进行支付。但是我想尝试一下,当一个支付成功时,我想捕获支付成本、时间(每月、每年),然后我发送了一个带有ID或令牌的php API。我怎样才能做到这一点

我尝试在PurchaseSupdated上覆盖

public void onPurchasesUpdated(BillingResult billingResult, @Nullable List<Purchase> purchases) {

    }  
public void onPurchasesUpdated(BillingResult BillingResult,@Nullable List purchases){
}  
但它不起作用。我试着祝酒。但这种方法不起作用。
如果可以,我可以用这个方法吗?我如何运行这个方法

 public void openPayment(final Context mContext){
        final List<String> skuList = new ArrayList<>();

        //valueof1MonthMoney,valueof3MonthsMoney,valueof6MonthsMoney,valueof1YearMoney;
        skuList.add("com.yeniasya.enewspaper.subscription.onemonth");
        skuList.add("com.yeniasya.enewspaper.subscription.threemonth");
        skuList.add("com.yeniasya.enewspaper.subscription.sixmonth");
        skuList.add("com.yeniasya.enewspaper.subscription.oneyear");

        SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();



        final AlertDialog.Builder mBuilder = new AlertDialog.Builder(mContext,android.R.style.Theme_DeviceDefault_Light_NoActionBar_Fullscreen);
        LayoutInflater li = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        final View mView = li.inflate(R.layout.popup_payment, null);
        ImageView imvClose=(ImageView)mView.findViewById(R.id.imvClose);
        final TextView tv1MonthMoney = (TextView) mView.findViewById(R.id.tv1MonthMoney);
        final TextView tv3MonthsMoney = (TextView) mView.findViewById(R.id.tv3MonthsMoney);
        final TextView tv6MonthsMoney = (TextView) mView.findViewById(R.id.tv6MonthsMoney);
        final TextView tv1YearMoney = (TextView) mView.findViewById(R.id.tv1YearMoney);
        final TextView tvOpenPrivacy = (TextView) mView.findViewById(R.id.tvOpenPrivacy);
        final LinearLayout linLay1Year = (LinearLayout) mView.findViewById(R.id.linLay1Year);
        final LinearLayout linLay6Months = (LinearLayout) mView.findViewById(R.id.linLay6Months);
        final LinearLayout linLay3Months = (LinearLayout) mView.findViewById(R.id.linLay3Months);
        final LinearLayout linLay1Month = (LinearLayout) mView.findViewById(R.id.linLay1Month);
        mBuilder.setView(mView);
        dialog = mBuilder.create();
        dialog.setCanceledOnTouchOutside(false);
        final SkuDetails[] s = new SkuDetails[4];
        params.setSkusList(skuList).setType(BillingClient.SkuType.SUBS);
        billingClient.querySkuDetailsAsync(params.build(),
                new SkuDetailsResponseListener() {
                    @Override
                    public void onSkuDetailsResponse(BillingResult billingResult,
                                                     List<SkuDetails> skuDetailsList) {
                        // Process the result.
                        s[0] =skuDetailsList.get(0);
                        s[1] =skuDetailsList.get(1);
                        s[2] =skuDetailsList.get(2);
                        s[3] =skuDetailsList.get(3);

                        //  Toast.makeText(mContext, "listeye girdi", Toast.LENGTH_SHORT).show();
                        try {
                            tv1MonthMoney.setText(skuDetailsList.get(0).getPrice());
                            tv1YearMoney.setText(skuDetailsList.get(1).getPrice());
                            tv6MonthsMoney.setText(skuDetailsList.get(2).getPrice());
                            tv3MonthsMoney.setText(skuDetailsList.get(3).getPrice());

                            /*    if(skuDetailsList.get(i).getSku().equals("com.yeniasya.enewspaper.subscription.onemonth"));
                                tv1MonthMoney.setText(skuDetailsList.get(i).getPrice()+"");
                                if(skuDetailsList.get(i).getSku().equals("com.yeniasya.enewspaper.subscription.threemonth"));
                                tv3MonthsMoney.setText(skuDetailsList.get(i).getPrice()+"");
                                if(skuDetailsList.get(i).getSku().equals("com.yeniasya.enewspaper.subscription.sixmonth"));
                                tv6MonthsMoney.setText(skuDetailsList.get(i).getPrice()+"");
                                if(skuDetailsList.get(i).getSku().equals("com.yeniasya.enewspaper.subscription.oneyear"));
                                tv1YearMoney.setText(skuDetailsList.get(i).getPrice()+"");  */



                            // Toast.makeText(mContext, skuDetailsList.get(i).getSku()+"", Toast.LENGTH_SHORT).show();


                        }catch (Exception e){

                        }



                    }
                });







        dialog.show();
        imvClose.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.dismiss();
            }
        });

        linLay1Year.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                takeMoney(s[1]);
            }
        });
        linLay1Month.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                takeMoney(s[0]);

            }
        });
        linLay3Months.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                takeMoney(s[3]);

            }
        });
        linLay6Months.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                takeMoney(s[2]);
            }
        });

        tvOpenPrivacy.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try{
                    Intent i = new Intent(Intent.ACTION_VIEW);
                    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    i.setData(Uri.parse(mcontext.getString(R.string.PrivacyPolicyUrl)));
                    mcontext.startActivity(i);}catch (Exception e){}
            }
        });

    }


    private void takeMoney(SkuDetails skuDetails){
        BillingFlowParams flowParams = BillingFlowParams.newBuilder()
                .setSkuDetails(skuDetails)
                .build();
        billingClient.launchBillingFlow(MainActivity.mActivity,flowParams);
        // Toast.makeText(mContext, "bastın3", Toast.LENGTH_SHORT).show();

    }

    @Override
    public void onPurchasesUpdated(BillingResult billingResult, @Nullable List<Purchase> purchases) {

    }
public void openPayment(最终上下文mContext){
最终列表skuList=新的ArrayList();
//一个月的货币价值、三个月的货币价值、六个月的货币价值、一年的货币价值;
skuList.add(“com.yeniasya.enewspaper.subscription.onemonth”);
skuList.add(“com.yeniasya.enewspaper.subscription.threemonth”);
skuList.add(“com.yeniasya.enewspaper.subscription.sixmonth”);
skuList.add(“com.yeniasya.enewspaper.subscription.oneyear”);
SkuDetailsParams.Builder params=SkuDetailsParams.newBuilder();
final AlertDialog.Builder mBuilder=新建AlertDialog.Builder(mContext、android.R.style.Theme\u DeviceDefault\u Light\u NoActionBar\u全屏);
LayoutInflater li=(LayoutInflater)mContext.getSystemService(Context.LAYOUT\u INFLATER\u SERVICE);
最终视图mView=li.充气(R.layout.popup\u付款,空);
ImageView imvClose=(ImageView)mView.findViewById(R.id.imvClose);
最终文本视图TV1MonthMonthMoney=(文本视图)mView.findViewById(R.id.TV1MonthMonthMonthMoney);
最终文本视图tv3MonthsMoney=(文本视图)mView.findViewById(R.id.tv3MonthsMoney);
最终文本视图tv6MonthsMoney=(文本视图)mView.findViewById(R.id.tv6MonthsMoney);
最终文本视图tv1YearMoney=(文本视图)mView.findViewById(R.id.tv1YearMoney);
最终文本视图tvOpenPrivacy=(文本视图)mView.findViewById(R.id.tvOpenPrivacy);
最终线性布局linLay1Year=(线性布局)MVView.findViewById(R.id.linLay1Year);
最终线性布局linLay6Months=(线性布局)mView.findViewById(R.id.linLay6Months);
最终线性布局Linlay3个月=(线性布局)mView.findViewById(R.id.Linlay3个月);
最终线性布局linLay1Month=(线性布局)mView.findViewById(R.id.linLay1Month);
mBuilder.setView(mView);
dialog=mBuilder.create();
对话框。setCanceledOnTouchOutside(false);
最终SkuDetails[]s=新SkuDetails[4];
参数setskulist(skuList).setType(BillingClient.SkuType.SUBS);
billingClient.querySkuDetailsAsync(params.build(),
新SkuDetailsResponseListener(){
@凌驾
公共无效详细信息响应(BillingResult BillingResult,
列表(详细信息列表){
//处理结果。
s[0]=skuDetailsList.get(0);
s[1]=skuDetailsList.get(1);
s[2]=skudailslist.get(2);
s[3]=skudailslist.get(3);
//Toast.makeText(mContext,“listeye girdi”,Toast.LENGTH_SHORT.show();
试一试{
Tv1MonMonthMoney.setText(skuDetailsList.get(0.getPrice());
tv1YearMoney.setText(skuDetailsList.get(1.getPrice());
tv6MonthsMoney.setText(skutailslist.get(2.getPrice());
tv3MonthsMoney.setText(skutailslist.get(3.getPrice());
/*if(skudailslist.get(i).getSku().equals(“com.yeniasya.enewspaper.subscription.onemonth”);
tv1monmonthmoney.setText(skutailslist.get(i.getPrice()+);
if(skudailslist.get(i).getSku().equals(“com.yeniasya.enewspaper.subscription.threemonth”);
tv3MonthsMoney.setText(skutailslist.get(i.getPrice()+);
if(skudailslist.get(i).getSku().equals(“com.yeniasya.enewspaper.subscription.sixmonth”);
tv6MonthsMoney.setText(skutailslist.get(i.getPrice()+);
if(skudailslist.get(i).getSku().equals(“com.yeniasya.enewspaper.subscription.oneyear”);
tv1YearMoney.setText(skuDetailsList.get(i.getPrice()+)*/
//Toast.makeText(mContext,skutailslist.get(i).getSku()+“”,Toast.LENGTH_SHORT).show();
}捕获(例外e){
}
}
});
dialog.show();
imvClose.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
dialog.dismise();
}
});
linLay1Year.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
takeMoney(s[1]);
}
});
linLay1Month.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
takeMoney(s[0]);
}
});
linLay3Months.setOnClickListener(新视图.OnClickListener()中){
@凌驾
公共void onClick(视图v){
takeMoney(s[3]);
}
});
linLay6Months.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
takeMoney(s[2]);
}
});
tvOpenPrivacy.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
试一试{
意向i=新意向(意向.行动\视图);
i、 addFlags(