我正在尝试整合贝宝快递结账到简单的购物车。有不同的方法可以做到这一点。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>
要从事务中读取信息,需要调用并将数据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文件