首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Worldpay令牌混淆

Worldpay令牌混淆
EN

Stack Overflow用户
提问于 2015-07-13 21:02:58
回答 2查看 1.1K关注 0票数 0

正在尝试实现Worldpay集成。https://online.worldpay.com/docs/take-card-details-templates的文档提到了一个令牌。我已经测试了页面,但我没有得到任何令牌。我不知道怎么才能弄到这个代币。

代码语言:javascript
复制
<%@ 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>
EN

回答 2

Stack Overflow用户

发布于 2015-07-29 15:43:02

当window.onload执行时,它会将WorldPay卡片捕获表单放在页面上。从外观上看,你还没有禁用他们的保存付款按钮,所以你是在尝试使用自己的提交按钮吗??如果您正在尝试使用提交按钮,则应添加onclick属性以提交worldpay模板。

代码语言:javascript
复制
<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",并且令牌将成为表单提交值的一部分。

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2017-03-02 23:28:29

您的脚本缺少在useTemplate()中生成令牌的回调请参阅:https://developer.worldpay.com/jsonapi/docs/template-form

回调为您生成包含令牌值的隐藏输入,并将其发布到worldpay。

你的脚本应该是:

代码语言:javascript
复制
<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()“属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31384179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档