正在尝试实现Worldpay集成。https://online.worldpay.com/docs/take-card-details-templates的文档提到了一个令牌。我已经测试了页面,但我没有得到任何令牌。我不知道怎么才能弄到这个代币。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="payment2.aspx.cs" Inherits="payment2" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src= "https://cdn.worldpay.com/v1/worldpay.js">
</script>
<script type='text/javascript'>
window.onload = function () {
Worldpay.setClientKey('T_C_a453a70e-c5e6-4618-9c7b-96f787f0fa04');
Worldpay.reusable = false;
Worldpay.useTemplate('payment-form', 'my_payment_section', 'inline');
}
</script>
</head>
<body>
<form action="/complete" id="payment-form" method="post">
<!— all other fields you want to collect, e.g. name
and shipping address -->
<div id='my_payment_section'></div>
<div>
<input type="submit" value="Place Order" />
</div>
</form>
</body>
</html>发布于 2015-07-29 15:43:02
当window.onload执行时,它会将WorldPay卡片捕获表单放在页面上。从外观上看,你还没有禁用他们的保存付款按钮,所以你是在尝试使用自己的提交按钮吗??如果您正在尝试使用提交按钮,则应添加onclick属性以提交worldpay模板。
<input type="submit" value="Place Order" />
<form action="/complete" id="payment-form" method="post">
<div id="my_payment_section"></div>
<div>
<input id="submitCard" onclick="Worldpay.submitTemplateForm()" value="Confirm Payment" />
</div>
</form>一旦表单提交,worldpay.js将接管,它将处理敏感的卡信息,验证它,如果一切正常,它将用一个隐藏的输入字段替换cardDetails div,即令牌。
如果所有操作都正确无误,那么在将令牌输入放入DOM之后,表单将提交给您的操作"/complete",并且令牌将成为表单提交值的一部分。
希望这能有所帮助。
发布于 2017-03-02 23:28:29
您的脚本缺少在useTemplate()中生成令牌的回调请参阅:https://developer.worldpay.com/jsonapi/docs/template-form
回调为您生成包含令牌值的隐藏输入,并将其发布到worldpay。
你的脚本应该是:
<script type='text/javascript'>
window.onload = function() {
Worldpay.useTemplateForm({
'clientKey':'T_C_a453a70e-c5e6-4618-9c7b-96f787f0fa04',
'form':'paymentForm',
'paymentSection':'paymentSection',
'display':'inline',
'reusable':false,
'callback': function(obj) {
if (obj && obj.token) {
var _el = document.createElement('input');
_el.value = obj.token;
_el.type = 'hidden';
_el.name = 'token';
document.getElementById('paymentForm').appendChild(_el);
document.getElementById('paymentForm').submit();
}
}
});
}
</script>您还需要在提交时使用onclick="Worldpay.submitTemplateForm()“属性。
https://stackoverflow.com/questions/31384179
复制相似问题