GVKun编程网logo

如何在同一订阅组中使用 Apple In-App Purchase 对订阅计划进行排名?(app store订阅项目)

3

在本文中,我们将带你了解如何在同一订阅组中使用AppleIn-AppPurchase对订阅计划进行排名?在这篇文章中,我们将为您详细介绍如何在同一订阅组中使用AppleIn-AppPurchase对订

在本文中,我们将带你了解如何在同一订阅组中使用 Apple In-App Purchase 对订阅计划进行排名?在这篇文章中,我们将为您详细介绍如何在同一订阅组中使用 Apple In-App Purchase 对订阅计划进行排名?的方方面面,并解答app store订阅项目常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j、AIDL 到 Google Play Billing Library In App Purchase、Android In-App Purchase onPurchaseStateChange未调用、angular – ng new hello错误:路径“/app/app.module.ts”不存在.路径“/app/app.module.ts”不存在

本文目录一览:

如何在同一订阅组中使用 Apple In-App Purchase 对订阅计划进行排名?(app store订阅项目)

如何在同一订阅组中使用 Apple In-App Purchase 对订阅计划进行排名?(app store订阅项目)

如何解决如何在同一订阅组中使用 Apple In-App Purchase 对订阅计划进行排名?

我们正在尝试升级和降级苹果应用内购买中的订阅计划。 所有计划都在一个订阅组中,具有不同的价格和持续时间。

我们的应用有应用内购买和自动更新订阅。 购买订阅后 1- 我选择降级到另一个产品 我收到一个弹出窗口,询问我是否要升级并将获得退款。我按确认

2-一段时间后,我选择升级到更高的订阅 我收到一个弹出窗口,询问我是否要修改我的订阅,订阅计划将开始,当当前订阅到期时,我们将向您收费

我们遵循了以下文档。 https://developer.apple.com/app-store/subscriptions/#ranking

不过,我们对苹果开发者文档中关于订阅计划排名的内容有点不清楚。

谁能建议,如何设置订阅计划的排名?

解决方法

我想您以错误的顺序配置了订阅,因为升级应该立即取消您当前的订阅,而降级应该等待下一个续订日期。

这是一个配置示例:

subscription group configuration

更高的计划是“黄金”。

所以:

  • 当您从 Silver 更改为 Bronze 时,您必须等到下一个续订日期
  • 当您从 Silver 更改为 Gold 时,您的订阅将立即取消并更改为 Gold

ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j

ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j

如何解决ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j

我正在Rails上执行此应用程序,页面加载正常,但在控制台中显示:

Started GET "/vendor/assets/stylesheets/bootstrap.min.css" for ::1 at 2020-08-17 09:09:51 -0500

Started GET "/vendor/assets/javascripts/bootstrap.min.js" for ::1 at 2020-08-17 09:09:51 -0500
ActionController::RoutingError (No route matches [GET] 
"/vendor/assets/stylesheets/bootstrap.min.css"):
ActionController::RoutingError (No route matches [GET] 
"/vendor/assets/javascripts/bootstrap.min.js"):

在我的供应商文件夹中,我同时拥有文件夹,javascript和样式表,并分别位于各自的bootsrtrap.min中。 即使在application.html.erb中,我也有以下内容:

  <link href="vendor/assets/stylesheets/bootstrap.min.css" rel="stylesheet">
  <%= csrf_Meta_tags %>
  <%= stylesheet_link_tag    ''application'',media: ''all'',''data-turbolinks-track'': ''reload'' %>
  <%= javascript_include_tag ''application'',''data-turbolinks-track'': ''reload'' %>

</head>
<body>

  <!-- Navigation -->
  <nav>
    <div>
      <ahref="#">Instagram Clone</a>
      <buttontype="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
        <span></span>
      </button>
      <divid="navbarResponsive">
        <ul>
          <li>
            <ahref="#">Home
              <span>(current)</span>
            </a>
          </li>
          <li>
            <ahref="#">About</a>
          </li>
          <li>
            <ahref="#">Services</a>
          </li>
          <li>
            <ahref="#">Contact</a>
          </li>
        </ul>
      </div>
    </div>
  </nav>

  <!-- Page Content -->
  <div>
    <div>
      <div>
        <%= yield %>
      </div>
    </div>
  </div>

  <!-- Bootstrap core JavaScript -->
  <!--<script src="vendor/jquery/jquery.slim.min.js"></script>-->
  <script src="vendor/assets/javascripts/bootstrap.min.js"></script>
    
