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.

95 lines
3.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?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;
}
}