2017-08-24 2 views
0

Ich implementiere einen Fall, in dem ich Kundenabonnement und Rückerstattungsbetrag für das gleiche stornieren muss. Ich bin in der Lage Abonnement abbrechenWie kann ich den Stripe-Abonnementbetrag zurückerstatten?

$sub = \Stripe\Subscription::retrieve({SUBSCRIPTION_ID}); 
$sub->cancel(); 

jetzt mit i Betrag in Rechnung refundieren zu

$refund = \Stripe\Refund::create(array(
    "charge" => "{CHARGE_ID}" 
)); 

hier CHARGE_ID obligatorisch ist. keine Option wie SUBSCRIPTION_ID.

Da es Kunden automatisch belastet, kann ich CHARGE_ID nicht speichern. Also, wie kann ich diesen Betrag zurückzahlen ??

Bitte Hilfe

Dank

+0

ja ich habe das überprüft, aber CHARGE_ID ist erforderlich und ich habe keine CHARGE_ID. –

+0

@MittulAtTechnoBrave, die nur weitere Gebühren durch Abonnement stornieren, erstattet nicht den Betrag zurück –

+0

nicht, es ist nicht Fall wie zusätzliche Gebühr –

Antwort

3

@Meera, ich sehe Sie Ihr Problem gelöst, war meine Lösung:
1. sobald Sie Ihr Abonnement
2. alle Rechnungs Sammlung der Verwendung erhalten storniert haben subscriptionId vom Abonnement
3. ziehen Sie die erste Rechnung vom Rechnungs Sammlung
4. eine Rückerstattung erstellen Sie mit dem chargeId aus der Rechnung

$subscriptionId = $objSubscription->id; 
$objInvoiceCollection = \Stripe\Invoice::all([ 
    'subscription' => $subscriptionId 
]); 

if ($objInvoiceCollection->total_count === 0) { 
    throw new \Exception("warning: \$subscriptionId={$subscriptionId} - no invoices found!"); 
} else { 
    $objInvoice = current($objInvoiceCollection); 
} 

$chargeId = $objInvoice->charge; 
$objRefund = \Stripe\Refund::create(['charge' => $chargeId]); 
+0

Danke für Ihre Antwort, ich hatte den gleichen Weg implementiert, aber ich foreach für alle $ ChargeId verwendet. –

Verwandte Themen