@@ -452,8 +452,10 @@ init_(PaymentID, Params, #{timestamp := CreatedAt} = Opts) ->
452452 [];
453453 BCT ->
454454 case hg_customer_client :get_recurrent_tokens_by_card (PartyConfigRef , BCT ) of
455- [_ | _ ] = Tokens -> [? cascade_tokens_loaded (Tokens )];
456- [] -> []
455+ [_ | _ ] = Tokens ->
456+ [? cascade_tokens_loaded (Tokens )];
457+ [] ->
458+ seed_bank_card_from_parent (PartyConfigRef , BCT , VS0 )
457459 end
458460 end ;
459461 _ ->
@@ -462,6 +464,18 @@ init_(PaymentID, Params, #{timestamp := CreatedAt} = Opts) ->
462464 Events = [? payment_started (Payment2 )] ++ CascadeTokenEvents ,
463465 {collapse_changes (Events , undefined , #{}), {Events , hg_machine_action :instant ()}}.
464466
467+ seed_bank_card_from_parent (PartyConfigRef , BCT , #{parent_payment := ParentPayment }) ->
468+ case get_recurrent_token (ParentPayment ) of
469+ undefined ->
470+ [];
471+ RecToken ->
472+ Route = get_route (ParentPayment ),
473+ SavedToken = hg_customer_client :save_recurrent_token_by_card (PartyConfigRef , BCT , {Route , RecToken }),
474+ [? cascade_tokens_loaded ([SavedToken ])]
475+ end ;
476+ seed_bank_card_from_parent (_PartyConfigRef , _BCT , _VS ) ->
477+ [].
478+
465479maybe_inherit_customer_id (undefined , #{parent_payment := ParentPayment }) ->
466480 (get_payment (ParentPayment ))# domain_InvoicePayment .customer_id ;
467481maybe_inherit_customer_id (CustomerID , #{parent_payment := ParentPayment }) ->
@@ -2474,28 +2488,26 @@ maybe_save_recurrent_token_to_customer(
24742488 payment = # domain_InvoicePayment {
24752489 id = PaymentID ,
24762490 customer_id = CustomerID ,
2477- make_recurrent = MakeRecurrent ,
24782491 payer = Payer
24792492 },
24802493 recurrent_token = RecToken
24812494 } = St
24822495) when CustomerID =/= undefined ->
24832496 InvoiceID = get_invoice_id (get_invoice (get_opts (St ))),
24842497 hg_customer_client :add_payment (CustomerID , InvoiceID , PaymentID ),
2485- maybe_save_recurrent_token_to_bankcard (MakeRecurrent , RecToken , Payer , St ),
2498+ maybe_save_recurrent_token_to_bankcard (RecToken , Payer , St ),
24862499 maybe_link_bankcard_to_customer (CustomerID , Payer );
24872500maybe_save_recurrent_token_to_customer (
24882501 # st {
24892502 payment = # domain_InvoicePayment {
2490- make_recurrent = MakeRecurrent ,
24912503 payer = Payer
24922504 },
24932505 recurrent_token = RecToken
24942506 } = St
24952507) ->
2496- maybe_save_recurrent_token_to_bankcard (MakeRecurrent , RecToken , Payer , St ).
2508+ maybe_save_recurrent_token_to_bankcard (RecToken , Payer , St ).
24972509
2498- maybe_save_recurrent_token_to_bankcard (true , RecToken , Payer , St ) when RecToken =/= undefined ->
2510+ maybe_save_recurrent_token_to_bankcard (RecToken , Payer , St ) when RecToken =/= undefined ->
24992511 case get_bank_card_token (Payer ) of
25002512 undefined ->
25012513 ok ;
@@ -2504,7 +2516,7 @@ maybe_save_recurrent_token_to_bankcard(true, RecToken, Payer, St) when RecToken
25042516 Route = get_route (St ),
25052517 hg_customer_client :save_recurrent_token_by_card (PartyConfigRef , BCT , {Route , RecToken })
25062518 end ;
2507- maybe_save_recurrent_token_to_bankcard (_ , _ , _ , _ ) ->
2519+ maybe_save_recurrent_token_to_bankcard (_ , _ , _ ) ->
25082520 ok .
25092521
25102522maybe_link_bankcard_to_customer (CustomerID , Payer ) ->
0 commit comments