You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
yanzong/vendor/alipaysdk/easysdk/php/test/util/generic/ClientTest.php

95 lines
3.3 KiB

<?php
namespace Alipay\EasySDK\Test\util\generic;
use Alipay\EasySDK\Kernel\Factory;
use Alipay\EasySDK\Test\TestAccount;
use Alipay\EasySDK\Kernel\Util\ResponseChecker;
use PHPUnit\Framework\TestCase;
class ClientTest extends TestCase
{
public function __construct($name = null, array $data = [], $dataName = '')
{
parent::__construct($name, $data, $dataName);
$account = new TestAccount();
Factory::setOptions($account->getTestAccount());
}
public function testSDKExecute()
{
$bizParams = array(
"subject" => "Iphone6 16G",
"out_trade_no" => "f4833085-0c46-4bb0-8e5f-622a02a4cffc",
"total_amount" => "0.10"
);
$textParams = array();
$result = Factory::util()->generic()->sdkExecute("alipay.trade.app.pay", $textParams, $bizParams);
$this->assertEquals(true, strpos($result->body, 'alipay_sdk=alipay-easysdk-php') > 0);
$this->assertEquals(true, strpos($result->body, 'sign') > 0);
}
public function testFileExecute()
{
$textParams = array(
"image_type" => "png",
"image_name" => "海底捞",
"image_pids" => "22088021822217233"
);
$account = new TestAccount();
$filePath = $account->getResourcesPath(). '/resources/fixture/sample.png';
$fileParams = array(
"image_content" => $filePath
);
$result = Factory::util()->generic()->fileExecute("alipay.offline.material.image.upload", $textParams, null, $fileParams);
$responseChecker = new ResponseChecker();
$this->assertEquals(true, $responseChecker->success($result));
$this->assertEquals('Success', $result->msg);
}
public function testExecuteWithoutAppAuthToken()
{
$result = Factory::util()->generic()->execute("alipay.trade.create", null, $this->getBizParams(microtime()));
$this->assertEquals('10000', $result->code);
$this->assertEquals('Success', $result->msg);
}
public function testExecuteWithAppAuthToken()
{
$result = Factory::util()->generic()->execute("alipay.trade.create", $this->getTextParams(), $this->getBizParams(microtime()));
$this->assertEquals('20001', $result->code);
$this->assertEquals('Insufficient Token Permissions', $result->msg);
$this->assertEquals('aop.invalid-app-auth-token', $result->subCode);
$this->assertEquals('无效的应用授权令牌', $result->subMsg);
}
//设置系统参数(OpenAPI中非biz_content里的参数)
private function getTextParams()
{
return array("app_auth_token" => "201712BB_D0804adb2e743078d1822d536956X34");
}
private function getBizParams($outTradeNo)
{
$bizParams = array(
"subject" => "Iphone6 16G",
"out_trade_no" => $outTradeNo,
"total_amount" => "0.10",
"buyer_id" => "2088002656718920",
"extend_params" => $this->getHuabeiParams()
);
return $bizParams;
}
private function getHuabeiParams()
{
$extendParams = array("hb_fq_num" => "3", "hb_fq_seller_percent" => "3");
return $extendParams;
}
}