اذهب إلى المحتوى

السؤال

نشر

السلام عليكم ورحمة الله وبركاته

تحيه طيبه للجميع اخواني

قمت بعمل ربط بين تطبيقي وبوابة دفع checkout من خلال شرح وجدته على الانترنت وربط شغال ولله الحمد بشكل ممتاز ولكن انا ارغب بستعمال ربط مع بوابة دفع paypal

الكود المستعمل كالتالي:

class CheckoutPayment{

  static const _tokenUrl='*********';
  static const _paymenUrl='********';

static const String _publickey='*******';
static const String _secretkey='*******';
static const Map<String,String>_tokenHeader={

'Content-Type':'Application/json',
  'Authorization':_publickey

};
static const Map<String,String>_paymentHeader={
  'Content-Type':'Application/json',
  'Authorization':_secretkey
  
  
  
};
Future<String>_getToken(PaymentCrde card) async{
  Map<String,String>body={
    'type':'card',
    'number':card.number,
    'expiry_month':card.expiry_month,
    'expiry_year':card.expiry_year,


  };
http.Response response =await http.post(_tokenUrl,headers: _tokenHeader,body:jsonEncode(body));
switch(response.statusCode){
  case 201:
    var data =jsonDecode(response.body);
    return data['token'];
    break;
  default:
    throw Exception('Card invalid');
    break;
}
}



Future<bool>makePayment(PaymentCrde card,int amount) async{
  String token =await _getToken(card);
  print(token);

  Map<String,dynamic>body= {
    'source': {
      'type': 'token',
      'token': token
    },
    'amount': amount,
    'currency': 'usd'
  };
http.Response response=await http.post(_paymenUrl,headers: _paymentHeader,body: jsonEncode(body));

  switch(response.statusCode){
    case 201:
      var data =jsonDecode(response.body);
   print(data ['response_summary']);
   return true;
      break;
    default:
      throw Exception('Payemant faild plase try agean');
      break;
  }



}

}

 

class PaymentCrde{


  String number,expiry_month,expiry_year;

  PaymentCrde(this.number, this.expiry_month, this.expiry_year);
}

 

 

  FlatButton(

          child: Text('Pay', style: TextStyle(fontSize: 20.0),),
          onPressed: () {
            PaymentCrde card= PaymentCrde(
              '********',
              '12',
              '2024',
            );

CheckoutPayment payment=CheckoutPayment();

payment.makePayment(card, 1);

          },
        ),

كيف ممكن تغير الكود هذا ليعمل لدى خدمة paypal ؟ هل فيه احد لديه خبرهه في الموضوع هذا ليساعدنا؟

Recommended Posts

  • 1
نشر

مرحبا مروان،

  • يمكنك تضمين WebView في التطبيق واستعمال web sdk من paypal.
  • يوجد مكتبة تدعى flutter_braintree مهمتها عمل المناقلات المالية موجودة مع التوثيق على pub.dev يمكنك مراجعتها من الرابط flutter_braintree.

Braintree هو معالج الدفع المقدم من Paypal لقبول المدفوعات الآمنة والآمنة مع ميزة Drop-in UI وتصميم واجهة المستخدم المخصص. كما يوفر ميزة Apple Pay و Google Pay لقبول المدفوعات.

الخطوات:

  1. افتح حساب Braintree Sandbox

  2. احصل على مفتاح الترميز من حساب Braintree

  3. أضف تبعيات flutter_braintree في ملف pubspec.yaml الخاص بك

  4. إنشاء واجهة مستخدم مخصصة

  5. بطاقة ائتمان Paypal: تقبل ما يلي من المستخدم أ. رقم البطاقة ب. انتهاء شهر ج. سنة انتهاء الصلاحية

  6. احصل على NONCE من Braintree بعد الدفع الناجح واحصل على رسالة الفشل عند إلغاء دفع Paypal من قبل المستخدم.

  7. احفظ هذا NONCE للرجوع إليه في المستقبل في قاعدة البيانات الخاصة بك.

  • الشيفرة البرمجية موجودة في التوثيق.

يمكنك قراءة مقالة بعنوان Paypal Payment Gateway Integration in Flutter مقدمة من Medium تحوي طريقة أيضا للدفع.

بالتوفيق

  • 1
نشر
بتاريخ الآن قال Marwan800:

طيب اخوي بنسبة مع استعمال WebView هل الامان يكون جيد؟

نستعمل web view عندما نريد عرض صفحة ويب ضمن التطبيق قد تكون مبرمجة مسبقا لاختصار عمل الدفع في التطبيق.

بتاريخ 1 دقيقة مضت قال Marwan800:

ايضا هل Braintree  تاخذ اي رسوم على عمل ذلك او فقط هيا رسوم payapl؟

هذه مكتبة برمجية فقط مقدمة من شركة تملكها باي بال. يمكنك فتح الرابط التالي وقراءة تفاصيل braintree-pricing

  • 1
نشر
بتاريخ الآن قال Marwan800:

كل الشكر لك الغالي

بالنسبة للأمان، المكتبة تعتمد نظام آمن مشفر مثل باي بال.

أما أمان web view فهو أيضا موجود و تقريبا لا يفرق عن التطبيق لأن عمليات الدفع تتم من متصفح داخلي في التطبيق أي مثل أي عملية شراء عادية من موقع.

