- 集成指南
- 实施Hosted Payment Session集成
- 使用 JavaScript 模式的Hosted Payment Session
- Hosted Payment Session:API 参考
Hosted Payment Session:API 参考
使用 JavaScript 模式的Hosted Payment Session使用以下 JavaScript 方法和对象返回包含付款人卡详细信息的会话识别码。您必须将返回的会话识别码提交到您的 Web 服务器才能够发起付款或存储交易。有关详细信息,请参见使用会话执行操作。
方法
设置用于交易的商家账户。
setMerchant(merchantID)
参数:
merchantId
必需。Mastercard Gateway向您提供的商家识别码。
返回:
Void
发送请求创建会话并使用卡详细信息更新会话。
createSession(sessionDetails, createSessionCallback)
参数:
sessionDetails
必需。指定卡详细信息的对象参数。
createSessionCallback
必需。处理响应的函数。定义为 createSessionCallback = function(createSessionResponse)
发送请求创建或更新会话。
updateSession([sessionId], sessionDetails, updateSessionCallback)
参数:
sessionId
可选。如果您传送 sessionId 参数,那么该会话的详细信息(如果有)将被更新。如果您不传送会话识别码,将创建新会话。
sessionDetails
必需。指定卡详细信息的对象参数。
updateSessionCallback
必需。处理响应的函数。定义为 updateSessionCallback = function(updateSessionResponse)
启动 Visa Checkout 灯箱并将来自交互的付款详细信息填充到付款会话。
showVisaCheckout([sessionId], options, callback)
参数:
sessionId
可选。付款会话的识别码,如果未提供,将创建新付款会话。
options
必需。允许您控制 Visa Checkout 灯箱中提供的选项。如果您不希望控制这些选项,您可以将其设置为空对象。
选项 | 数据类型 | 描述 | 价值 |
---|---|---|---|
options.acceptedCards | 枚举 | 控制付款人可以在 Visa Checkout 灯箱中选择的卡类型。 | MASTERCARD AMEX DISCOVER VISA |
options.paymentConfirmation | 枚举 | 控制上一页的确认按钮显示为"支付"还是"继续" | CONFIRM_AT_PROVIDER - 在 Visa Checkout 灯箱中显示“支付” CONFIRM_AT_MERCHANT - 在 Visa Checkout 灯箱中显示“继续” |
options.paymentConfirmationMessage | 字符串 | 在 Visa Checkout 灯箱中的确认按钮旁向付款人显示的消息。请使用在 options.locale 中定义的语言提供此文本。 |
继续由商家完成您的购买 |
options.merchant.logo | URL | 在 Visa Checkout 灯箱中显示的商家徽标 | https://test.te |
options.merchant.displayName | 字符串 | 您希望在 Visa Checkout 灯箱中显示为默认消息的商家名称。通常是您公司的名称。 | 商家 |
options.locale | 字符串 | 确定用于显示 Visa Checkout 灯箱的区域设置。默认为付款人浏览器的区域设置 | en_us en_au en_ca fr_ca |
options.country | 3 个字母的 ISO 国家/地区代码 | 确定在 Visa Checkout 灯箱的右上方显示的国家/地区标记。 | AUS USA |
options.order.amount | 小数 | 在 Visa Checkout 灯箱中显示订单金额 | 10.50, 200.00 |
options.order.currency | 3 个字母的 ISO 货币代码 | 在 Visa Checkout 灯箱中显示订单货币 | USD |
callback
必需。检索灯箱交互结果的函数。
对象
sessionDetails
所需 sessionDetails
对象参数包含存储在新建会话中的卡详细信息。不强制指定所有字段—您可以收集部分卡详细信息;但是,如果指定 cardExpiryMonth
和 cardExpiryYear
中的一个,这两个字段则为强制字段。
字段:
字符串 cardNumber
可选。卡上打印的信用卡号。最多接受 30 个字符,包括输入的数字和符号 '-' 及 ' '。
字符串 cardSecurityCode
可选。卡验证码,打印在卡背面或正面。
如果指定 cardExpiryYear
值,则需要字符串 cardExpiryMonth
。卡上显示的月份。月份编号为一月=1,直到十二月=12。
如果指定 cardExpiryMonth
值,则需要字符串 cardExpiryYear
。卡上显示的年份。
示例
var sessionDetails = function() { return { cardNumber: document.getElementById('cardNumber').value, cardSecurityCode: document.getElementById('cardSecurityCode').value, cardExpiryMonth: document.getElementById('expiryMonth').value, cardExpiryYear: document.getElementById('expiryYear').value } }
createSessionResponse/updateSessionResponse
Mastercard Gateway响应 HostedForm.createSession( )/HostedForm.updateSession( ) 调用时返回的 response
对象。
字段:
字符串 status
Mastercard Gateway返回的 HostedForm.createSession( )/HostedForm.updateSession( ) 请求的总体状态。
字符串 session
包含卡详细信息的会话识别码。在发起付款交易时,您必须使用此识别码来代替卡详细信息。
字符串 cardBrand
用于描述全球认可和接受的卡的品牌名称。对于很多主要卡类型,此字符串将与组织名称匹配。在有些市场,卡还可能与原始国家/地区认可和接受的本地品牌联名(参见 cardLocalBrand)。
您可以使用此信息来支持附加费决定。此信息收集自第三方,不能保证在任何情况下均准确无误。
字符串 cardScheme
HostedForm.createSession( )/HostedForm.updateSession( ) 请求中使用的卡的卡组织。
字符串 cardFundingMethod
付款人用于提供付款资金的方法。
您可以使用此信息来支持附加费决定。此信息收集自第三方,不能保证在任何情况下均准确无误。
字符串 cardLocalBrand
用于描述原始国家/地区认可和接受的卡的品牌名称。此卡还可能与全球认可和接受的品牌名称联名(参见 cardBrand)。
您可以使用此信息来支持附加费决定。此信息收集自第三方,不能保证在任何情况下均准确无误。
对象 fieldsInError
属性与出错字段名称匹配的对象。此值指示错误原因。
示例
{ "status":"ok", "session":"SESSION000264159551414428148515", "cardFundingMethod":"credit", //possible values: CHARGE, CREDIT, DEBIT, UNKNOWN "cardScheme":"visa",// possible values AMEX, DINERS_CLUB, DISCOVER, JCB, MASTERCARD, UATP, VISA, OTHER "cardBrand":"visa" //possible values: AMEX, DINERS_CLUB, DISCOVER, JCB, MAESTRO, MASTERCARD, VISA, UATP, LOCAL_BRAND_ONLY, UNKNOWN }
fieldsInError
fieldsInError
对象解析响应中返回的字段错误。错误使用以下格式返回:{"field_name":"error_code", ...}
,例如,{cardNumber:"invalid", cardExpiryYear:"missing"}
字段:
字符串 cardNumber
传入 sessionDetails 对象的信用卡号。
字符串 cardSecurityCode
传入 sessionDetails 对象的卡验证码。
字符串 cardExpiryMonth
传入 sessionDetails 对象的过期月份。
字符串 cardExpiryYear
传入 sessionDetails 对象的过期年份。
枚举值
字符串 invalid
指示字段无效。
字符串 missing
指示缺少强制字段。
示例
//fields_in_error example { "status":"fields_in_error", "fieldsInError": { "cardExpiryYear":"invalid", "cardSecurityCode":"invalid", "cardExpiryMonth":"invalid", "cardNumber":"invalid" } }