在 WordPress 中使用 Omnipay-Alipay 实现支付宝支付
文 / @WordPress主题
你好,我是小本本,今天要为大家介绍一款好用的支付处理库——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(微信支付)这两个国内常见的支付平台处理库。
相关文章
-
如何创建WordPress古腾堡编辑器的区块(PHP+原生JS) 2024-01-10 01:01:06
-
搭建一个WordPress网站需要多少成本 2023-11-06 00:09:51
-
Symlink介绍(附:如何使用Symlink进行WordPress开发) 2023-11-05 23:38:32
-
让WordPress实现数据库同步的插件:HyperDB 2023-10-24 23:40:49
-
allegro电商平台值得做吗(附:2023年Allegro注册流程指南) 2023-10-08 21:53:39
-
印度跨境电商平台有哪些(附:印度跨境电商做什么产品好) 2023-10-08 21:34:23
-
跨境电商必看的几大海外二手电商平台 2023-10-08 18:04:42
-
WordPress同城互联网产品解决方案:UBASE 2023-10-03 16:40:39
-
WordPress网站的安全插件:wordfence 2023-09-14 09:25:18
-
WordPress 6.3 支持在手动更新插件和主题失败后回滚旧版本 2023-08-28 16:58:45