我为我们的应用程序编写了一个脚本,允许用户订阅产品(无论是按月订阅还是按年订阅)
现在我有几个问题,我在这里或paymill文档中都找不到:
1:当我为一个用户创建一个包含所有必要信息的订阅时,我怎样才能知道订阅是否成功?是否没有初始事务或事务只在间隔后进行?例如:
这是我的代码:
$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
1)如果您没有指定试用期,那么Paymill将在您创建订阅后立即执行交易。此事务的描述为"订阅#....",并具有状态(关闭表示"成功")。您可以在驾驶舱上通过创建一些测试数据来测试这种行为。如果您指定了试用期,那么在交易完成后获得反馈的唯一方法就是使用webhook。你可以订阅"订阅"。"成功"answers"订阅"。失败"事件。
2)您可以请求GET一个指定的客户端,其中包括该客户端的所有订阅。参见:https://www.paymill.com/de-de/dokumentation/referenz/api-referenz/#client-object
3)正如第一点所暗示的,你可以创建一个webhook:-)
4)我建议只是浏览到驾驶舱(https://app.paymill.com/de-de,不需要登录或注册),并像这样设置数据:
- 优惠1,无试用期,42欧元
- 客户端1,具有有效的付款方式(使用4111 1111 1111 1111信用卡号码)
- 客户1对报价1的订阅
完成第三步后,"事务"页面上应该有一个事务。事务的描述将包含类似于"订阅#sub_f6cd00e38309d80e0cad报价1"的内容
如果你的代码没有生成一个包含这样描述的事务,那么就有问题了,你需要检查你的代码所做的HTTP调用是什么。