मेरे पास एक रजिस्टर एंडपॉइंट है जहां मैं एक नया उपयोगकर्ता बनाता हूं और उन्हें एक सामान्य परीक्षण अवधि पर सेट करता हूं (बिना क्रेडिट कार्ड की जानकारी दर्ज करने की आवश्यकता होती है):
public function register(Request $request) {
//... other not important things for this
$user = new User([
'name' => $request->get('name'),
'email' => $request->get('email'),
// other fields not important...
'trial_ends_at' => now()->addDays(1),
]);
$user->createAsStripeCustomer(); // not sure if needed
$user->save();
return response()->json($user, 201);
}
डेटाबेस में मैं देख सकता हूं कि मुझे निम्न फ़ील्ड और मान के साथ बनाया गया उपयोगकर्ता मिलता है: trial_ends_at: 2020-09-21 05:20:47
। साथ ही, "ग्राहकों" के अंतर्गत मैं नया पंजीकृत उपयोगकर्ता ईमेल देख सकता हूं:
हालाँकि, स्ट्राइप डैशबोर्ड में, यह कहता है कि शून्य नए परीक्षण हैं:
मेरे पास एक customer.subscription.updated
वेबहुक भी है जो तब नहीं चल रहा है जब मैं इसकी अपेक्षा कर रहा हूं (जब परीक्षण समाप्त हो जाता है), इसलिए मैं सोच रहा हूं कि जो कुछ भी स्ट्राइप को एक नए परीक्षण का पता नहीं लगा रहा है वह भी वेबहुक का कारण बनता है आग लगाने के लिए नहीं।
स्ट्राइप नए परीक्षण के बारे में "पिक अप"/जानता क्यों नहीं है?
चीजों के Laravel पक्ष पर उपयोगकर्ता एक परीक्षण पर प्रतीत होता है ($user->onTrial()
सत्य लौटाता है), लेकिन स्ट्राइप डैशबोर्ड पर वही उपयोगकर्ता परीक्षण पर नहीं दिखता है (कोई नया परीक्षण नहीं दिखाता है, ऊपर स्क्रीनशॉट देखें) .
1 उत्तर
स्ट्राइप में "सामान्य परीक्षण" की अवधारणा नहीं है (परीक्षण एक विशिष्ट सदस्यता योजना से जुड़े नहीं हैं), केवल लारवेल कैशियर के पास इसकी अवधारणा है (trial_ends_at
फ़ील्ड का उपयोग करके)।
एक सामान्य परीक्षण के बजाय मैं एक योजना की सदस्यता बनाता हूं, जिसमें भुगतान विधि के लिए null
पास होता है, और इसमें trial_period_days
विकल्प भी शामिल होता है। यह हमें उस उपयोगकर्ता के लिए फ़ाइल पर पहले भुगतान विधि के बिना एक परीक्षण बनाने की अनुमति देता है।
ऐसा करने के लिए कोड यहां दिया गया है:
$trialDays = 30;
$planId = "<your stripe price id>";
$user->createAsStripeCustomer();
$user->newSubscription('<name of subscription>', $planId)
->create(null, [
'email' => $user->email
], ['trial_period_days' => $trialDays]);
साथ ही उपयोगकर्ता बनाते समय, trial_ends_at
फ़ील्ड को शामिल करना याद रखें ताकि हमारे डीबी में हमारे पास स्ट्राइप के साथ मेल खाता हो:
$trialEndsAt = now()->addDays($trialDays);
$user = new User([
//...
'trial_ends_at' => $trialEndsAt
]);
$user->save();
उपयोगकर्ता अब स्ट्राइप डैशबोर्ड में परीक्षण अवधि पर होगा, और $user->onTrial()
का उपयोग करना सही होगा क्योंकि trial_ends_at
फ़ील्ड में डेटाटाइम वर्तमान डेटाटाइम से अधिक है।
संबंधित सवाल
नए सवाल
laravel
लारवेल एक स्वतंत्र, ओपन-सोर्स PHP वेब फ्रेमवर्क है, जो टेलर ओटवेल द्वारा निर्मित और मॉडल-व्यू-कंट्रोलर (एमवीसी) आर्किटेक्चरल पैटर्न और सिम्फनी पर आधारित वेब अनुप्रयोगों के विकास के लिए अभिप्रेत है। लारवेल का स्रोत कोड GitHub पर होस्ट किया गया है और MIT लाइसेंस की शर्तों के तहत लाइसेंस प्राप्त किया गया है।