Chargify Direct¶
The Crucial\Service\ChargifyV2\Direct
object provides the following methods.
Signup¶
Create a Chargify Direct signup form. See the Chargify Documentation for more information.
$direct = $chargifyV2->direct();
// set redirect
$direct->setRedirect('https://example.local');
// set tamper-proof data
$direct->setData([
'signup' => [
'product' => [
'id' => 1234
],
'customer' => [
'first_name' => 'Dan',
'last_name' => 'Bowen',
'email' => 'foo@mailinator.com'
]
]]);
Now use $direct
object to help create your HTML signup form.
<form accept-charset="utf-8" method="post" action="<?php echo $direct->getSignupAction() ?>">
<?php echo $direct->getHiddenFields(); ?>
<!-- the rest of your form goes here -->
</form>
Card Update¶
Create a Chargify Direct card update form. See the Chargify Documentation for more information.
$direct = $chargifyV2->direct();
// set redirect
$direct->setRedirect('https://example.local');
// set tamper-proof data
$direct->setData([
'subscription_id' => 1234
]);
Now use $direct
object to help create your HTML card update form.
<!-- card update form for subscription ID 1234 -->
<form accept-charset="utf-8" method="post" action="<?php echo $direct->getCardUpdateAction(1234) ?>">
<?php echo $direct->getHiddenFields(); ?>
<!-- the rest of your form goes here -->
</form>
Validate Response Signature¶
The ->isValidResponseSignature()
method will test for a valid redirect to your site after a Chargify Direct signup
request.
$isValidResponse = $chargifyV2->direct()
->isValidResponseSignature($_GET['api_id'], $_GET['timestamp'], $_GET['nonce'], $_GET['status_code'], $_GET['result_code'], $_GET['call_id']);
// $isValidResponse will be a boolean true\false.
if ($isValidResponse) {
// Do post-signup (or post card-update) tasks such as updating your database, sending a thank you email, etc.
} else {
// display an error message
}