gpt4 book ai didi

php - Woocommerce + Payment (PayPal) - 安全更新订单状态 + 获取交易 ID

转载 作者:太空宇宙 更新时间:2023-11-03 15:57:53 32 4
gpt4 key购买 nike

我目前正在实现 Paypal Payment Gateway进入我的商店。我在我的 Paypal 沙盒帐户中添加了一个返回 URL。

到目前为止的付款步骤:

  • 创建订单
  • 通过 WC_Gateway_Paypal 类创建支付
  • 重定向到 Paypal 网站登录并处理付款
  • 成功后重定向到return_url

示例代码:

function create_order()
{
$order = wc_create_order();
$product = wc_get_product(55);
$order->add_product($product, 1);

$address = array(
'first_name' => 'John',
'last_name' => 'Doe',
'company' => '',
'email' => 'john@doe.com',
'phone' => '111111',
'address_1' => '',
'address_2' => '',
'city' => '',
'state' => '',
'postcode' => '',
'country' => ''
);
$order->set_address($address, 'billing');
$order->set_address($address, 'shipping');
$order->calculate_totals();
$order->set_payment_method('paypal');
$paypal = new WC_Gateway_Paypal();
$paymentdetails = $paypal->process_payment($order->get_id());
return $paymentdetails;
}

$paymentdetails 中,我返回将客户重定向到的 paypal URL。

成功付款后,客户将从 paypal 重定向到:http://mypage.com/56/?key=wc_order_59d24a26d4ccb&utm_nooverride=1

现在我想更新我的订单。我知道我可以从重定向 URL 中读取订单的 ID 和 key ,但这不会是一个安全问题吗?如果有人知道 ID 或 key ,他可以触发 GET 到我的网站并更新他的订单,而无需实际付款。

有没有更好的方法来实现这一点?还是我只需要使用 key=wc_order_59d24a26d4ccb 而不是 ID 并注意不要将 key 发送到前端?

此外,我没有得到任何transaction_id$order->get_transaction_id();在成功支付后为空。这是因为我在本地机器上开发/使用沙箱帐户吗?

最佳答案

这很可能是因为您正在本地计算机上进行开发。

paypal 集成在后台做了很多事情(交换 token 、更新订单等)。当您创建付款时,paypal 会获取您的本地开发 URL(即 http://localhost/something)但无法访问它,因为您在路由器后面。尝试将安装移动到服务器或网络空间,然后重试,它应该可以工作。

关于php - Woocommerce + Payment (PayPal) - 安全更新订单状态 + 获取交易 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46528518/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com