Просто следите за тем, как я это сделал и почему:
Rule
из MonoBehaviour
, чтобы избежать отслеживания создания и удаления объектов gameObjects, которая оказалась болью. Invoke
не существует в родовых классах, я заменил его отражением, как описано здесь здесь MasterCard: 5431111111111111
Amex: 341111111111111
Discover: 6011601160116611
American Express (15 digits) 378282246310005
American Express (15 digits) 371449635398431
American Express Corporate (15 digits) 378734493671000
Diners Club (14 digits) 30569309025904
Diners Club (14 digits) 38520000023237
Discover (16 digits) 6011111111111117
Discover (16 digits) 6011000990139424
JCB (16 digits) 3530111333300000
JCB (16 digits) 3566002020360505
MasterCard (16 digits) 5555555555554444
MasterCard (16 digits) 5105105105105100
Visa (16 digits) 4111111111111111
Visa (16 digits) 4012888888881881
Visa (13 digits) 4222222222222
Числа префикса кредитной карты:
Visa: 13 or 16 numbers starting with 4
MasterCard: 16 numbers starting with 5
Discover: 16 numbers starting with 6011
AMEX: 15 numbers starting with 34 or 37
Большинство платежных шлюзов обеспечивает такие числа для тестирования их сервисов, но они будут обычно только работать над подготовкой/тестовыми версиями тех шлюзов.
В зависимости от Вашего платежного шлюза существует два способа протестировать транзакцию.
Например, с authorize.net при отправке "X_TEST_TRANSACTION=true" (или что-то как этот, его долгое время), с POST, он выполнит его в тестовом режиме.
Они также предоставляют тестовую ВИЗУ и тестируют число MasterCard, которое будет всегда возвращаться, как утверждено если в тестовом режиме, и уменьшенный в производственном режиме.
Посмотрите на свою документацию API шлюза, она будет ясно детализирована там.
Большинство платежных процессоров предоставляет любому число тестирования (PayPal делает это), или способность войти в режим тестирования (в котором никакие транзакции на самом деле не обрабатываются). Консультируйтесь с документацией.