首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Paymill:订阅,然后通过client_id (PHP)获得订阅和相应的交易。

Paymill:订阅,然后通过client_id (PHP)获得订阅和相应的交易。
EN

Stack Overflow用户
提问于 2013-04-16 16:10:32
回答 1查看 623关注 0票数 0

我已经为我们的应用程序编写了一个脚本,允许用户对产品进行订阅(按月或按年)

现在,我有几个问题,无论是在这里还是在paymill文档中都找不到:

第一:当我为一个拥有所有必要信息的用户创建订阅时,我如何才能知道订阅是否成功?是不是没有初始事务,还是事务只在间隔之后进行?例如:

这是我的代码:

代码语言:javascript
复制
        $description = $_POST['client-email'];
        $email = $_POST['client-email'];
        $clientsObject = new Services_Paymill_Clients(PAYMILL_API_KEY, PAYMILL_API_HOST);
        $client        = $clientsObject->create(array(
            'email'       => $email,
            'description' => $description
            ));

        $params = array(
            'token' => 'justatesttokenthatiputhere',
            'client' => $client['id']
        );

        $paymentsObject = new Services_Paymill_Payments(PAYMILL_API_KEY, PAYMILL_API_HOST);

        $creditcard = $paymentsObject->create($params);
        //die("Amount: ".$_POST['card-amount-int']." Domain: ".$subdomain);
        $params = array(
            'amount'   => $_POST['card-amount-int'],       // E.g. "4200" for 42.00 EUR
            'currency' => 'EUR',        // ISO 4217 
            'interval' => '1 '.$_POST['interval-selected'],      // Options: "week", "month" and "year"
            'name'     => $_POST['clientId']
        );


        $offersObject  = new Services_Paymill_Offers(PAYMILL_API_KEY, PAYMILL_API_HOST);
        $offer         = $offersObject->create($params);

        //die(print_r($offer));

        $params = array(
            'client'   => $client['id'],
            'offer'    => $offer['id'],
            'payment'  => $creditcard['id']
        );
        //die(print_r($offer));
        $subscriptionsObject = new Services_Paymill_Subscriptions(PAYMILL_API_KEY, PAYMILL_API_HOST);
        $subscription        = $subscriptionsObject->create($params);

        $clients = $clientsObject->getOne($client['id']);

        $transactions = $transactionsObject->get();

        $subscriptions = $subscriptionsObject->get();

我有一种感觉,例如client_id、subscriptions_id和所有东西:例如,我没有在$subscriptionsObject-> get ()中获取它们。我有一种感觉,我可能会得到一个积极的回应,但他们并没有被拯救?我如何验证这一点?或者,我可能忘记了代码中的某些内容?

2.问题:是否可以获取只有client_id (按client_id过滤)的客户端的订阅?如果是这样的话:我如何才能获得相应的事务(检查其状态)?

3.问题:如何测试,如果是订阅,以后的支付验证是否有效?我的意思是,据我所知,我们必须在我们的网站上检查,如果付款已经成功,让我们说每个月,如果我们选择一个月的间隔。我们如何验证这一点呢?

4.考虑事务:根据文档:与订阅关联的事务在其描述字段中具有订阅ID。但是我在$transactionsObject->get()中找不到任何这样的案例;你知道我做错了什么吗?

如果有人能给我指出正确的方向,或者甚至给我一个示例代码,我会很高兴,因为我确实发现,这些细节并没有在paymill的文档中真正解释

EN

回答 1

Stack Overflow用户

发布于 2013-06-12 01:43:34

1)如果您尚未指定试用期,则在您创建订阅后,Paymill将立即执行事务处理。此事务的描述为“Subscription#...”并具有状态(已关闭表示“成功”)。您可以通过在驾驶舱中创建一些测试数据来测试此行为。如果您已经指定了试用期,那么一旦进行了交易,获得反馈的唯一方法就是使用webhooks。您可以订阅"subscription.succeeded“和"subscription.failed”事件。

2)您可以请求获取指定的客户端,其中包含该客户端拥有的所有订阅。看看这个:https://www.paymill.com/de-de/dokumentation/referenz/api-referenz/#client-object

3)如第一点所示,您可以创建一个webhook :-)

4)我建议只浏览驾驶舱(https://app.paymill.com/de-de,不需要登录或注册),并像这样设置数据:

  • Offer 1,无试用期,42欧元
  • client 1,具有有效的付款方式(使用4111 1111 1111 1111信用卡number)
  • Subscription for client 1 for offer 1

一旦你完成了第三步,在"Transactions“页面上应该会有一个事务。交易的描述将包含类似于"Subscription#sub_f6cd00e38309d80e0cad Offer 1“的内容。

如果您的代码没有生成包含这样描述的事务,那么就有问题,您需要检查您的代码发出的HTTP调用是什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16031867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档