tobess/laravel-pingpp

Pingpp 对 Laravel 5 的包装

1.0.1 2017-09-28 08:16 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:01:27 UTC


README

pingxx 基于 laravel5 的封装

Latest Stable Version Total Downloads Latest Unstable Version License

配置方法

  1. composer.json 文件中添加以下内容,并运行 composer update
{
    "require": {
        "tobess/laravel-pingpp": "dev-master"
    }
}
  1. app/config/app.php 文件中的 providers 变量下添加 Tobess\Pingpp\PingppServiceProvider::class,
  2. app/config/app.php 文件中的 aliases 变量下添加 'Pingpp' => Tobess\Pingpp\Facades\Pingpp::class,
  3. 运行 php artisan vendor:publish 生成配置文件
  4. 修改配置文件中的 2 组 key
  5. 如果需要回调验证,请填写 public_key_path注意该处是路径!,这里参考官方已改为路径,同时当前会兼容旧版本配置文件
  6. 如果需要使用商户身份验证,请填写 private_key_path注意该处是路径! 线上生产环境建议配置 .evn 来配置生产环境

使用方法

use Pingpp;

class SomeClass extends Controller {
    
    public function someFunction()
    {
    	\Pingpp\Charge::create(
            array(
                // 请求参数字段规则,请参考 API 文档:https://www.pingxx.com/api#api-c-new
                'subject'   => 'Your Subject',
                'body'      => 'Your Body',
                'amount'    => $amount,                 // 订单总金额, 人民币单位:分(如订单总金额为 1 元,此处请填 100)
                'order_no'  => $orderNo,                // 推荐使用 8-20 位,要求数字或字母,不允许其他字符
                'currency'  => 'cny',
                'extra'     => $extra,
                'channel'   => $channel,                // 支付使用的第三方支付渠道取值,请参考:https://www.pingxx.com/api#api-c-new
                'client_ip' => $_SERVER['REMOTE_ADDR'], // 发起支付请求客户端的 IP 地址,格式为 IPV4,如: 127.0.0.1
                'app'       => array('id' => APP_ID)
            )
        );
    }
}
use Pingpp;

class SomeClass extends Controller {
    
    public function someFunction()
    {
    	Pingpp::RedEnvelope()->create([
            'order_no'  => '123456789',
	        'app'       => array('id' => 'APP_ID'),
	        'channel'   => 'wx_pub',
	        'amount'    => 100,
	        'currency'  => 'cny',
	        'subject'   => 'Your Subject',
	        'body'      => 'Your Body',
	        'extra'     => array(
	            'nick_name' => 'Nick Name',
	            'send_name' => 'Send Name'
	        ),
	        'recipient'   => 'Openid',
	        'description' => 'Your Description'
        ]);
    }
}

错误调用

当 Pingpp 调用发生错误时会 return false,此时调用 Pingpp::getError(); 返回具体错误内容。

接收 Webhooks 通知

直接调用 Pingpp::notice(),若验证成功,会返回通知的 array 结构数据,若失败直接弹出错误回 Pingpp。如果需要记录错误,请自行监听系统错误,详见 Errors & Logging

感谢

感谢几位 forked 的同学的改进,当时写的很简单,无侵入式的写法,其实在接收 webhooks 方面,可以用 Laravel 自己的 Events 去监听处理,显得更 Laravel 风格。