كيفية تمكين العميل من تغيير معلومات بطاقة الائتمان

لقد واجهت صعوبة في السماح للعميل بتغيير معلومات بطاقة الائتمان الخاصة به. في آخر مرة حدث فيها هذا، قمت بإلغاء اشتراكهم وطلبت منهم إنشاء اشتراك جديد. أخيرًا، اكتشفت كيفية إنشاء رابط لصفحة Stripe تتيح لهم رؤية سجل الفواتير الخاص بهم، وإضافة طريقة دفع، وتحديث معلومات الفوترة الخاصة بهم (عنوان البريد الإلكتروني).

أود تقديم طلب سحب (PR) إلى إضافة الاشتراكات لإضافة هذا الرابط، لكن ليس لدي الساعتان اللتان أحتاجهما في الوقت الحالي، لذا إليك كيفية القيام بذلك يدويًا في Rails:

user = User.find_by_username('=USERNAME=');
sub=DiscourseSubscriptions::Customer.where(user_id: user.id).first;

Stripe.api_key = SiteSetting.discourse_subscriptions_secret_key
session=Stripe::BillingPortal::Session.create({
  customer: sub.customer_id,
  return_url: '=SITE_URL=/my/billing/subscriptions',
});
puts session.url

هنا التوثيق:

و Stripe Login | Sign in to the Stripe Dashboard سيتيح لك إنشاء رابط يمكنهم زيارته ولصق عنوان بريد إلكتروني فيه.

9 إعجابات

لم أدرك أن هذه الوظيفة كانت مفقودة من اشتراكات Discourse، ولكن هذه ميزة لا غنى عنها.

إعجابَين (2)

نعم، لم أدرك ذلك أيضًا. هذه الأمور تبدو عاجلة.

إعجاب واحد (1)

رائع! أين يجب إضافة هذا الكود؟

إعجاب واحد (1)

مرحباً، هل يمكنك توضيح الكود الذي قدمته وكيفية استخدامه؟

أحتاج أيضًا إلى أن يتمكن المستخدمون من الوصول إلى بوابة Stripe هذه لأنني ملزم قانونًا بتزويدهم بفاتورة لا يتم إرسالها عند إنشاء اشتراك عبر واجهة برمجة التطبيقات (API):

كان الحل البديل الذي وجدته هو استخدام مكون سمة روابط قائمة الهامبرغر المخصصة وإضافة رابط إلى بوابة Stripe. إنه يعمل، ولكنه ليس مثالياً للمستخدمين الذين يتعين عليهم الاتصال به عبر رابط بريد إلكتروني.

إعجاب واحد (1)

ستحتاج إلى وضعه في إضافة (plugin) تقوم بإنشاء الرابط وإضافته إلى الـ serializer ثم وضع هذا الرابط في مكان ما في تجربة المستخدم (UX). ليس شيئًا وجدت وقتًا له. سيعمل هذا من الـ rails console، لكن هذا لا يفيدك كثيرًا.

يبدو أن الكود لا يزال يعمل.

الشيء السهل الذي يمكنك فعله هو عمل fork للإضافة وإضافة الكود. الشيء الأصعب، ولكنه أفضل بكثير، هو إضافة الكود والاختبارات بحيث يتم قبوله كـ PR. إذا كانت لديك ميزانية، يمكنك النشر في Marketplace أو الاتصال بي مباشرة. حل وسط سيكون إنشاء إضافة تقوم، على سبيل المثال، بإضافة الرابط إلى الـ serializer حتى تتمكن من وضعه في تجربة المستخدم (UX) في مكان ما، مثل قائمة الهامبرغر كما تفعل الآن.

إعجابَين (2)

شكراً على ردك وشرحك. للأسف ليس لدي أي خبرة في تطوير الإضافات ويمكنني فقط إجراء بعض التعديلات الخفيفة على HTML/CSS، وربما بعض الأوامر في وحدة تحكم Rails إذا لزم الأمر.

أعتقد أنني سألتزم بحلّي المؤقت في الوقت الحالي. سأضيف أيضًا رابط بوابة Stripe حيثما أمكن عندما يشترك المستخدم (المسؤول > تخصيص > نص).

إعجابَين (2)

هذا الرابط محدود بوقت، لذلك أعتقد أن الطريقة للقيام بذلك ستكون إضافة مسار يقوم بإعادة توجيه. هذا سيوفر تعقيد العمولة في معرفة متى يتم الحصول على رابط جديد و keto من إجراء مجموعة من المكالمات غير الضرورية للحصول على رابط لن يتم النقر عليه أبدًا.

لا يزال مكونًا إضافيًا، لكنني أعتقد أنه سيكون طلب سحب أبسط بكثير.

إعجاب واحد (1)

آه، أعتقد أننا لا نتحدث عن نفس الرابط… أنت على الأرجح تتحدث عن الرابط الذي تم إنشاؤه من الكود الذي قدمته. أنا أتحدث عن رابط بوابة العملاء بدون كود الذي يمكنني تفعيله في لوحة تحكم Stripe. أعتقد أن هذا الرابط صالح طالما أن البوابة مفعلة.

نعم. إذا كنت أتذكر بشكل صحيح، فإن الكود الخاص بي يمنعهم فقط من إدخال عنوان بريدهم الإلكتروني والحصول على الرابط بأنفسهم عبر البريد الإلكتروني (ومعرفة عنوان البريد الإلكتروني الذي استخدموه). إذا كان هذا جيدًا بما فيه الكفاية، فأنت جاهز.

والجدير بالذكر أن هذا يبدو مدعومًا الآن مباشرة في المكون الإضافي:

3 إعجابات

بالفعل! وهذا يساعد كثيرًا (وهو جزء كبير من سبب عدم قيامي بأي شيء بخصوص الرابط السحري). ومع ذلك، فإنه لا يحل مشكلة الوصول إلى سجل الدفع الخاص بك والروابط إلى الفواتير.

3 إعجابات