</body>
</html>

在js和CSS这两个应用程序文件中,我都放置了“ require bootsrtrap.min”,即使该错误仍然出现在控制台中。 会是什么?

解决方法

RoR不使用目录作为文件夹结构指示。因为有资产装载者。您应该将5s或更少的css导入application.css中,并将js导入application.js中。并使用自己的助手添加捆绑文件:

1。用纱安装靴子

yarn add bootstrap @popperjs/core jquery

npm i bootstrap @popperjs/core jquery

栏位不超过5

2。在Assets Pipeline中导入文件

app / assets / stylesheets / application.css:

//...
require bootstrap/dist/css/bootstrap.min
//...

但是,如果需要,我建议使用SCSS并仅导入所需的样式。

app / assets / javascript / application.js:

//...
//= require jquery
//= require @popperjs/core
//= require bootstrap/dist/js/bootstrap.min
//...

3。在布局中导入资产

app / views / layout / application.html.erb:

<head>
...
  <%= stylesheet_link_tag ''application'',media: ''all'' %>
</head>
<body>
...
  <%= javascript_include_tag ''application'' %>
</body>

使用webpack滚动6

2。在application.scss和application.js中导入Bootstrap

app / javascript / stylesheets / application.scss:

//...
import ''bootstrap''
//...

app / javascript / packs / application.js:

import ''jquery''
import ''popper.js''
import ''bootstrap''
import ''../stylesheets/application''

3。在布局中导入捆绑包

<head>
...
  <%= stylesheet_pack_tag ''application'',media: ''all'',''data-turbolinks-track'': ''reload'' %>
  <%= javascript_pack_tag ''application'',''data-turbolinks-track'': ''reload'' %>
</head>

之后,您应该可以在所有应用程序中使用引导程序!

,

[解决方案]因此,在我的HTML(application.html.erb)内部,我有两个对js和css文件的调用:

<script src="assets/javascripts/bootstrap.min.js"></script>
  <%= javascript_include_tag ''application'',''data-turbolinks-track'': ''reload'' %>       
<link href="assets/stylesheets/bootstrap.min.css" rel="stylesheet">
  <%= csrf_meta_tags %>
  <%= stylesheet_link_tag    ''application'',''data-turbolinks-track'': 
  ''reload'' %>

正如您在上面看到的那样,在使用javascript的情况下,我有一个使用脚本的调用,而另一个使用了的调用,两者都造成了问题,所以您只需要评论一个,我就对该脚本进行评论对于我的java文件和CSS文件,一个。 像这样:

  <!--<link href="assets/stylesheets/bootstrap.min.css" rel="stylesheet">-->
    <!--<script src="assets/javascripts/bootstrap.min.js"></script>-->

对我来说,解决了这个问题,我真的尝试了所有事情,这就是解决方案哈哈。

AIDL 到 Google Play Billing Library In App Purchase

AIDL 到 Google Play Billing Library In App Purchase

如何解决AIDL 到 Google Play Billing Library In App Purchase

我正在尝试将我在 AIDL 中的应用内购买迁移到新的结算库版本 3,以满足新的 Google 要求。

在 AIDL 中,有一个 base64EncodedPublicKey 用于识别我的应用。 Billing Library 版本中是否有等效版本?我正在创建一个测试类,通过单击按钮来启动支付流程,但下面的代码似乎不起作用。当我点击按钮时什么也没有发生。

 public class MainActivity extends AppCompatActivity implements PurchasesUpdatedListener {
private Button buyButton;
private BillingClient billingClient;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    buyButton = (Button) findViewById(R.id.buy);

    billingClient = BillingClient.newBuilder(this)
            .setListener(this)
            .enablePendingPurchases()
            .build();

    billingClient.startConnection(new BillingClientStateListener() {
        @Override
        public void onBillingSetupFinished(BillingResult billingResult) {
            if (billingResult.getResponseCode() ==  BillingClient.BillingResponseCode.OK) {
                // The BillingClient is ready. You can query purchases here.
                loadAllSKUs();
            }
        }
        @Override
        public void onBillingServicedisconnected() {
            // Try to restart the connection on the next request to
            // Google Play by calling the startConnection() method.
        }
    });

}

