morningtrain / wp-nets-easy
WordPress 的 Nets Easy SDK
v0.2.0
2024-03-26 11:15 UTC
Requires
- morningtrain/php-loader: ^0.3
- morningtrain/wp-database: ^0.3
- morningtrain/wp-route: ^0.6
README
一个用于简单处理 NETS Easy 付款的 Morningtrain 包。
目录
简介
入门
要开始使用,请按照以下 安装 部分所述安装包。
要使用该工具,请参阅 用法。
安装
使用 composer 安装
composer require morningtrain/wp-nets-easy
依赖项
用法
初始化包
使用 NETS Easy 测试或实时密钥初始化 \Morningtrain\WpNetsEasy\NetsEasy
。
\Morningtrain\WpNetsEasy\NetsEasy::init('live-secret-key-abcdefghijklmnopqrstuvwxyz123456789');
运行迁移
在开始使用此包或更新包后,必须执行此操作。
您可以按如下方式运行所有新的迁移:
使用 wp cli
wp dbmigrate
使用 php
<?php \Morningtrain\WP\Database\Database::migrate(); ?>
创建付款
use Morningtrain\WpNetsEasy\Classes\Payment\Payment; use Morningtrain\WpNetsEasy\Classes\Payment\Customer; use Morningtrain\WpNetsEasy\Classes\Payment\Address; use Morningtrain\WpNetsEasy\Classes\Payment\Item; // Create payment and set payment information and urls $payment = Payment::create() ->setReference($orderId) ->setCustomer( Customer::create() ->setReference($customer->id) ->setEmail($customer->email) ->setPhone($customer->phone) ->setName($customer->firstName, $customer->lastName) ->setCompanyName($customer->companyName) ->setShippingAddress( Address::create() ->setAddressLine1($customer->address1) ->setAddressLine2($customer->address2) ->setPostalCode($customer->zipCode) ->setCity($customer->city()) ) ) ->setTermsUrl(get_post_permalink($termsPageId)) ->setReturnUrl(Route::route('payment-success', ['token' => $order->token])) ->setCancelUrl(Route::route('payment-cancel', ['token' => $order->token])); // Add items to payments foreach($order->items as $item) { $payment->addItem( Item::create($item->sku) ->setName($item->name) ->setQuantity($item->quantity) ->setUnitPriceInclusiveTax($item->price) ); } // Persist payment in NETS Easy $response = $payment->createRequest(); if(wp_remote_retrieve_response_code($response) !== 201) { // Error handling when something was wrong with the payment wp_redirect($checkoutUrl); exit(); } // Save payment reference to order $order->setPaymentId($payment->getPaymentId()); // Redirect to payment page wp_redirect($payment->getPaymentPageUrl()); exit();
自动扣费
如果您的产品允许您自动扣费,您可以在保存付款之前告诉 Nets Easy 自动扣费。
$payment->autoCharge()
处理现有付款
创建付款请求后,付款参考号将被保存到数据库中。
获取付款
付款是一个使用 Eloquent 实现的模型。要获取付款,您可以使用 Eloquent 的所有方法(请参阅 文档)。
您可以使用自定义方法 Payment::getByPaymentId($paymentId);
$payment = Payment::getByPaymentId($order->payment_id);
终止付款
要终止付款,客户必须未完成结账。您可以在取消回调中使用它,以避免以后的双重付款。
$payment->terminate()
检查付款是否已预留
$payment->isReserved()
检查付款是否已扣费
$payment->isCharged()
扣费付款
$payment->charge()
注意:部分扣费尚未实现
退款付款
注意:退款和部分退款尚未实现
创建订阅
注意:订阅尚未实现
处理现有订阅
注意:订阅尚未实现
处理 webhook
实现处理 webhook 并自动设置付款状态。
如果您需要在特定的 webhook 上执行某些操作,您可以通过动作和过滤器来完成。
已实现的 webhook 列表
动作
过滤器
致谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。