I'm trying to setup and configure the adyen plugin integration, and i'm having a few issues.
The flow we are trying to setup is:
1. User clicks 'Pay Now' in our app and is directed to Adyen's HPP.
2. User completes process and is redirected back to our app
3. Adyen sends a webhook notification back to killbill with payment info.
KillBill appears to need an existing payment method in order to generate the HPP link. When we try that API call, it errors and says it's missing the payment method ID. How do we store payment details before the customer gives them?
Thanks
curl -v \
-u admin:password \
-H "X-Killbill-ApiKey: bob" \
-H "X-Killbill-ApiSecret: lazar" \
-H "Content-Type: application/json" \
-H "X-Killbill-CreatedBy: admin" \
-X POST \
--data-binary '{
"pluginName": "killbill-adyen",
"pluginInfo": {
"properties": [
{
"key": "token",
"value": "5655bc3f-e347-4cd1-8408-5663cc91be37"
}
]
}
}' \
"http://127.0.0.1:8080/1.0/kb/accounts/5655bc3f-e347-4cd1-8408-5663cc91be37/paymentMethods?isDefault=true"
I created a real payment with Adyen using that account_id as the reference, so later killbilll payments can use that token to create new charges.
I'm now seeing this error when i tried to initiate a payment:
org.killbill.adyen.common.Amount$JaxbAccessorF_currency cannot be cast to com.sun.xml.bind.v2.runtime.reflect.Accessor
...or if i try to delete the payment method:
Error while deleting payment method dccc8467-450a-498d-be82-bb5a5d35e6e2: Error 500: Internal payment error : org.killbill.adyen.common.ServiceException$JaxbAccessorF_error cannot be cast to com.sun.xml.bind.v2.runtime.reflect.Accessor
I have this accounts currency set to: EUR -- as well as our catalog set to EUR.
I did see in the adyen README about a cast issue, so i already have this settings enabled in killbill.properties:
com.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true
I'm using the killbill docker version 0.16.7
I appreciate any help or pointers anyone could give me...I'm kind of at a loss where to go next with this.
KillBill appears to need an existing payment method in order to generate the HPP link. When we try that API call, it errors and says it's missing the payment method ID. How do we store payment details before the customer gives them?
As a follow-up, I tried creating a dummy payment method using an example from the stripe token module, where the token is the account_id
I'm now seeing this error when i tried to initiate a payment:
org.killbill.adyen.common.Amount$JaxbAccessorF_currency cannot be cast to com.sun.xml.bind.v2.runtime.reflect.Accessor
...or if i try to delete the payment method:
Error while deleting payment method dccc8467-450a-498d-be82-bb5a5d35e6e2: Error 500: Internal payment error : org.killbill.adyen.common.ServiceException$JaxbAccessorF_error cannot be cast to com.sun.xml.bind.v2.runtime.reflect.Accessor
I did see in the adyen README about a cast issue, so i already have this settings enabled in killbill.properties:
com.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true