Я предполагаю, что эта проблема хорошо понята, но что происходит со мной на первом чтении:
Использование Ваша существующая база данных для получения хорошего первого предположения для порога, и корректный, поскольку Вы накапливаете опыт.
можно предпочесть довольно сильную предвзятость к ложным положительным сторонам по крайней мере сначала.
Раньше период, указанный в днях, обрабатывался тестовым сервером как минуты, поэтому при указании 'd3' вы вызывались каждые 3 минуты. Я думаю, что они удалили это, и я не знаю какой-либо функции замены для тестовых подписок.
Перерыв, как перейти, вероятно, ответ, но я выдвину еще одну идею.
Возможно, он хотел иметь локально определенные переменные и использовал эту конструкцию для получения новой области действия.
Помните, что, хотя последние версии C++ позволяют использовать {...}
в любом месте, это не всегда так.
Предыдущие ответы хорошие. Кроме того, на сайте Intel есть чему поучиться, и если у вас есть бюджет, то на инструменты Intel стоит обратить внимание.
Статьи Intel по оптимизации
Поддержка и документация 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 для получения дополнительной информации.