Adyen HPP Question

165 views
Skip to first unread message

kristia...@gmail.com

unread,
Jul 8, 2016, 4:56:10 PM7/8/16
to Kill Bill users mailing-list
Hi,

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

kristia...@gmail.com

unread,
Jul 8, 2016, 5:19:03 PM7/8/16
to Kill Bill users mailing-list, kristia...@gmail.com
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:

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.

Pierre-Alexandre Meyer

unread,
Jul 8, 2016, 5:45:56 PM7/8/16
to kristia...@gmail.com, Kill Bill users mailing-list
Hi Kristian,

On Friday, July 8, 2016 at 1:56:10 PM UTC-7, kristia...@gmail.com wrote:
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?

Yes, Kill Bill always needs a payment method first. That's how it knows which plugin to talk to. In case of HPP, since there is no payment details to store, the payment method details can be empty.

Our documentation explains the HPP flow(s) in more details:


On Fri, Jul 8, 2016 at 2:19 PM, <kristia...@gmail.com> wrote:
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

Just specify an empty properties list, no need for a token in that case.
 
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

You need to set it as a real System Property, not in killbill.properties (since it's not a property interpreted by Kill Bill, but by the JVM). The easiest is to update /etc/killbill/kpm.yml, add it to the jvm: line and restart the container.

Let me know if it solves your issues.

--
Pierre

kristia...@gmail.com

unread,
Jul 8, 2016, 6:20:36 PM7/8/16
to Kill Bill users mailing-list
Awesome, thank you Pierre!
Reply all
Reply to author
Forward
0 new messages