سؤال

أرغب في اختبار IPNs الاشتراك في PayPal ، وكلاهما المستلم عند إنشاء اشتراك ، وتلك المرسلة لاحقًا مع الدفع التالي (مثل الشهرية إذا كان الاشتراك $ x شهريًا).

ومع ذلك ، أفضل عدم الانتظار لمدة شهر أو يوم لتلقي IPN الثاني. هل هناك طريقة لإرسال IPN بشكل أسرع ، مثل كل ساعة ، باستخدام PayPal أو صندوق الرمل؟

في الوثائق ، تقول أنه يمكنك فقط تحديد السنوات والأشهر والأيام والأسابيع مع فترة الاشتراك.

هل كانت مفيدة؟

المحلول

كان من المعتاد أن يتم التعامل مع الفترة المحددة في الأيام من قبل خادم الاختبار على أنها دقائق ، بحيث يتم استدعاؤك كل 3 دقائق عند تحديد "D3". أعتقد أنهم أزالوا هذا ولست على علم بأي ميزة بديلة لاختبار الاشتراكات.

نصائح أخرى

دعم مطور PayPal وتوثيقه هو محرج لهم. لكن هذا القيد بالذات ليس موهنًا كما يبدو في البداية.

للاختبار ، حدد دفعتك المتكررة إلى ليس لديك تجربة مجانية. عند إنشاء اشتراك جديد ، سيتلقى الخادم رسالتي IPN في تتابع سريع ، واحدة لإنشاء الاشتراك والثاني لتطبيق دفعة. هذا كل ما تحتاجه للاختبار.

إذا كان لديك تجربة مجانية ، فستحصل على نفس زوج الرسائل ، فقط مع فترة تجريبية بينهما. قون

الرسالة الأولى ("إنشاء اشتراك") ستبدو شيئًا كهذا. لاحظ "txn_type" - هذا هو الجزء الرئيسي من المعلومات لعرض رسالتي:

{
  "txn_type"=>"subscr_signup",
  "subscr_id"=>"unique_id",
  "verify_sign"=>"random_gibberish",

  "item_number"=>"your_subscription_name"
  "subscr_date"=>"14:32:23 Feb 15, 2010 PST",
  "btn_id"=>"1111111",
  "item_name"=>"Your Subscription Description",
  "recurring"=>"1",
  "period1"=>"1 M",

  # This example is from a "free trial" IPN notification-- if you don't have a 
  # free trial defined, there will only be 'period1' fields, and they'll
  # have the data that appears here in the 'period3' fields.
  "amount1"=>"0.00",
  "mc_amount1"=>"0.00",
  "period3"=>"1 M",
  "amount3"=>"34.95",
  "mc_amount3"=>"34.95",
  "mc_currency"=>"USD",

  "payer_status"=>"verified",
  "payer_id"=>"payer_unique_id",
  "first_name"=>"Test",
  "last_name"=>"User",
  "payer_email"=>"test_xxxx@example.com",
  "residence_country"=>"US",

  "business"=>"seller_xxxxxxx@example.com",
  "receiver_email"=>"seller_xxxxxxx@example.com",

  "reattempt"=>"1",

  "charset"=>"windows-1252","notify_version"=>"2.9","test_ipn"=>"1",
}

الرسالة الثانية هي الأكثر إثارة للاهتمام في هذه الحالة. ستكون هذه هي الرسالة نفسها التي ستحصل عليها لاحقًا عند تطبيق الدفع المتكرر. يبدو شيئًا كهذا:

{
  "txn_type"=>"subscr_payment",
  "subscr_id"=>"unique_id",
  "verify_sign"=>"random_gibberish",

  "txn_id"=>"payment_unique_id",
  "payment_status"=>"Completed",
  "payment_date"=>"12:45:33 Feb 16, 2010 PST",

  "item_number"=>"your_subscription_name"
  "subscr_date"=>"14:32:23 Feb 15, 2010 PST",
  "custom"=>"data-you-sent-in-a-custom-field",

  "id"=>"1",
  "payment_gross"=>"34.95",
  "mc_currency"=>"USD",
  "payment_type"=>"instant",
  "payment_fee"=>"1.31",
  "payer_status"=>"verified",
  "mc_fee"=>"1.31",
  "mc_gross"=>"34.95",
  "btn_id"=>"1111111",

  "payer_id"=>"payer_unique_id",
  "first_name"=>"Test",
  "last_name"=>"User",
  "payer_email"=>"test_xxxx@example.com",
  "residence_country"=>"US",

  "receiver_id"=>"your_merchant_id",
  "business"=>"seller_xxxxxxx@example.com",
  "receiver_email"=>"seller_xxxxxxx@example.com",

  "protection_eligibility"=>"Ineligible",
  "transaction_subject"=>"",
  "charset"=>"windows-1252","notify_version"=>"2.9","test_ipn"=>"1",
}

