支付SDK
通用的支付插件,方便对接支付平台,目前只支持支付宝支付。
该插件需要配合其他应用插件来实现下单购买的功能,仅仅安装该插件没任何意义
使用说明
签约开通支付宝当面付
- 注册并登录支付宝开放平台,完成个人或者企业认证
- 创建一个网页移动应用,得到APPID,按照提示完成当面付产品的签约,
- 设置应用的加密方式为:密钥 方式,最终会得到:应用私钥、支付宝公钥
设置本插件
- 进入插件设置页面:填写上一步得到的APPID、应用私钥、支付宝公钥
- 设置完成即可,返回具体应用检查是否能唤起支付。
对接当面付(应用开发者,普通用户忽略)
发起当面付,获得支付二维码
$sku_id = Input::postIntVar('sku_id');
$sku_name = 'xxxxx';
$pay_type = 'alipay';
$pay_notify_url = BLOG_URL . 'user/order_callback';
$sku_info = $Log_Model->getDetail($sku_id);
$price = $sku_info['fields']['price'];
if ($price <= 0) {
Output::error('价格错误', 200);
}
$Order_Model = new Order_Model('appname');
$order_id = $Order_Model->createOrder(UID, $pay_type, $sku_name, $sku_id, $price);
$paySdk = EmAliPaySdk::getInstance();
$response = $paySdk->createFaceToFacePayment($order_id, $price, '购买付费资源', $pay_notify_url);
if ($response['success']) {
$qrCode = $response['qr_code'];
Output::ok(['qrcode_url' => "https://api.qrserver.com/v1/create-qr-code/?data={$qrCode}", 'order_id' => $order_id, 'sku_id' => $sku_id], 200);
} else {
Output::error($response['message'], 200);
}
发起网页支付 (需要签约支付宝网页支付)
$sku_id = Input::postIntVar('sku_id');
$sku_name = 'xxxxx';
$pay_type = 'alipay';
$return_url= BLOG_URL . '?post=' . $sku_id;
$sku_info = $Log_Model->getDetail($sku_id);
$price = $sku_info['fields']['price'];
if ($price <= 0) {
Output::error('价格错误', 200);
}
$Order_Model = new Order_Model('appname');
$order_id = $Order_Model->createOrder(UID, $pay_type, $sku_name, $sku_id, $price);
$paySdk = EmAliPaySdk::getInstance();
$paySdk->createWebPayment($order_id, $price, $return_url);
支付回调
$request = $_POST;
header('Content-Type: application/json');
if (empty($request)) {
Output::error('参数错误', 200);
}
$paySdk = EmAliPaySdk::getInstance();
$result = $paySdk->handleFaceToFaceCallback($request);
if ($result) {
$out_trade_no = isset($request['out_trade_no']) ? $request['out_trade_no'] : '';
$Order_Model = new Order_Model('appname');
$data = [
'order_id' => $out_trade_no,
'pay_price' => $result['total_amount'],
'out_trade_no' => $result['trade_no'],
'update_time' => time(),
];
$Order_Model->updateOrder($out_trade_no, $data);
Output::ok('success', 200);
} else {
Output::error('fail', 200);
}
版本号 | 1.1.1 |
PHP版本 | 56,74,81 |
安装次数 | 241 |
上次更新 | 2025-01-08 |
发布时间 | 2024-04-03 |