php 游戏支付网关,php – 持续时间后支付网关更改方法

添加composer.json

"require": {

"paypal/rest-api-sdk-php": "*"

}

在yii中查看代码示例

use Yii;

use yii\base\ErrorException;

use yii\helpers\ArrayHelper;

use yii\base\Component;

use yii\helpers\Url;

use PayPal\Api\Address;

use PayPal\Api\CreditCard;

use PayPal\Api\Amount;

use PayPal\Api\Payer;

use PayPal\Api\Payment;

use PayPal\Api\Transaction;

use PayPal\Api\FundingInstrument;

use PayPal\Auth\OAuthTokenCredential;

use PayPal\Api\Details;

use PayPal\Api\Item;

use PayPal\Api\ItemList;

use PayPal\Api\RedirectUrls;

use PayPal\Rest\ApiContext;

class Paypal extends Component

{

public $clientId;

public $clientSecret;

public $currency;

public $returnUrl;

public $cancelUrl;

public $intentType;

public $config;

public function pay($total, $shipping, $tax, $productName, $transactionDescription)

{

$apiContext = new ApiContext(

new OAuthTokenCredential(

$this->getClientId(), // ClientID

$this->getClientSecret() // ClientSecret

)

);

$apiContext->setConfig(ArrayHelper::merge(

[

'mode' => 'sandbox', // development (sandbox) or production (live) mode

'http.ConnectionTimeOut' => 30,

'http.Retry' => 1,

'log.LogEnabled' => YII_DEBUG ? 1 : 0,

'log.FileName' => Yii::getAlias('@runtime/logs/paypal.log'),

'log.LogLevel' => 'FINE',

'validation.level' => 'log',

'cache.enabled' => 'true'

], $this->getConfig())

);

$payer = new Payer();

$payer->setPaymentMethod("paypal");

if(($subtotal = $total - $shipping - $tax) < 0) {

throw new ErrorException('Subtotal is negative');

}

$item = new Item();

$item->setName($productName)

->setCurrency($this->getCurrency())

->setQuantity(1)

->setPrice($subtotal);

$itemList = new ItemList();

$itemList->addItem($item);

$details = new Details();

$details->setShipping($shipping)

->setTax($tax)

->setSubtotal($subtotal);

$amount = new Amount();

$amount->setCurrency($this->getCurrency())

->setTotal($total)

->setDetails($details);

$transaction = new Transaction();

$transaction->setAmount($amount)

->setItemList($itemList)

->setDescription($transactionDescription)

->setInvoiceNumber(uniqid());

$redirectUrls = new RedirectUrls();

$redirectUrls->setReturnUrl(Url::home(true) . Url::to([$this->getReturnUrl()]))

->setCancelUrl(Url::home(true) . Url::to([$this->getCancelUrl()]));

$payment = new Payment();

$payment->setIntent($this->getIntentType())

->setPayer($payer)

->setRedirectUrls($redirectUrls)

->setTransactions(array($transaction));

try {

$payment->create($apiContext);

} catch (Exception $ex) {

}

return $payment;

}

/**

* @return mixed

*/

public function getClientId()

{

return $this->clientId;

}

/**

* @return mixed

*/

public function getClientSecret()

{

return $this->clientSecret;

}

/**

* @return mixed

*/

public function getCurrency()

{

return $this->currency;

}

/**

* @return mixed

*/

public function getReturnUrl()

{

return $this->returnUrl;

}

/**

* @return mixed

*/

public function getCancelUrl()

{

return $this->cancelUrl;

}

/**

* @return mixed

*/

public function getIntentType()

{

return $this->intentType;

}

/**

* @return mixed

*/

public function getConfig()

{

return $this->config;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值