حتى تتمكن من القيام بكل اختباراتك تقريبًا دون انتظار يوم. بحلول الوقت الذي تعتقد فيه أنك حصلت عليه مسمر ، ستتلقى الكثير من رسائل IPN الاشتراك في اليوم التالي.

بالإضافة، هنا هو رابط إلى وثائق PayPal لمزيد من المرجع.

من الممكن إعادة تقديم اختبار IPNs للاختبار ، لذلك يجب أن تحتاج فقط إلى "شراء" اشتراك واحد للاختبار. بمجرد شراء اشتراك واحد ، إليك ما يجب فعله:

  1. قم بتسجيل الدخول إلى صندوق الرمل PayPal الخاص بك تاجر الحساب.
  2. حدد "ملف تعريف" => "تفضيلات البيع الخاصة بي".
  3. حدد "تفضيلات إشعار الدفع الفوري" من العمود الثالث.
  4. تأكد من تمكين IPN وأن عنوان URL صحيح.
  5. انقر على الرابط إلى تاريخ IPN صفحة.
  6. قم بالتمرير لأسفل ، وعلم واحد أو أكثر من IPNs وانقر فوق "إعادة الالتحاق".

بعد التأكيد ، سيتم الآن استياء IPN (S) المحدد على عنوان URL الذي حددته. يمكنك تكرار عدد غير محدود من المرات مع نفس IPN (S).

الإجابة الممتازة من قبل Dondo تغطي الباقي.

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

صدق أو لا تصدق PayPal لا يزال من السهل إجراء اختبار الاشتراك مع ملفات IPN:/

لذا ، لمجرد أنني لم أرها هنا ، وبدا نوع OP وكأنه كان تحت الانطباع أن يتوقع فقط ردوتين محتملتين من البابوي -

إذا كان أي شخص آخر يعاني من مشكلات ، فإليك بعض TXN_TYPE الأخرى التي تضغط على IPN أثناء إجراء الاختبار:

//when paypal subscription profile is created for the subscriber
subscr_signup 

//payment made for a given billing cycle
subscr_payment 

//when subscription fails
subscr_failed 

//user cancels subscription - not
subscr_cancel 

//end of term - paypal is "done" with that subscriber 
subscr_eot 

//why I was looking for this thread to begin with lol
recurring_payment_suspended_due_to_max_failed_payment

هذا الأخير ضرب IPN هذا الصباح ضد كل واحد من مشتركي الاختبار. عندما كنت أنظر إلى ما يعنيه ذلك ، وجدت أن ما يلي ممكن أيضًا للحصول على:

recurring_payment_profile_created

recurring_payment_profile_cancel

recurring_payment_profile_modify

recurring_payment

recurring_payment_skipped

recurring_payment_failed

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

صداع سعيد :)

تحديث: لقد اكتشفت مشكلتي الآن - لذا يبدو الأمر كما لو أنني أعرف ما أفعله سأشرح ...

أعتقد أن بيئة صندوق رمل الاشتراك في PayPal تموت ببطء. لقد لاحظت في اليوم الآخر عندما أتعامل مع Sandbox.paypal.com أنني أحصل على "فشل قاتل" في كثير من الأحيان. يبدو أن تحديث الصفحة يصحح هذه الأوقات في معظم الأوقات ، على الرغم من أنني يجب أن أعود في بعض الأحيان عدة مرات حتى تعود الشاشة.

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

في أي حال من خلال تحديث الصفحة ، يمكنني بدء مصافحة PayPal أكثر أو أقل عند الطلب ، وعندما أفعل ذلك ، يكون 50/50 - في بعض الأحيان يتم التحقق منه ، وأحيانًا أحصل على فشل قاتل - تمامًا كما أحاول أن أفعل الكثير من أي شيء في موقع صندوق الرمل الخاص بهم (الفشل المميت).

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

HTTP/1.1 200 OK 
Date: Tue, 29 Sep 2015 02:41:00 GMT 
Server: Apache 

Fatal Failure 

يمكنك أيضًا إنشاء IPN يدويًا من صندوق الرمل الخاص بهم:

https://developer.paypal.com/cgi-bin/devscr؟cmd=_ipn-link-

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top