在 WordPress 中使用 Omnipay-Alipay 实现支付宝支付
文 / @UTHEME
你好,我是小本本,今天要为大家介绍一款好用的支付处理库——Omnipay-Alipay。大家都知道,支付宝的支付API实在是让人头疼,特别是在WordPress中实现支付宝支付更是困难重重。但Omnipay库的出现,解决了这个问题,统一化了各个支付平台的支付网关,只需要学习一种支付接口,就可以在WordPress中实现各种支付网关的接入,非常方便实用。
第一步:安装配置Omnipay-Alipay
首先,在命令行中使用Composer安装:
composer require omnipay-alipay
然后,在代码中,加载autoload.php,并配置支付宝帐号。
//加载composer安装的库
require_once(dirname(__FILE__).'/../vendor/autoload.php');
use Omnipay\Omnipay;
//创建调用支付宝支付网关的函数,以便在其他文件中调用
function get_gate_way(){
$gateway = Omnipay::create('Alipay_Express');
$gateway->setPartner('*******');//支付宝PID
$gateway->setKey('*****************');//支付宝Key
$gateway->setSellerEmail('admin@example.com');//收款账户email
$gateway->setReturnUrl('https://www.wpzhiku.com/order_return');
$gateway->setNotifyUrl('https://www.wpzhiku.com/order_return');
return $gateway;
}
第二步:调用接口,跳转到支付宝支付
提供生成订单必需的数据,例如订单号、订单金额、订单标题等,创建订单,并跳转到支付宝支付页面。
//在线充值
newDispatch([
'online_charge' => function($request){
$mount = trim($_POST['mount']);
$tn = "p4".order_no();
//计算总金额
$total_fee = array_sum($mount);
//创建订单数据,可以是前台提交,也可以是自动生成
$options=[
'out_trade_no' => $tn,//生成唯一订单号
'subject' => '在线充值',//订单标题
'total_fee' => $total_fee,//订单总金额
];
//获取支付网关
$gateway = get_gate_way();
$response = $gateway->purchase($options)->send();
//直接跳转到支付宝支付页面
$response->redirect();
},
]);
第三步:处理返回数据,根据返回数据处理订单
这里是return_url的内容,跟据接受到的参数,联系支付宝验证订单支付状态,根据验证状态确定支付成功,如果支付成功,处理订单(这里是直接显示一个支付成功的字符串),如果支付失败,返回支付失败信息。
//处理支付宝返回信息
newDispatch([
'order_return' => function($request){
$options=[
'request_params' => $_REQUEST,
];
$gateway = get_gate_way();
$response = $gateway->completePurchase($options)->send();
if($response->isSuccessful() && $response->isTradeStatusOk()){
$total_fee = $_GET['total_fee'];
$trade_no = $_GET['trade_no'];
$out_trade_no = $_GET['out_trade_no'];
$subject = $_GET['subject'];
$body = $_GET['body'];
echo "支付成功";
}else{
echo "支付失败";
}
}
)]
上面的示例代码中,简单介绍了Omnipay-Alipay的使用方法和流程。在具体的项目中,我们还是要根据需要,实现具体的业务逻辑。除此之外,还有Omnipay-UnionPay(银联支付)和Omnipay-WeChat(微信支付)这两个国内常见的支付平台处理库。

相关文章
-
IDC/ISP办理许可证的基本条件(附:IDC和ISP许可证申请流程) 2023-06-07 08:00:01
-
利用tinymce.activeEditor获取到 WordPress可视化编辑器中的值(附:tinymce.activeEditor常见其他用法) 2023-06-06 08:00:02
-
WordPress是什么框架吗?WordPress是用什么写的? 2023-06-06 08:00:02
-
WordPress哪个版本稳定好用(附:如何查看当前WordPress版本) 2023-06-06 08:00:02
-
Automattic 发布 wp-now:由 WordPress Playground 提供支持的本地开发环境 2023-06-05 08:00:02
-
UGPT插件:国内首个永久免费WordPress ChatGPT插件 2023-06-04 08:00:01
-
PHP预定义常量都有哪些(含常见PHP魔术常量) 2023-06-04 08:00:01
-
php的 require 和include 有什么区别 2023-06-04 08:00:01
-
wordpress seo哪个插件好用 – WordPress SEO by Yoast 2023-06-03 08:00:02
-
WordPress古腾堡编辑器模块开发教程 2023-06-03 08:00:02