thinkphp5.1接入paypal支付
php计入paypal,要先到https://developer.paypal.com/developer/dashboard/sandbox
下面以测试环境的来说明:
注册个开发者用户,然后在左边的菜单栏Sandbox accounts 新建测试用户,入下图:
其中 Types:Business为商家(收款用) Types:Personal为个人(支付用)
获取商家的clientId,clientSecret,到左边菜单
创建个应用,然后点击应用,就可以 获取clientId,clientSecret,入下图:
设置Webhook路径,再进入应用后,点击Add Webhook
下面代码部分:
function createOrder(){
$clientId = "Ab4QAgRbIpIzDSxLQgE2dfffaan7mLR92rF0S8_-Vtrm0_Tq2SdKyh_-of6NuPlp_o5E-buPYtTh";
$clientSecret = "EFop6xRqpbhdvatOckCs2-2bG0l8QycfatttffNuj0TADSm7TMwbq_EMWsRI-IWxEZKM46_t196JB-cLR";
$environment = new SandboxEnvironment($clientId, $clientSecret);
$client = new PayPalHttpClient($environment);
// Construct a request object and set desired parameters
// Here, OrdersCreateRequest() creates a POST request to /v2/checkout/orders
$request = new OrdersCreateRequest();
$request->prefer('return=representation');
$request->body = self::buildRequestBody();
try {
// Call API with your client and get a response for your call
$response = $client->execute($request);
print_r($response);
}catch (HttpException $ex) {
print_r($ex->getMessage());
}
}
接口返回的结果为:
PayPalHttp\HttpResponse Object
(
[statusCode] => 201
[result] => stdClass Object
(
[id] => 8YP3336604988663M
[intent] => AUTHORIZE
[status] => CREATED
[purchase_units] => Array
(
[0] => stdClass Object
(
[reference_id] => PUHF
[amount] => stdClass Object
(
[currency_code] => USD
[value] => 220.00
[breakdown] => stdClass Object
(
[item_total] => stdClass Object
(
[currency_code] => USD
[value] => 180.00
)
[shipping] => stdClass Object
(
[currency_code] => USD
[value] => 20.00
)
[handling] => stdClass Object
(
[currency_code] => USD
[value] => 10.00
)
[tax_total] => stdClass Object
(
[currency_code] => USD
[value] => 20.00
)
[shipping_discount] => stdClass Object
(
[currency_code] => USD
[value] => 10.00
)
)
)
[payee] => stdClass Object
(
[email_address] => sb-k6m0t14193073@business.example.com
[merchant_id] => VQZ5Q73L4S48S
)
[description] => Sporting Goods
[custom_id] => CUST-HighFashions
[soft_descriptor] => HighFashions
[items] => Array
(
[0] => stdClass Object
(
[name] => T-Shirt
[unit_amount] => stdClass Object
(
[currency_code] => USD
[value] => 90.00
)
[tax] => stdClass Object
(
[currency_code] => USD
[value] => 10.00
)
[quantity] => 1
[description] => Green XL
[sku] => sku01
[category] => PHYSICAL_GOODS
)
[1] => stdClass Object
(
[name] => Shoes
[unit_amount] => stdClass Object
(
[currency_code] => USD
[value] => 45.00
)
[tax] => stdClass Object
(
[currency_code] => USD
[value] => 5.00
)
[quantity] => 2
[description] => Running, Size 10.5
[sku] => sku02
[category] => PHYSICAL_GOODS
)
)
[shipping] => stdClass Object
(
[method] => United States Postal Service
[name] => stdClass Object
(
[full_name] => John Doe
)
[address] => stdClass Object
(
[address_line_1] => 123 Townsend St
[address_line_2] => Floor 6
[admin_area_2] => San Francisco
[admin_area_1] => CA
[postal_code] => 94107
[country_code] => US
)
)
)
)
[create_time] => 2022-03-02T05:27:04Z
[links] => Array
(
[0] => stdClass Object
(
[href] => https://api.sandbox.paypal.com/v2/checkout/orders/8YP3336604988663M
[rel] => self
[method] => GET
)
[1] => stdClass Object
(
[href] => https://www.sandbox.paypal.com/checkoutnow?token=8YP3336604988663M
[rel] => approve
[method] => GET
)
[2] => stdClass Object
(
[href] => https://api.sandbox.paypal.com/v2/checkout/orders/8YP3336604988663M
[rel] => update
[method] => PATCH
)
[3] => stdClass Object
(
[href] => https://api.sandbox.paypal.com/v2/checkout/orders/8YP3336604988663M/authorize
[rel] => authorize
[method] => POST
)
)
)
[headers] => Array
(
[] =>
[Content-Type] => application/json
[Content-Length] => 1801
[Connection] => keep-alive
[Date] => Wed, 02 Mar 2022 05
[Application_id] => APP-80W284485P519543T
[Cache-Control] => max-age=0, no-cache, no-store, must-revalidate
[Caller_acct_num] => VQZ5Q73L4S48S
[Paypal-Debug-Id] => b7c55b9bcbe64
[Strict-Transport-Security] => max-age=31536000; includeSubDomains
)
)
怎么已经创建订单成功了,接下来就是支付了。
另附:paypal-php-sdk下载