بالتوفيق

  • 0
نشر
بتاريخ 43 دقائق مضت قال Wael Aljamal:

مرحبا مروان،

  • يمكنك تضمين WebView في التطبيق واستعمال web sdk من paypal.
  • يوجد مكتبة تدعى flutter_braintree مهمتها عمل المناقلات المالية موجودة مع التوثيق على pub.dev يمكنك مراجعتها من الرابط flutter_braintree.

Braintree هو معالج الدفع المقدم من Paypal لقبول المدفوعات الآمنة والآمنة مع ميزة Drop-in UI وتصميم واجهة المستخدم المخصص. كما يوفر ميزة Apple Pay و Google Pay لقبول المدفوعات.

الخطوات:

  1. افتح حساب Braintree Sandbox

  2. احصل على مفتاح الترميز من حساب Braintree

  3. أضف تبعيات flutter_braintree في ملف pubspec.yaml الخاص بك

  4. إنشاء واجهة مستخدم مخصصة

  5. بطاقة ائتمان Paypal: تقبل ما يلي من المستخدم أ. رقم البطاقة ب. انتهاء شهر ج. سنة انتهاء الصلاحية

  6. احصل على NONCE من Braintree بعد الدفع الناجح واحصل على رسالة الفشل عند إلغاء دفع Paypal من قبل المستخدم.

  7. احفظ هذا NONCE للرجوع إليه في المستقبل في قاعدة البيانات الخاصة بك.

  • الشيفرة البرمجية موجودة في التوثيق.

يمكنك قراءة مقالة بعنوان Paypal Payment Gateway Integration in Flutter مقدمة من Medium تحوي طريقة أيضا للدفع.

بالتوفيق

هلا بيك اخي

والله انته انسان مبدع تبارك الله لديك خلفيه في اغلب المشاكل تقريبا 

طيب اخوي بنسبة مع استعمال WebView هل الامان يكون جيد؟

ايضا هل Braintree  تاخذ اي رسوم على عمل ذلك او فقط هيا رسوم payapl؟

ايضا ما هو رايك ب منصة checkout؟

 

  • 0
نشر
بتاريخ 1 دقيقة مضت قال Wael Aljamal:

نستعمل web view عندما نريد عرض صفحة ويب ضمن التطبيق قد تكون مبرمجة مسبقا لاختصار عمل الدفع في التطبيق.

هذه مكتبة برمجية فقط مقدمة من شركة تملكها باي بال. يمكنك فتح الرابط التالي وقراءة تفاصيل braintree-pricing

كل الشكر لك الغالي

  • 0
نشر
بتاريخ On 27‏/1‏/2021 at 21:54 قال Wael Aljamal:

مرحبا مروان،

  • يمكنك تضمين WebView في التطبيق واستعمال web sdk من paypal.
  • يوجد مكتبة تدعى flutter_braintree مهمتها عمل المناقلات المالية موجودة مع التوثيق على pub.dev يمكنك مراجعتها من الرابط flutter_braintree.

Braintree هو معالج الدفع المقدم من Paypal لقبول المدفوعات الآمنة والآمنة مع ميزة Drop-in UI وتصميم واجهة المستخدم المخصص. كما يوفر ميزة Apple Pay و Google Pay لقبول المدفوعات.

الخطوات:

  1. افتح حساب Braintree Sandbox

  2. احصل على مفتاح الترميز من حساب Braintree

  3. أضف تبعيات flutter_braintree في ملف pubspec.yaml الخاص بك

  4. إنشاء واجهة مستخدم مخصصة

  5. بطاقة ائتمان Paypal: تقبل ما يلي من المستخدم أ. رقم البطاقة ب. انتهاء شهر ج. سنة انتهاء الصلاحية

  6. احصل على NONCE من Braintree بعد الدفع الناجح واحصل على رسالة الفشل عند إلغاء دفع Paypal من قبل المستخدم.

  7. احفظ هذا NONCE للرجوع إليه في المستقبل في قاعدة البيانات الخاصة بك.

  • الشيفرة البرمجية موجودة في التوثيق.

يمكنك قراءة مقالة بعنوان Paypal Payment Gateway Integration in Flutter مقدمة من Medium تحوي طريقة أيضا للدفع.

بالتوفيق

اهلا اخي

قمت بكل شي تقريبا وكل شي تمام 100/100 

اعمل دفع وادخل البطاقة الموضوحه في التوثيق الخاصة بالاضافة

وبعدها احصل على الشعار التالي:

 

6013ef6e2a978_2021-01-29151959.thumb.png.a24800db8d65e5816cd442bc7dcc7439.png

 

 

قمت بمشاهدة Last Used On الخاصة بالاضافة من خلال حسابي حتى اتاكد ان الربط شغال وقد تحدث فعلا التاريخ بمعنى ان الاضافة شغالة 

ولكن المشكلة الان: قمت بعرض حسابي في Paypal ولم اجد اي اموال قد تم اضافتها الى حسابي مع العلم اني قمت ايضا بمحاولة دفع من خلال بطاقتي البنكيه الشخصيه وقد حدث لدي نفس الفعل السابق بضبط

ماذا يجب ان افعل الان اخي؟او ما هو توقعك للمشكلة الموجوده؟ مع العلم ايضا انني قمت بعمل تفعيل لحساب Paypal في حساب الاضافة 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...