/**
  * @phutil-external-symbol class Stripe_Charge
  */
 protected function executeCharge(PhortunePaymentMethod $method, PhortuneCharge $charge)
 {
     $root = dirname(phutil_get_library_root('phabricator'));
     require_once $root . '/externals/stripe-php/lib/Stripe.php';
     $secret_key = $this->getSecretKey();
     $params = array('amount' => $charge->getAmountInCents(), 'currency' => 'usd', 'customer' => $method->getMetadataValue('stripe.customerID'), 'description' => $charge->getPHID(), 'capture' => true);
     $stripe_charge = Stripe_Charge::create($params, $secret_key);
     $id = $stripe_charge->id;
     if (!$id) {
         throw new Exception('Stripe charge call did not return an ID!');
     }
     $charge->setMetadataValue('stripe.chargeID', $id);
 }
예제 #2
0
 public function didFailRefund(PhortuneCharge $charge, PhortuneCharge $refund)
 {
     $refund->setStatus(PhortuneCharge::STATUS_FAILED);
     $this->openTransaction();
     $this->beginReadLocking();
     $copy = clone $charge;
     $copy->reload();
     if ($charge->getRefundingPHID() !== $refund->getPHID()) {
         throw new Exception(pht('Charge is in the wrong refunding state!'));
     }
     $charge->setRefundingPHID(null);
     $charge->save();
     $refund->save();
     $this->endReadLocking();
     $this->saveTransaction();
 }
 /**
  * @phutil-external-symbol class Stripe_Charge
  * @phutil-external-symbol class Stripe_CardError
  * @phutil-external-symbol class Stripe_Account
  */
 protected function executeCharge(PhortunePaymentMethod $method, PhortuneCharge $charge)
 {
     $this->loadStripeAPILibraries();
     $price = $charge->getAmountAsCurrency();
     $secret_key = $this->getSecretKey();
     $params = array('amount' => $price->getValueInUSDCents(), 'currency' => $price->getCurrency(), 'customer' => $method->getMetadataValue('stripe.customerID'), 'description' => $charge->getPHID(), 'capture' => true);
     $stripe_charge = Stripe_Charge::create($params, $secret_key);
     $id = $stripe_charge->id;
     if (!$id) {
         throw new Exception(pht('Stripe charge call did not return an ID!'));
     }
     $charge->setMetadataValue('stripe.chargeID', $id);
     $charge->save();
 }