尝试实施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>
答案 0 :(得分:1)
当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后,表单将提交给您的操作&#34; / complete&#34;,该标记将成为提交的一部分形式的价值。
希望有所帮助。
答案 1 :(得分:0)
您的脚本缺少在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()”属性。