EMLOG

cover

支付SDK 功能扩展

通用的支付插件,方便开发者对接支付平台:支付宝支付、虎皮椒支付


售价:免费


开发者:emlog

上次更新: 2周前


无代码加密 无额外授权 版本号:1.2.1 适配PHP:56,74,81

支付SDK

通用的支付插件,方便对接支付平台,目前只支持支付宝支付、虎皮椒支付。

🚨该插件需要配合其他应用主题或者插件来实现下单购买的功能,仅仅安装该插件没任何意义

支付宝

签约开通支付宝当面付

  • 注册并登录支付宝开放平台,完成个人或者企业认证
  • 申请开通支付宝当面付:按照提示完成当面付产品的签约(当面付个人认证用户提供办公场所照片也可以完成申请)。
  • 创建一个网页移动应用,得到 APPID
  • 进入应用开发设置:应用的加密方式为:密钥方式,最终会得到:应用私钥支付宝公钥
  • 进入应用开发设置:填写应用网关和授权回调地址,具体地址由使用该SDK的应用提供。

设置本插件

  • 进入插件设置页面:填写上一步得到的APPID应用私钥支付宝公钥
  • 设置完成即可,返回具体应用检查是否能唤起支付。

开发对接支付宝当面付

对接部分针对应用开发者,普通用户忽略

发起当面付,获得支付二维码

<?php 
$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);
}

发起网页支付 (需要签约支付宝网页支付)

<?php 
$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);

支付回调

<?php 
$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. 注册并登录 虎皮椒支付平台
  2. 完成实名认证和商户认证
  3. 创建应用,获得 APPIDAPPSECRET
  4. 配置支付网关地址(默认为官方网关)
  5. 设置异步通知地址和同步跳转地址

设置本插件

  • 进入插件设置页面,切换到"虎皮椒支付"选项卡
  • 填写从虎皮椒平台获得的APPIDAPPSECRET
  • 确认网关地址(通常使用默认值即可)
  • 设置完成即可,返回具体应用检查是否能正常支付

开发对接虎皮椒支付

对接部分针对应用开发者,普通用户忽略

发起虎皮椒支付

<?php 
$sku_id = Input::postIntVar('sku_id');
$sku_name = 'xxxxx';
$pay_type = 'xunhu';
$notify_url = BLOG_URL . 'user/order_callback';
$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 = EmXunhuPaySdk::getInstance();
$response = $paySdk->createPayment($order_id, $price, $sku_name, $notify_url, $return_url);
if ($response['success']) {
    // 支持两种支付方式:网页跳转和二维码支付
     echo "支付创建成功!<br>";
     echo "订单号:" . $response['order_id'] . "<br>";
     echo "支付链接:<a href='" . $response['pay_url'] . "' target='_blank'>点击支付</a><br>";

     // 如果有二维码地址,显示二维码支付选项
     if (!empty($response['qrcode_url'])) {
         echo "二维码支付:<br>";
         echo "<img src='" . $response['qrcode_url'] . "' alt='支付二维码' style='width:200px;height:200px;'><br>";
         echo "扫描上方二维码完成支付<br>";
     }
} else {
    Output::error($response['message'], 200);
}

返回结果:

  • success: 是否成功
  • order_id: 订单号
  • pay_url: 支付链接(跳转网页支付)
  • qrcode_url: 二维码支付地址(可选,用于生成二维码支付)

虎皮椒支付回调

<?php 
$request = $_POST;
header('Content-Type: text/plain');
if (empty($request)) {
    echo 'fail';
    exit;
}

$paySdk = EmXunhuPaySdk::getInstance();
$result = $paySdk->handleNotify($request);
if ($result) {
    $out_trade_no = isset($request['trade_order_id']) ? $request['trade_order_id'] : '';
    $Order_Model = new Order_Model('appname');
    $data = [
        'order_id' => $out_trade_no,
        'pay_price' => $result['total_fee'],
        'out_trade_no' => $result['order_id'],
        'update_time' => time(),
    ];
    $Order_Model->updateOrder($out_trade_no, $data);
    echo 'success';
} else {
    echo 'fail';
}
请先登录, 再发布评论

avatar

阿六哥哥

铁杆 2025-08-11 14:30:10

希望后续接入微信支付~


avatar

阿浩@魅影

友情 2025-02-22 23:30:26

使用sdk,延迟有5到12秒


avatar

揽月听风

铁杆 2025-01-08 15:03:04

实际开发中存在如下问题,返回的是对象 需要修改为对象,否则会报错

avatar

emlog 开发者

新版已修复,可以更新试试


avatar

阿浩@魅影

友情 2024-12-22 13:10:48

错误代码 missing-signature 错误原因: 缺少签名参数
这怎么整

avatar

emlog 开发者

加我QQ吧,点我名字进去有QQ


avatar

健仔按快门

铁杆 2024-10-11 15:30:17

回调地址怎么填

avatar

emlog 开发者

加我QQ吧,点我名字进去有QQ


avatar

不知名的牛马

铁杆 2024-06-12 17:53:22

填加个易支付吧!支付宝都被清退了!

avatar

emlog 开发者

感谢反馈,下个版本考虑下


avatar

星辰散人

铁杆 2024-04-05 17:24:09

是直接在里面填入文件内容还是文件路径?

avatar

emlog 开发者

配置支付信息即可