EMLOG

cover

支付SDK 功能扩展

通用的支付插件,方便对接支付平台,目前只支持支付宝支付


售价:免费


开发者:emlog

上次更新: 2025-01-08

支付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
请先登录, 再发布评论

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 开发者

配置支付信息即可


可能感兴趣的应用