Giter Site home page Giter Site logo

laravel-pays-api's Introduction

laravel-pays-api

Travis CI StyleCI Total Downloads License


PaysApi支付

Install

composer require davidnineroc/laravel-pays-api

PHP && Example

<?php

require __DIR__.'/vendor/autoload.php';


/****************************************
 * 在原生 PHP 中使用,请记得设置token,uid等配置
 * 可以通过 setOptions 一次性设置多个
 * 例子中的等效这个链式调用
 * $paysApi->setUid()->setToken()->setNotifyUrl()->setReturnUrl();
*/
$systemConfig = [
    // PaysApi 账户中的 uid
    'uid' => 'xxxx',
    // PaysApi 账户中的 token
    'token' => 'xxx',
    // 付款成功后台通知地址
    'notify_url' => 'http://localhost:8000/notify',
    // 付款成功前台跳转页面
    'return_url' => 'http://localhost:8000/notify',
];

$paysApi = new \DavidNineRoc\Payment\PaysApi();
$paysApi->setOptions($systemConfig);

/****************************************
 * 支付相关的配置
 * 商品价格
 * 商品名字
 * 订单类型:默认为1,支付宝
 * 商品订单号: 不传则自动生成
 */
$response = $paysApi->setPrice(9)
                    ->setGoodsName('大卫')
                    ->setPayType(2)
                    ->setOrderUid(
                        md5(time())
                    )
                    ->pay();
// 将产生一个自动提交的表单
echo $response;

/****************************************
 *  异步支付,返回json
 */
$response = $paysApi->setPrice(9)
    ->setGoodsName('大卫')
    ->setPayType(2)
    ->setOrderUid(
        md5(time())
    )
    ->syncPay();

echo $response;

/****************************************
 *  判断是否成功付款
 */
$paysApi->setOptions($_REQUEST)->verify(function () {
    // 成功,写入数据库
}, function () {
    // 失败,写入日志
});
// 也可以这样子调用
if ($paysApi->setOptions($_REQUEST)->verify()) {
    // 成功,写入数据库
} else {
    // 失败,写入日志
}

/****************************************
 *  查找订单号
 */
$orderId = '12345678910';
$order = $paysApi->find($orderId);
// json 数据
var_dump($order);

Laravel && Example

  • 发布配置文件(配置好之后再进行下一步)
php artisan vendor:publish --provider=DavidNineRoc\Payment\PaysApiServiceProvider
  • 尽情的使用吧!!!
<?php

namespace App\Http\Controllers;

use DavidNineRoc\Payment\PaysApi;
use Illuminate\Http\Request;

class PayController extends Controller
{
    /**
     * 使用依赖注入的方式支付.
     *
     * @param \DavidNineRoc\Payment\PaysApi $paysApi
     *
     * @return string
     */
    public function pay(PaysApi $paysApi)
    {
        return $paysApi->setPrice(9)
            ->setGoodsName('大卫')
            ->setPayType(1)
            ->pay();
    }

    /**
     * 通过门面的方式支付.
     *
     * @return mixed
     */
    public function payByFacade()
    {
        return \PaysApi::setPrice(9)
            ->setGoodsName('大卫')
            ->setPayType(1)
            ->pay();
    }

    /**
     * 异步的方式支付.
     *
     * @param \DavidNineRoc\Payment\PaysApi $paysApi
     *
     * @return string
     */
    public function syncPay(PaysApi $paysApi)
    {
        // json 字符串
        return $paysApi->setPrice(9)
            ->setGoodsName('大卫')
            ->setPayType(1)
            ->syncPay();
    }
    
    /**
     * 验证付款成功回调通知
     * 必须调用 setOptions,把所有参数传入
     * 之后可以调用 verify 验证是否通过
     * @param PaysApi $paysApi
     * @param Request $request
     */
    public function verify(PaysApi $paysApi, Request $request)
    {
        $paysApi
            ->setOptions($request->all())
            ->verify(
                function () {
                    // 验证通过,写入数据库

                },
                function () {
                    // 验证不通过, 写入日志
                }
            );

        // 当然,你也可以用这种方式
        if ($paysApi->setOptions($request->all())->verify()) {
            // 验证通过,写入数据库
        } else {
            // 验证不通过, 写入日志
        }
    }
    
     /**
      * 查找订单
      * @param PaysApi $paysApi
      */
     public function queryOrder(PaysApi $paysApi)
     {
         $orderId = '12345678910';
         
         // json 字符串
         dd($paysApi->find($orderId));
     }
}

License

The Laravel framework is open-sourced software licensed under the MIT license.

laravel-pays-api's People

Contributors

seth-shi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.