Authorize.Net payment method
Accept.js is a JavaScript-based solution for sending secure payment data directly to Authorize.Net. The Accept JavaScript library intercepts the payment data before it is passed to Magento and submits it directly to Authorize.Net, which replaces it with a one-time-use token, or payment nonce. This payment nonce, which is returned by the JavaScript library, is used in place of payment data.
Authorize.Net workflow
The following diagram shows the workflow for placing an order when Authorize.Net is the selected payment method.
-
The customer clicks on the Place order button. The embedded
Accept.js
library captures the payment data and submits it directly to Authorize.Net. -
Authorize.Net returns a payment nonce and order details. The client’s browser then posts the nonce to the Magento server along with all the other order information. The payment nonce expires after 24 hours.
-
The client uses the
setPaymentMethodOnCart
mutation to send the payment nonce and the last four digits of the card to Magento. -
Magento returns a
Cart
object. -
The client runs the
placeOrder
mutation, which creates an order in Magento and begins the authorization process. -
Magento sends a transaction request that includes the payment nonce. The nonce replaces the payment details provided in standard Authorize.Net API calls.
-
Authorize.Net sends a transaction response.
-
Magento creates an order and sends an order ID in response to the
placeOrder
mutation.
Additional payment information
When you set the payment method to authorizenet_acceptjs
in the setPaymentMethodOnCart
mutation, the payload must contain an authorizenet_acceptjs
object.
Attribute | Data Type | Description |
---|---|---|
cc_last_4 |
Int! | The last four digits of the credit or debit card |
opaque_data_descriptor |
String! | Authorize.Net’s description of the transaction request |
opaque_data_value |
String! | The nonce returned by Authorize.Net |
Example usage
The following example assigns the authorizenet_acceptjs
payment method to the specified cart.
Request:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
mutation {
setPaymentMethodOnCart(input: {
cart_id: "lvdqOLzryManseE2artECZuPClxFgG1o"
payment_method: {
code: "authorizenet_acceptjs"
authorizenet_acceptjs: {
cc_last_4: 1111
opaque_data_descriptor: "COMMON.ACCEPT.INAPP.PAYMENT"
opaque_data_value: "<nonce_value>"
}
}
}) {
cart {
selected_payment_method {
code
title
}
}
}
}
Response:
1
2
3
4
5
6
7
8
9
10
11
12
{
"data": {
"setPaymentMethodOnCart": {
"cart": {
"selected_payment_method": {
"code": "authorizenet_acceptjs",
"title": "Credit Card (Authorize.Net)"
}
}
}
}
}