paypal - 从旧的 PayPal 按钮过渡到 PayPal Javascript SDK 按钮
问题描述
我已经使用了这样的普通贝宝按钮,没有任何问题:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="xxx@xxx.net">
<input type="hidden" name="item_name" value="Website Donation">
<input type="hidden" name="item_number" value="Donation">
<input type="hidden" name="amount" value="">
<input type="submit" value="Send Donation via PayPal" ><br></form>
并转向这种风格以获得 Venmo 和信用卡选项:
<div id="smart-button-container">
<div style="text-align: center;">
<div id="paypal-button-container"></div>
</div>
</div>
<script src="https://www.paypal.com/sdk/js?client-id=secret&enable-funding=venmo¤cy=USD" data-sdk-integration-source="button-factory"></script>
<script>
function initPayPalButton() {
paypal.Buttons({
style: {
shape: 'pill',
color: 'gold',
layout: 'vertical',
label: 'paypal',
},
createOrder: function(data, actions) {
return actions.order.create({
purchase_units: [{"description":"Site Donation","amount":{"currency_code":"USD","value":1.99}}]
});
},
onApprove: function(data, actions) {
return actions.order.capture().then(function(orderData) {
// Full available details
console.log('Capture result', orderData, JSON.stringify(orderData, null, 2));
// Show a success message within this page, e.g.
const element = document.getElementById('paypal-button-container');
element.innerHTML = '';
element.innerHTML = '<h3>Thank you for your payment!</h3>';
// Or go to another URL: actions.redirect('thank_you.html');
});
},
onError: function(err) {
console.log(err);
}
}).render('#paypal-button-container');
}
initPayPalButton();
</script>
我有一个 IPN 页面来接收来自原始按钮的订单信息,并从中检查 item_name 和 item_number 字段。
我的问题是,createOrder 部分的描述(网站捐赠)是否会转换为相同的字段,或者描述是否会成为一个新字段(它叫什么)?
createOrder: function(data, actions) {
return actions.order.create({
purchase_units: [{"description":"Site Donation","amount":{"currency_code":"USD","value":1.99}}]
});
},
解决方案
在您的其中一个沙盒业务帐户中,设置沙盒IPN 侦听器 URL。
为该特定沙盒业务帐户创建一个REST 应用程序,并复制其客户端 ID。使用该客户端 ID 创建沙盒测试付款,使用沙盒个人帐户批准付款。
记录您收到的沙盒 IPN 中的数据。它将具有该事务的可用字段。
推荐阅读
- r - 对过滤列求和
- c++ - 打印矢量数据时得到额外的零?
- spring-boot - 内存数据库数据中的 Spring Boot 测试不会在测试之间持续存在
- python - create an interactive IntSlider widget
- c - 为什么此代码中的输出与预期不同?
- javascript - 使用使用 React js 在另一个文件中定义的数组
- sql - 如何更新列值取决于同一张表中的另一列
- javascript - 媒体查询不适用于 React App 中的样式化组件
- javascript - React 中动态构建和深度嵌套的表单
- unit-testing - 如何在 micronaut 测试中使用 Mockito.doThrow 来模拟服务调用引发的异常?