@Override
public void onPurchasesUpdated(BillingResult billingResult,List<Purchase> purchases) {
    if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK
            && purchases != null) {
        for (Purchase purchase : purchases) {
            handlePurchase(purchase);
        }
    } else if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.USER_CANCELED) {
        // Handle an error caused by a user cancelling the purchase flow.
    } else {
        // Handle any other error codes.
    }
}

public void handlePurchase(Purchase purchase) {
    if (purchase.getPurchaseState() == Purchase.PurchaseState.PURCHASED) {
        if(!purchase.isAckNowledged())
        {
            AckNowledgePurchaseParams ackNowledgePurchaseParams
                    = AckNowledgePurchaseParams.newBuilder()
                    .setPurchasetoken(purchase.getPurchasetoken())
                    .build();

            billingClient.ackNowledgePurchase(ackNowledgePurchaseParams,new AckNowledgePurchaseResponseListener() {
                @Override
                public void onAckNowledgePurchaseResponse(BillingResult billingResult) {
                    if(billingResult.getResponseCode()== BillingClient.BillingResponseCode.OK){
                    }
                }
            });
        }
    }
}


private void loadAllSKUs() {
    if (billingClient.isReady()) {
        List<String> skuList = new ArrayList<>();
        skuList.add("4");
        SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
        params.setSkusList(skuList).setType(BillingClient.SkuType.SUBS);
        billingClient.querySkuDetailsAsync(params.build(),new SkuDetailsResponseListener() {
                    @Override
                    public void onSkuDetailsResponse(BillingResult billingResult,List<SkuDetails> skuDetailsList) {
                        Log.d("Testing","testing2");
                        Log.d("Testing",String.valueOf(skuDetailsList.size()));
                        for (SkuDetails skuDetails : skuDetailsList) {
                            if (skuDetails.getSku() == "4")
                                //if (skuDetails.getSku() == "4")
                                buyButton.setonClickListener(new View.OnClickListener() {
                                    public void onClick(View v) {
                                        //DO SOMETHING! {RUN SOME FUNCTION ... DO CHECKS... ETC}
                                        BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder()
                                                .setSkuDetails(skuDetails)
                                                .build();
                                        int responseCode = billingClient.launchBillingFlow(MainActivity.this,billingFlowParams).getResponseCode();
                                    }
                                });
                        }
                    }
                });
    } else {
        Log.d("Testing","not ready");
    }
}
}

以下是xml文件

  <?xml version="1.0" encoding="utf-8"?>
 <androidx.constraintlayout.widget.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<Button
    android:id="@+id/buy"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

 </androidx.constraintlayout.widget.ConstraintLayout>

Android In-App Purchase onPurchaseStateChange未调用

Android In-App Purchase onPurchaseStateChange未调用

如何解决Android In-App Purchase onPurchaseStateChange未调用

|| 我正在尝试实施android应用内购买。 尝试使用静态产品ID测试示例应用内应用程序时未调用onPurchaseStateChange()。 我应该如何知道该产品是否已购买?     

解决方法

如果您遵循正确的开发指南,则清单属性似乎存在问题。 市场活动显示吗? 检查清单文件中是否提到了服务和接收人(我认为是)。     

angular – ng new hello错误:路径“/app/app.module.ts”不存在.路径“/app/app.module.ts”不存在

angular – ng new hello错误:路径“/app/app.module.ts”不存在.路径“/app/app.module.ts”不存在

我在角度创建新项目时面临问题.
当我运行新的myapp命令时,我得到以下命令

新的你好

Error: Path "/app/app.module.ts" does not exist.
Path "/app/app.module.ts" does not exist.

谁能帮我吗???

解决方法

这是解决方案

Please make sure that your new folder have write permission

如果您使用的是ubuntu,请将以下命令运行到该文件夹

sudo chmod 644 -R foldername

然后运行新的appname

并检查您的节点版本

今天关于如何在同一订阅组中使用 Apple In-App Purchase 对订阅计划进行排名?app store订阅项目的介绍到此结束,谢谢您的阅读,有关ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j、AIDL 到 Google Play Billing Library In App Purchase、Android In-App Purchase onPurchaseStateChange未调用、angular – ng new hello错误:路径“/app/app.module.ts”不存在.路径“/app/app.module.ts”不存在等更多相关知识的信息可以在本站进行查询。

本文标签:

上一篇SAP Marketing Cloud 功能概述(二)(sap consumer industry cloud)

下一篇过滤搜索中的 Flutter App 显示列表(flutter搜索功能)