如何在客户端使用Paypal API v2进行验证

时间:2019-06-27 10:31:37

标签: php paypal paypal-rest-sdk express-checkout

我们目前在进行付款时使用的是来自paypal的checkout.js,一切正常,我们现在希望升级到Paypal API的v2。

以下是我们使用checkout.js的代码 https://jsfiddle.net/hxm0cjbp/

public class Trie : Dictionary<char, Trie>
{
    public void Add(string value)
    {
        var c = String.IsNullOrEmpty(value) ? '\0' : value[0];
        if (!this.ContainsKey(c))
        {
            this[c] = new Trie();
        }
        if (c != '\0')
        {
            this[c].Add(value.Substring(1));
        }
    }
}

下面是我们使用v2的新代码。 https://jsfiddle.net/sk3rpme5/

paypal.Button.render({
    style: {
        // style here
    },
    env: variable_here,
    client: {
        sandbox: variable_here,
        production: variable_here
    },
    commit: true,
    validate: function (actions) {
        // problem occur from here in v2
        // by using actions.disable();
        functionToDisableButtonIfValidationFail();
    },
    onClick: function () {
        // more functions here
    },
    payment: function (data, actions) {
        // more functions here
    },
    onAuthorize: function (data, actions) {
        // more functions here
    }
}, '#selector_here');

错误开始于validate方法。 在使用v1时,单击贝宝按钮。如果验证失败,它将显示表单错误。在v2中,单击“贝宝”按钮时。贝宝重定向页面仍然显示,并且表单错误也是如此。我们想像v1一样进行工作,如果验证正确,则仅显示贝宝页面。检查SDK时,看起来paypal.Buttons({ validate: function(){ // problem occur from here // actions.disable() is not recognize anymore functionToDisableButtonIfValidationFail(); }, createOrder: function() { // function here } }).render('#selector_here'); 已被删除。

0 个答案:

没有答案