当前位置: 首页 > 知识库问答 >
问题:

无法集成Paypal Express结账(基本集成Checkout.js版本4.0.0)

端木宏才
2023-03-14

我正在尝试整合贝宝快递结账到简单的购物车。有不同的方法可以做到这一点。Paypal建议在基本或高级集成和Checkout.js(带有REST API)4.0版本之间进行选择。到目前为止还不错。我在我的Paypal账户中创建了Paypal应用程序,以获取凭据并开始测试它。测试还可以,但这里有一些误解。js通过REST API(连同我的凭据)将金额(1.00)和货币(欧元)发送到Paypal服务器。如果支付完成,OK-回调函数onAuthorize将被触发,并且有两个具有响应的参数(data和actions)。好吧,这里我调用自己的AJAX函数在我的数据库中编写事务响应数据。但是...我在这里只得到支付交易的PaymentID和PayerID?!!如果我想稍后再搜索paypal.com的网页界面--没有paymentID这样的东西。只有TransactionID???如何在onAutorize回调函数中获得响应中的其他事务细节?我如何让这里的TransactionID在我的数据库中记下?可能在这里我要调用贝宝API,还是要实现贝宝IPN(即时支付通知)?但是如何调用IPN API,如果我没有TransactionID:)

<div style="width: 906px; text-align: right; height: 100px; 
     margin-top: 50px;">
<div id="paypal-button"></div> 
</div>

<script src="https://www.paypalobjects.com/api/checkout.js"></script>

<script>
    paypal.Button.render({

        env: 'production', // Optional: specify 'sandbox' environment

        style: {
            size: 'medium',
            shape: 'rect'
        },

        client: {
            sandbox:    'xxx-my-credentials-xxx',
            production: 'xxx-my-credentials-xxx'
        },

        payment: function() {

            var env    = this.props.env;
            var client = this.props.client;

            return paypal.rest.payment.create(env, client, {
                transactions: [
                    {
                        amount: { total: '1.00', currency: 'EUR' }
                    }
                ]
            });
        },

        commit: true, // Optional: show a 'Pay Now' button in the checkout flow

        onAuthorize: function(data, actions) {

            // Optional: display a confirmation page here   
            var EXECUTE_PAYMENT_URL = 'payment-process.php'; 

paypal.request.post(EXECUTE_PAYMENT_URL, { paymentID: data.paymentID, payerID: data.payerID, transactionID: data.transactionID, data: data }) .then(function(data) { }) .catch(function(err) { }); 


            return actions.payment.execute().then(function() {
                // Show a success page to the buyer
            });
        }

    }, '#paypal-button');
</script>

共有1个答案

盖泽宇
2023-03-14

要从事务中读取信息,需要调用并将数据JSON保存到数据库中

    return actions.payment.execute().then(function() {
                actions.payment.get().then(function(data) {
                 if(data.state === 'approved'){
                   console.log(data);  
                   var transactionId = data.id;
                   alert("Transaction ID: "+ transactionId + " \n State: " +data.state);
                 }else{
                  console.log(data);
                 }
               });
          });
 类似资料:
  • B2B版本集成 B2B的用户,初始化方法,打开聊窗方法和登录方法的逻辑如下 : 在每次点击打开聊窗的时候,都要调用初始化方法初始化SDK,登录方法登录与注销和打开聊窗打开聊窗的方法,调用顺序不能变。

  • 主要内容:涉及的步骤PyCharm支持各种版本控制系统。 此功能有助于改进管理各种版本的代码库。 本章详细讨论了这个概念。 涉及的步骤 您将通过以下步骤来初始化和管理版本控制系统 - 初始化Subversion控制系统 要以系统的方式启动版本控制系统,初始化它非常重要。 PyCharm提供了各种版本控制系统的选项。 忽略文件 在PyCharm的任何一个项目中,我们都要建立默认项目和虚拟环境,也应该使用版本控制系统来创

  • 我正在实施v2 Express Checkout Paypal集成;它工作正常,但是它并没有完全完成交易(商业帐户不接收付款)。 > 将生成令牌和订单ID。 我复制并粘贴给定的链接到URL栏,然后按回车键继续完成交易。。 事务完成并重定向到新的URL

  • 6.2 URDF集成Rviz基本流程 前面介绍过,URDF 不能单独使用,需要结合 Rviz 或 Gazebo,URDF 只是一个文件,需要在 Rviz 或 Gazebo 中渲染成图形化的机器人模型,当前,首先演示URDF与Rviz的集成使用,因为URDF与Rviz的集成较之于URDF与Gazebo的集成更为简单,后期,基于Rviz的集成实现,我们再进一步介绍URDF语法。 需求描述: 在 Rvi

  • 在第一次尝试使用IntelliJ创建maven项目时,即使在将. cher文件导入cacerts之后,我也会收到以下错误。 无法传输工件org.apache.maven.plugins:maven-clee-plugin:pom:2.5 from/to Central(https://repo.maven.apache.org/maven2):PKIX路径构建失败:sun.security.pro

  • 6.6.1 URDF与Gazebo基本集成流程 URDF 与 Gazebo 集成流程与 Rviz 实现类似,主要步骤如下: 创建功能包,导入依赖项 编写 URDF 或 Xacro 文件 启动 Gazebo 并显示机器人模型 1.创建功能包 创建新功能包,导入依赖包: urdf、xacro、gazebo_ros、gazebo_ros_control、gazebo_plugins 2.编写URDF文件