如何制作转向/allpay-4-laravel

Laravel 4的全功能支付服务提供商。

0.1.0 2014-12-15 15:16 UTC

This package is auto-updated.

Last update: 2024-09-10 20:30:14 UTC


README

#Laravel 4的全功能Allpay SDK包装器

allpay-4-laravel是一个将欧付宝官方提供的SDK打包好的Service Provider。

让开发者免于反复初始化SDK、输入配置值的繁琐。

欧付宝官方SDK请见全方位金流SDK技术文件下载

注意:AllPay.Payment.Integration.php(整个Allpay SDK的核心文件)不是我编写的,是Allpay官网提供的SDK。所有功劳和荣誉归给Allpay工程师。

此package仅使用service provider与facade对其进行包装,使其在Laravel上更容易使用。

安装

将allpay-4-laravel添加到你的composer.json

"require": {
  "howtomakeaturn/allpay-4-laravel": "0.1.0"
}

接着使用composer安装:

$ composer update

注册Package

将service provider注册在app/config/app.php中的providers数组

'providers' => array(
	// ...
	
    'Howtomakeaturn\Allpay\AllpayServiceProvider',
    
)

将类别名注册在app/config/app.php中的aliases数组

'aliases' => array(
	// ...
    'Allpay' => 'Howtomakeaturn\Allpay\Facade\Allpay',
)

配置

在config文件夹中新增app/config/allpay-4-laravel.php,然后添加以下代码:

<?php
return array( 
	
    'ServiceURL' => "https://payment.allpay.com.tw/Cashier/AioCheckOut",
    'HashKey' => "您的hashkey",
    'HashIV' => "您的hashiv",
    'MerchantID' => "您的merchantid"

);

用法

由于allpay-4-laravel只是将欧付宝官方提供的SDK类初始化之后进行包装,实际上您仍然是在操作SDK类对象。

欧付宝官方SDK请见全方位金流SDK技术文件下载

使用示例

###官方文件示例

官方SDK文件,一般订单示例如下:

$oPayment = new AllInOne();
/* 服務參數 */
$oPayment->ServiceURL ="<<您要呼叫的服務位址>>";
$oPayment->HashKey = "<<AllPay提供給您的Hash Key>>";
$oPayment->HashIV = "<<AllPay提供給您的Hash IV>>";
$oPayment->MerchantID ="<<AllPay提供給您的特店編號>>";
/* 基本參數 */
$oPayment->Send['ReturnURL'] = "<<您要收到付款完成通知的伺服器端網址>>";
$oPayment->Send['ClientBackURL'] = "<<您要歐付寶返回按鈕導向的瀏覽器端網址>>";
$oPayment->Send['OrderResultURL'] = "<<您要收到付款完成通知的瀏覽器端網址>>";
$oPayment->Send['ChoosePayment'] = PaymentMethod::ALL;
// blah blah
array_push($oPayment->Send['Items'], array('Name' => "<<產品C>>", 'Price' => (int)"<<單價>>",
'Currency' => "<<幣別>>", 'Quantity' => (int) "<<數量>>", 'URL' => "<<產品說明位址>>"));

/* 產生訂單 */
$oPayment->CheckOut();

使用allpay-4-laravel,您不再需要输入服务参数。代码如下:

Allpay::instance()->Send['ReturnURL'] = "<<您要收到付款完成通知的伺服器端網址>>";
Allpay::instance()->Send['ClientBackURL'] = "<<您要歐付寶返回按鈕導向的瀏覽器端網址>>";
Allpay::instance()->Send['OrderResultURL'] = "<<您要收到付款完成通知的瀏覽器端網址>>";
Allpay::instance()->Send['ChoosePayment'] = PaymentMethod::ALL;
// blah blah
array_push(Allpay::instance()->Send['Items'], array('Name' => "<<產品C>>", 'Price' => (int)"<<單價>>",
'Currency' => "<<幣別>>", 'Quantity' => (int) "<<數量>>", 'URL' => "<<產品說明位址>>"));

/* 產生訂單 */
Allpay::instance()->CheckOut();

高级用法

如果您觉得Allpay::instance()太多,可以使用缩写Allpay::i()