我很难理解为什么我在Google Play开发者控制台中几乎所有(90%)的活动订阅都处于“待付款”状态,尽管订阅已超出试用期和宽限期,并且订阅状态为“活性”。
我尝试自己支付订阅费用,并且一切正常。
有谁知道是什么原因造成的?任何提示都欢迎。
android subscriptions google-play in-app-subscription developer-console
针对Android应用的新应用内订阅产品的实施似乎与常规托管/非托管产品相同,但是(afaik)获取订阅的到期日期仅可通过Google Play Android Develope基于HTTP的API获得.那部分让我一无所知.
使用Google API Java客户端库获取过期日期的任何实施示例都将是一个巨大的帮助.
我很惊讶地发现很少有关于获取Play商店订阅的截止日期的文档或示例.在整个官方应用内结算文档中,注意到以下内容:
当用户成功购买新订阅时,您的应用会通知后端服务器,后端服务器将购买令牌,用户名和其他信息存储在安全位置.
由于您的应用无法知道到期日期,因此您的服务器可以轮询Google Play以获取到期日期,并将其与购买令牌和其他数据一起存储.
由于您的服务器现在知道到期日期,因此在到期日之前不需要再次轮询Google Play,此时它可以确认订阅未被取消.
在我的应用程序中,我能够通过OAuth和购买令牌获取授权令牌(使用便捷方法进行应用内计费),我可以将该信息发送到我的后端服务器.然而,在那时我可以找到一些关于如何使用这些令牌后如何处理这些令牌的信息.我能够发现的唯一信息是参考Google API客户端库,它提供了各种语言客户端库的示例库(我碰巧使用的是PHP).检查PHP"文档"示例(在60秒内启动并运行LOL),显示以下代码行:
$client->setApplicationName('Google+ PHP Starter Application');
Run Code Online (Sandbox Code Playgroud)
这与查找订阅到期日期有什么关系???? 在我看来,传递给setApplicationName的参数应该对Play商店有一些参考,但似乎没有参考样本列表中的Play商店(即谷歌分析API,YouTube数据API等)谷歌APIS
所以我真的不知道如何前进.
任何方向将不胜感激.
根据Google关于"测试应用内结算"的文档,有四种保留的产品ID可用于应用内测试结算和订阅服务:
我们可以用来测试端到端的应用内订阅的保留产品ID是什么,这是由Google上周推出的?android.test.purchased仅适用于"inapp"产品类型,而不适用于"subs"产品类型.
我想知道用户何时第一次购买我的应用...到目前为止,我还没有找到一个干净的方式,UDID似乎是唯一的选择.
理想情况下,我可以通过StoreKit获得收据,但到目前为止.. nada
我错过了什么吗?有人有想法吗?
情况是我有订阅和FIRST问题(从您购买应用程序时应该是免费的).如果我以后重新安装..我应该总是得到原始问题)
示例:我在10.2010购买应用程序我安装并运行它并从10.2010免费获得订阅问题(没有应用程序内购买)现在我删除了我安装它的应用程序1.2013我只能从10.2010免费获得订阅!不是新的
在Ruby on Rails中使用stripe的API我无法保存订阅.
我能够检索并更新和保存客户对象:
customer = Stripe::Customer.retrieve(some_customer_id) #this works
customer.save #this works
Run Code Online (Sandbox Code Playgroud)
我也能够检索订阅:subscription = customer.subscriptions.retrieve("some_subscription_id")#this works
但是,在尝试保存订阅时:subscription.save #this不起作用
我一直这样:
NoMethodError: undefined method `save' for
#<Stripe::StripeObject:0x007ff37147c720>
from /Users/me/.rvm/gems/ruby-2.0.0-p353/gems/stripe-
1.9.9/lib/stripe/stripe_object.rb:158:in `method_missing'
Run Code Online (Sandbox Code Playgroud)
同样在尝试取消订阅时:
customer.subscriptions.retrieve("sub_3QM09lOz64QuSf").delete()
Run Code Online (Sandbox Code Playgroud)
我明白了:
NoMethodError: undefined method `delete' for
#<Stripe::StripeObject:0x007ff36d3f0d50>
from /Users/me/.rvm/gems/ruby-2.0.0-p353/gems/stripe-
1.9.9/lib/stripe/stripe_object.rb:158:in `method_missing'
Run Code Online (Sandbox Code Playgroud)
没有这个,我无法让客户直接从网站取消.
我错过了什么?
我想在创建初始(第一个)订单后更改活动订阅的下一个付款日期。
当前代码不起作用。为什么?我错过了什么?
//fires when new order payment is complete (NOT RENEWAL but original order!)
add_action('woocommerce_payment_complete', 'fm_upate_next_payment_datetime');
function fm_upate_next_payment_datetime ( $order_id ) {
if (WC_Subscriptions_Order::order_contains_subscription( $order_id ) == false) return;
$subscription_key = WC_Subscriptions_Manager::get_subscription_key( $order_id, $product_id
= '');
//hard code next payment date...(must be in future)
$next_payment = date( 'Y-m-d H:i:s', '2016-05-20 00:10:10' );
//set the new payment date
WC_Subscriptions_Manager::set_next_payment_date( $subscription_key, $user_id = '', $next_payment );
}
Run Code Online (Sandbox Code Playgroud) 我们使用GraphQL订阅和pubsub订阅帖子.
当超过10个订阅发生时,我们得到节点警告"MaxListenersExceededWarning:检测到可能的EventEmitter内存泄漏".
是否可以在pubsub类中引发最大侦听器?
pubsub类位于一个单独的模块中,如下所示:
import { PubSub } from 'graphql-subscriptions';
const pubsub = new PubSub();
export { pubsub };Run Code Online (Sandbox Code Playgroud)
订阅服务器如下所示:
import { SubscriptionManager } from 'graphql-subscriptions';
import { createServer } from 'http';
import { SubscriptionServer } from 'subscriptions-transport-ws';
import { pubsub } from './subscriptions';
import executableSchema from './executableSchema';
const WS_PORT = 8080;
const websocketServer = createServer((request, response) => {
response.writeHead(404);
response.end();
});
websocketServer.listen(WS_PORT, () => console.log(
`Websocket Server is now running on http://localhost:${WS_PORT}`
));
const subscriptionManager = new SubscriptionManager({
schema: …Run Code Online (Sandbox Code Playgroud)我们希望在我们的应用程序中支持几个不同的自动续订订阅。例如,订阅功能A一年,功能b一年,功能c一年。我们希望订阅是分开的,并允许用户订阅一个或多个订阅,而不提供A + B或A + C选项。
这可能吗?我见过的所有教程都讨论了具有不同持续时间的单一订阅类型。
我正在构建一个非常依赖CloudKit作为数据源的iOS应用程序.
安装应用程序并首次运行后,我需要下载大量驻留在CloudKit Container公共数据库中的数据.我这样做了CKFetchNotificationChangesOperation
每次启动应用程序时,此操作都会运行,以检查自上次收到的服务器更改令牌以来的数据更改.显然,在第一次启动应用程序时,我必须提供的更改令牌为nil,这将导致CKFetchNotificationChangesOperation加载数据库上发生的所有更改.
然后返回的数据将存储在本地,因为我希望拥有与我的用户相关的所有数据的本地缓存.我将这些数据存储在核心数据库中.由于第一次启动时应用程序需要的数据集可能很大,我真的需要CKFetchNotificationChangesOperation来获取服务器上的所有更改.
然而,这似乎不可靠.使用我在数据库中输入的一些数据测试此服务时,我没有收到我应该收到的所有数据.当我在公共数据库中输入更多数据时,CKFetchNotificationChangesOperation似乎完全忽略了我之前输入的记录.有时候,有些人会漏掉但是非常不可靠.
显然,我已经验证我的订阅是合法的(之前加载了相同的记录),并且我检查了moreComing参数是否CKFetchNotificationChangesOperation为真(总是如此false)
题
在初始加载时,如何在公共数据库中获取所有数据?我认为CKFetchNotificationChangesOperation应该做的工作,但似乎不可靠.是否有类似"范围"的东西我可以在此操作上配置以强制它加载我的所有数据?或者CKFetchNotificationChangesOperation不适合初始加载,我应该通过自定义操作加载我需要的所有数据吗?
subscriptions ×10
android ×4
ios ×3
google-play ×2
cloudkit ×1
graphql ×1
icloud ×1
java ×1
node.js ×1
php ×1
ruby ×1
storekit ×1
testing ×1
woocommerce ×1
wordpress ×1