Skip to content

Overdue(연체) 규칙 생성 및 프레임워크 등록 메뉴얼

Seungpil Park edited this page May 22, 2017 · 3 revisions

연체 발생 테스트

테스트 목표: 결제 플러그인에서 고의로 결제 실패를 발생시킬 때, 결제 재시도 설정에 마추어 결제 재시도가 이루어지는지 확인하는 테스트

  1. 빌링 서버에 결제 테스트용 루비 플러그인을 등록한다.
curl -v \
-u admin:password \
-H "Content-Type: application/json" \
-H 'X-Killbill-CreatedBy: stephane' \
-X POST \
--data-binary '{"systemCommandType":"true","nodeCommandType":"INSTALL_PLUGIN","nodeCommandProperties":[{"key":"pluginKey", "value":"payment-test"},{"key":"pluginArtifactId", "value": "payment-test-plugin"},{"key":"pluginGroupId", "value": "org.kill-bill.billing.plugin.ruby"}, {"key": "pluginType", "value": "ruby"} ]}' \
"http://127.0.0.1:8080/1.0/kb/nodesInfo"
  1. 설치 후 결제 플러그인을 재시작 하는 명령을 보낸다.
curl -v \
-u admin:password \
-H "Content-Type: application/json" \
-H 'X-Killbill-CreatedBy: stephane' \
-X POST \
--data-binary '{"systemCommandType":true,"nodeCommandType":"RESTART_PLUGIN","nodeCommandProperties":[{"key":"pluginKey","value":"payment-test"}]}' \
"http://127.0.0.1:8080/1.0/kb/nodesInfo"
  1. 테스트 결제 플러그인의 결제 수행을 무조건 실패로 전송하도록 설정한다.
curl -v \
-u'admin:password' \
-H "X-Killbill-ApiKey: sppark" \
-H "X-Killbill-ApiSecret: sppark" \
-H "Content-Type: application/json" \
-H 'X-Killbill-CreatedBy: demo' \
-X POST \
--data-binary '{"CONFIGURE_ACTION":"ACTION_RETURN_PLUGIN_STATUS_ERROR", "METHODS":"purchase_payment"}' \
 -v 'http://127.0.0.1:8080/plugins/killbill-payment-test/configure'
  1. 테넌트의 결제 재시도 규칙을 설정한다. 규칙은 1,1,1 은 하루단위로 세번에 걸쳐 결제 재시도를 하게 된다.
curl -v \
-u admin:password \
-H "X-Killbill-ApiKey: sppark" \
-H 'X-Killbill-ApiSecret: sppark' \
-H "Content-Type: text/plain" \
-H 'X-Killbill-CreatedBy: stephane' \
-X POST \
--data-binary '{"org.killbill.payment.retry.days":"1,1,1"}' \
"http://127.0.0.1:8080/1.0/kb/tenants/uploadPerTenantConfig"
  1. 구매자 계정으로 하여금 구독을 하나 신청한다.
curl -X POST 
--header 'Content-Type: application/json' 
--header 'Accept: application/json' 
--header 'X-Killbill-CreatedBy: Swagger' 
--header 'Authorization: <token>' 
--header 'X-organization-id: c16ba270-2842-4339-ac35-91c225eaf185' 
-d '{
  "accountId": "9c3f0bea-d1e1-40ae-98bf-81d317885288",
  "planName": "PRD_0000000017_PL_000002"
}' 
'http://localhost:18080/rest/v1/subscriptions?migrated=false&callCompletion=false&callTimeoutSec=3'
  1. 빌링 서버의 시간을 1일 씩 총 3번을 경과시키면서, 결제 재시도 트랜잭션을 조회하여 본다.
mysql> SELECT * FROM killbill.payment_transactions where account_record_id = 1;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    1720
Current database: killbill

+-----------+--------------------------------------+--------------------------------------+--------------------------------------+------------------+---------------------+--------------------+--------------+----------+------------------+--------------------+--------------------------------------+--------------------+-------------------+-------------------------+---------------------+-------------------------+---------------------+-------------------+------------------+
| record_id | id                                   | attempt_id                           | transaction_external_key             | transaction_type | effective_date      | transaction_status | amount       | currency | processed_amount | processed_currency | payment_id                           | gateway_error_code | gateway_error_msg | created_by              | created_date        | updated_by              | updated_date        | account_record_id | tenant_record_id |
+-----------+--------------------------------------+--------------------------------------+--------------------------------------+------------------+---------------------+--------------------+--------------+----------+------------------+--------------------+--------------------------------------+--------------------+-------------------+-------------------------+---------------------+-------------------------+---------------------+-------------------+------------------+
|         1 | 519f8497-c9fc-4bd2-bf7e-157da5c9491c | 77eb58d1-ff99-4d25-b70a-2ba4217f6337 | 519f8497-c9fc-4bd2-bf7e-157da5c9491c | PURCHASE         | 2017-05-17 00:00:51 | FAILED            | 10.000000000 | USD      |     10.000000000 | USD                | 593bdc04-2f80-4107-ba45-6d572b4bc086 | NULL               | NULL              | uEngine                 | 2017-05-17 00:00:51 | uEngine                 | 2017-05-17 00:00:51 |                 1 |                1 |
|         2 | 989ae412-8c52-4f62-b7a6-4fabeed8ba90 | 609b7e53-87a7-41fa-8a1e-5ca5982d508b | 989ae412-8c52-4f62-b7a6-4fabeed8ba90 | PURCHASE         | 2017-05-18 00:00:04 | FAILED            | 10.000000000 | USD      |     20.000000000 | USD                | 4512430b-e256-4eed-bb57-73d80ab2813e | NULL               | NULL              | PaymentRequestProcessor | 2017-05-18 00:00:04 | uEngine | 2017-05-18 00:00:04 |                 1 |                1 |
|         3 | 854ac611-25d2-4d91-89fd-379af09a25ad | f47dd625-8aed-42f0-9f45-9d6901a558ea | 854ac611-25d2-4d91-89fd-379af09a25ad | PURCHASE         | 2017-05-19 00:00:04 | FAILED            | 10.000000000 | USD      |     65.000000000 | USD                | 8a55179b-38bb-4a43-995d-acc1bd0b2d26 | NULL               | NULL              | PaymentRequestProcessor | 2017-05-19 00:00:04 | uEngine | 2017-05-19 00:00:04 |                 1 |                1 |
+-----------+--------------------------------------+--------------------------------------+--------------------------------------+------------------+---------------------+--------------------+--------------+----------+------------------+--------------------+--------------------------------------+--------------------+-------------------+-------------------------+---------------------+-------------------------+---------------------+-------------------+------------------+
3 rows in set (0.29 sec)

Clone this wiki locally