Fix new stripe API
This commit is contained in:
parent
2bbf9a3429
commit
1e635cff1b
@ -147,22 +147,33 @@ class InterfaceStripe
|
|||||||
if ($customer)
|
if ($customer)
|
||||||
{
|
{
|
||||||
$namecleaned = $object->name ? $object->name : null;
|
$namecleaned = $object->name ? $object->name : null;
|
||||||
$vatcleaned = array(
|
$vatcleaned = $object->tva_intra ? $object->tva_intra : null;
|
||||||
"tax_id" => $object->tva_intra ? $object->tva_intra : null, // We force data to "null" if empty as expected by Stripe
|
|
||||||
"type" => 'vat',
|
$taxinfo = array('type'=>'vat');
|
||||||
);
|
if ($vatcleaned)
|
||||||
|
{
|
||||||
|
$taxinfo["tax_id"] = $vatcleaned;
|
||||||
|
}
|
||||||
|
// We force data to "null" if not defined as expected by Stripe
|
||||||
|
if (empty($vatcleaned)) $taxinfo=null;
|
||||||
|
|
||||||
// Detect if we change a Stripe info (email, description, vat id)
|
// Detect if we change a Stripe info (email, description, vat id)
|
||||||
$changerequested = 0;
|
$changerequested = 0;
|
||||||
if (! empty($object->email) && $object->email != $customer->email) $changerequested++;
|
if (! empty($object->email) && $object->email != $customer->email) $changerequested++;
|
||||||
if ($namecleaned != $customer->description) $changerequested++;
|
if ($namecleaned != $customer->description) $changerequested++;
|
||||||
if ($vatcleaned != $customer->tax_info) $changerequested++;
|
if (! isset($customer->tax_info['tax_id']) && ! is_null($vatcleaned)) $changerequested++;
|
||||||
|
elseif (isset($customer->tax_info['tax_id']) && is_null($vatcleaned)) $changerequested++;
|
||||||
|
elseif (isset($customer->tax_info['tax_id']) && ! is_null($vatcleaned))
|
||||||
|
{
|
||||||
|
if ($vatcleaned != $customer->tax_info['tax_id']) $changerequested++;
|
||||||
|
}
|
||||||
|
|
||||||
if ($changerequested)
|
if ($changerequested)
|
||||||
{
|
{
|
||||||
if (! empty($object->email)) $customer->email = $object->email;
|
if (! empty($object->email)) $customer->email = $object->email;
|
||||||
$customer->description = $namecleaned;
|
$customer->description = $namecleaned;
|
||||||
$customer->tax_info = $vatcleaned;
|
if (empty($taxinfo)) $customer->tax_info = array('type'=>'vat', 'tax_id'=>null);
|
||||||
|
else $customer->tax_info = $taxinfo;
|
||||||
|
|
||||||
$customer->save();
|
$customer->save();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -413,12 +413,12 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled))
|
|||||||
$dol_type=(GETPOST('s', 'alpha') ? GETPOST('s', 'alpha') : GETPOST('source', 'alpha'));
|
$dol_type=(GETPOST('s', 'alpha') ? GETPOST('s', 'alpha') : GETPOST('source', 'alpha'));
|
||||||
$dol_id=GETPOST('dol_id', 'int');
|
$dol_id=GETPOST('dol_id', 'int');
|
||||||
$vatnumber = GETPOST('vatnumber','alpha');
|
$vatnumber = GETPOST('vatnumber','alpha');
|
||||||
$savesource=GETPOST('savesource', 'int');
|
$savesource=GETPOSTISSET('savesource')?GETPOST('savesource', 'int'):1;
|
||||||
|
|
||||||
dol_syslog("stripeToken = ".$stripeToken, LOG_DEBUG, 0, '_stripe');
|
dol_syslog("POST stripeToken = ".$stripeToken, LOG_DEBUG, 0, '_stripe');
|
||||||
dol_syslog("email = ".$email, LOG_DEBUG, 0, '_stripe');
|
dol_syslog("POST email = ".$email, LOG_DEBUG, 0, '_stripe');
|
||||||
dol_syslog("thirdparty_id = ".$thirdparty_id, LOG_DEBUG, 0, '_stripe');
|
dol_syslog("POST thirdparty_id = ".$thirdparty_id, LOG_DEBUG, 0, '_stripe');
|
||||||
dol_syslog("vatnumber = ".$vatnumber, LOG_DEBUG, 0, '_stripe');
|
dol_syslog("POST vatnumber = ".$vatnumber, LOG_DEBUG, 0, '_stripe');
|
||||||
|
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
@ -444,7 +444,6 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled))
|
|||||||
$servicestatus = 1;
|
$servicestatus = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$thirdparty = new Societe($db);
|
$thirdparty = new Societe($db);
|
||||||
$thirdparty->fetch($thirdparty_id);
|
$thirdparty->fetch($thirdparty_id);
|
||||||
|
|
||||||
@ -455,9 +454,11 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled))
|
|||||||
$customer = $stripe->customerStripe($thirdparty, $stripeacc, $servicestatus, 1);
|
$customer = $stripe->customerStripe($thirdparty, $stripeacc, $servicestatus, 1);
|
||||||
|
|
||||||
// Create Stripe card from Token
|
// Create Stripe card from Token
|
||||||
if (! empty($savesource)) {
|
if ($savesource) {
|
||||||
$card = $customer->sources->create(array("source" => $stripeToken, "metadata" => $metadata));
|
$card = $customer->sources->create(array("source" => $stripeToken, "metadata" => $metadata));
|
||||||
} else { $card = $stripeToken; }
|
} else {
|
||||||
|
$card = $stripeToken;
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($card))
|
if (empty($card))
|
||||||
{
|
{
|
||||||
@ -468,9 +469,9 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled))
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (! empty($FULLTAG)) $metadata["FULLTAG"] = $FULLTAG;
|
if (! empty($FULLTAG)) $metadata["FULLTAG"] = $FULLTAG;
|
||||||
if (! empty($dol_id)) $metadata["dol_id"] = $dol_id;
|
if (! empty($dol_id)) $metadata["dol_id"] = $dol_id;
|
||||||
if (! empty($dol_type)) $metadata["dol_type"] = $dol_type;
|
if (! empty($dol_type)) $metadata["dol_type"] = $dol_type;
|
||||||
|
|
||||||
dol_syslog("Create charge on card ".$card->id, LOG_DEBUG, 0, '_stripe');
|
dol_syslog("Create charge on card ".$card->id, LOG_DEBUG, 0, '_stripe');
|
||||||
$charge = \Stripe\Charge::create(array(
|
$charge = \Stripe\Charge::create(array(
|
||||||
@ -495,24 +496,29 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled))
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$vatcleaned = array(
|
$vatcleaned = $vatnumber ? $vatnumber : null;
|
||||||
"tax_id" => $vatnumber ? $vatnumber : null, // We force data to "null" if empty as expected by Stripe
|
|
||||||
"type" => 'vat',
|
$taxinfo = array('type'=>'vat');
|
||||||
);
|
if ($vatcleaned)
|
||||||
|
{
|
||||||
|
$taxinfo["tax_id"] = $vatcleaned;
|
||||||
|
}
|
||||||
|
// We force data to "null" if not defined as expected by Stripe
|
||||||
|
if (empty($vatcleaned)) $taxinfo=null;
|
||||||
|
|
||||||
dol_syslog("Create anonymous customer card profile", LOG_DEBUG, 0, '_stripe');
|
dol_syslog("Create anonymous customer card profile", LOG_DEBUG, 0, '_stripe');
|
||||||
$customer = \Stripe\Customer::create(array(
|
$customer = \Stripe\Customer::create(array(
|
||||||
'email' => $email,
|
'email' => $email,
|
||||||
'description' => ($email?'Anonymous customer for '.$email:'Anonymous customer'),
|
'description' => ($email?'Anonymous customer for '.$email:'Anonymous customer'),
|
||||||
'metadata' => $metadata,
|
'metadata' => $metadata,
|
||||||
'tax_info' => $vatcleaned,
|
'tax_info' => $taxinfo,
|
||||||
'source' => $stripeToken // source can be a token OR array('object'=>'card', 'exp_month'=>xx, 'exp_year'=>xxxx, 'number'=>xxxxxxx, 'cvc'=>xxx, 'name'=>'Cardholder's full name', zip ?)
|
'source' => $stripeToken // source can be a token OR array('object'=>'card', 'exp_month'=>xx, 'exp_year'=>xxxx, 'number'=>xxxxxxx, 'cvc'=>xxx, 'name'=>'Cardholder's full name', zip ?)
|
||||||
));
|
));
|
||||||
// Return $customer = array('id'=>'cus_XXXX', ...)
|
// Return $customer = array('id'=>'cus_XXXX', ...)
|
||||||
|
|
||||||
if (! empty($FULLTAG)) $metadata["FULLTAG"] = $FULLTAG;
|
if (! empty($FULLTAG)) $metadata["FULLTAG"] = $FULLTAG;
|
||||||
if (! empty($dol_id)) $metadata["dol_id"] = $dol_id;
|
if (! empty($dol_id)) $metadata["dol_id"] = $dol_id;
|
||||||
if (! empty($dol_type)) $metadata["dol_type"] = $dol_type;
|
if (! empty($dol_type)) $metadata["dol_type"] = $dol_type;
|
||||||
|
|
||||||
// The customer was just created with a source, so we can make a charge
|
// The customer was just created with a source, so we can make a charge
|
||||||
// with no card defined, the source just used for customer creation will be used.
|
// with no card defined, the source just used for customer creation will be used.
|
||||||
|
|||||||
@ -189,13 +189,18 @@ class Stripe extends CommonObject
|
|||||||
"description" => $object->name,
|
"description" => $object->name,
|
||||||
"metadata" => array('dol_id'=>$object->id, 'dol_version'=>DOL_VERSION, 'dol_entity'=>$conf->entity, 'ipaddress'=>(empty($_SERVER['REMOTE_ADDR'])?'':$_SERVER['REMOTE_ADDR']))
|
"metadata" => array('dol_id'=>$object->id, 'dol_version'=>DOL_VERSION, 'dol_entity'=>$conf->entity, 'ipaddress'=>(empty($_SERVER['REMOTE_ADDR'])?'':$_SERVER['REMOTE_ADDR']))
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($object->tva_intra!=null)
|
$vatcleaned = $object->tva_intra ? $object->tva_intra : null;
|
||||||
{
|
|
||||||
$dataforcustomer["tax_info"] = array(
|
$taxinfo = array('type'=>'vat');
|
||||||
"tax_id" => $object->tva_intra,
|
if ($vatcleaned)
|
||||||
"type" => 'vat');
|
{
|
||||||
}
|
$taxinfo["tax_id"] = $vatcleaned;
|
||||||
|
}
|
||||||
|
// We force data to "null" if not defined as expected by Stripe
|
||||||
|
if (empty($vatcleaned)) $taxinfo=null;
|
||||||
|
|
||||||
|
$dataforcustomer["tax_info"] = $taxinfo;
|
||||||
|
|
||||||
//$a = \Stripe\Stripe::getApiKey();
|
//$a = \Stripe\Stripe::getApiKey();
|
||||||
//var_dump($a);var_dump($key);exit;
|
//var_dump($a);var_dump($key);exit;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user