paymaya/paymaya-sdk

PayMaya API 的 PHP SDK。在您的 Web 应用程序上接受信用卡和借记卡付款。

0.0.2 2017-06-14 09:07 UTC

This package is not auto-updated.

Last update: 2024-09-28 19:20:38 UTC


README

PayMaya PHP SDK 允许您的 Web 应用程序接受使用任何 MasterCard 和 Visa 启用的卡(信用卡、借记卡或预付卡)的客户付款。

Code Climate

先决条件

测试

  • phpunit/phpunit: 4.8.*

安装

  • 通过 Composer
composer require "paymaya/paymaya-sdk:*"
  • 直接下载

通过克隆此存储库(https://github.com/PayMaya/PayMaya-PHP-SDK)并将其手动添加到您的项目中来集成 SDK。您可以查看示例目录以了解如何使用 SDK

先决条件

API 密钥

要使用 PayMaya PHP SDK,您需要为沙盒和生产环境有不同的 API 密钥。

沙盒环境

沙盒凭据对于测试应用程序集成非常有用。在此环境中进行的所有交易和资金流动仅是模拟的,并不反映您的生产记录。沙盒 API 密钥可在以下位置找到

https://developers.paymaya.com/blog/entry/checkout-api-test-credit-card-account-numbers

生产环境

在成功集成测试后,在 PayMaya 开发者门户中联系我们以了解更多有关商户入驻流程的信息。一旦您完成入驻,我们将为您提供生产 API 凭据。收到后,只需更改 SDK 初始化以使用生产环境即可开始接受实时交易。

用法

1. 自动加载 SDK。这将包括所有文件和类到自动加载器中。如果您使用 composer 下载了 SDK,请将 PayMaya-PHP-SDK 替换为 vendor。

// Used for composer based installation
require __DIR__  . '/vendor/autoload.php';
// Use below for direct download installation
// require __DIR__  . '/PayMaya-PHP-SDK/autoload.php';

2. 使用公共 API 密钥、秘密 API 密钥和预期环境("SANDBOX" 或 "PRODUCTION")初始化 SDK

//
PayMayaSDK::getInstance()->initCheckout(<PUBLIC_API_KEY>, <SECRET_API_KEY>, <ENVIRONMENT>);

结账

1. 创建结账对象
// Checkout
$itemCheckout = new Checkout();
$user = new User();
$itemCheckout->buyer = $user->buyerInfo();

// Item
$itemAmountDetails = new ItemAmountDetails();
$itemAmountDetails->shippingFee = "14.00";
$itemAmountDetails->tax = "5.00";
$itemAmountDetails->subtotal = "50.00";
$itemAmount = new ItemAmount();
$itemAmount->currency = "PHP";
$itemAmount->value = "69.00";
$itemAmount->details = $itemAmountDetails;
$item = new Item();
$item->name = "Leather Belt";
$item->code = "pm_belt";
$item->description = "Medium-sized belt made from authentic leather";
$item->quantity = "1";
$item->amount = $itemAmount;
$item->totalAmount = $itemAmount;

$itemCheckout->items = array($item);
$itemCheckout->totalAmount = $itemAmount;
$itemCheckout->requestReferenceNumber = "123456789";
$itemCheckout->redirectUrl = array(
	"success" => "https://shop.com/success",
	"failure" => "https://shop.com/failure",
	"cancel" => "https://shop.com/cancel"
	);
2. 结账方法
  • 执行结账 - 方法将为结账对象分配结账 ID 和结账 URL。使用结账 URL 将买家重定向到结账页面。
$itemCheckout->execute();

echo $itemCheckout->id // Checkout ID
echo $itemCheckout->url // Checkout URL
  • 检索结账 - 方法将为给定的结账 ID 分配所有可用的结账信息。
$itemCheckout->retrieve();

/* The following properties will be populated
 *  $status
	*  $paymentType
	*  $transactionReferenceNumber
	*  $receiptNumber;
	*  $paymentStatus;
	*  $voidStatus;
	*  $metadata;
	*/
	

定制

1. 创建定制对象
<?php
$shopCustomization = new Customization();
$shopCustomization->logoUrl = "https://cdn.paymaya.com/production/checkout_api/customization_example/yourlogo.svg";
$shopCustomization->iconUrl = "https://cdn.paymaya.com/production/checkout_api/customization_example/youricon.ico";
$shopCustomization->appleTouchIconUrl = "https://cdn.paymaya.com/production/checkout_api/customization_example/youricon_ios.ico";
$shopCustomization->customTitle = "Checkout Page Title";
$shopCustomization->colorScheme = "#368d5c";
2. 定制方法
  • 设置定制 - 用于设置商户的结账页面定制。
$shopCustomization->set();

echo "Logo URL: " . $shopCustomization->logoUrl . "\n";
// https://cdn.paymaya.com/production/checkout_api/customization_example/yourlogo.svg
echo "Icon URL: " . $shopCustomization->iconUrl . "\n";
// https://cdn.paymaya.com/production/checkout_api/customization_example/youricon.ico
echo "Apple Touch Icon URL: " . $shopCustomization->appleTouchIconUrl . "\n";
// https://cdn.paymaya.com/production/checkout_api/customization_example/youricon_ios.ico
echo "Custom Title: " . $shopCustomization->customTitle . "\n";
// Checkout Page Title
echo "Color Scheme: " . $shopCustomization->colorScheme . "\n";
// #368d5c
  • 获取定制 - 用于获取商户的结账页面定制。
$shopCustomization->get();

echo "Logo URL: " . $shopCustomization->logoUrl . "\n";
// https://cdn.paymaya.com/production/checkout_api/customization_example/yourlogo.svg
echo "Icon URL: " . $shopCustomization->iconUrl . "\n";
// https://cdn.paymaya.com/production/checkout_api/customization_example/youricon.ico
echo "Apple Touch Icon URL: " . $shopCustomization->appleTouchIconUrl . "\n";
// https://cdn.paymaya.com/production/checkout_api/customization_example/youricon_ios.ico
echo "Custom Title: " . $shopCustomization->customTitle . "\n";
// Checkout Page Title
echo "Color Scheme: " . $shopCustomization->colorScheme . "\n";
// #368d5c
  • 移除定制 - 用于移除商户的结账页面定制。
$shopCustomization->remove();

echo "Logo URL: " . $shopCustomization->logoUrl . "\n";
// null
echo "Icon URL: " . $shopCustomization->iconUrl . "\n";
// null
echo "Apple Touch Icon URL: " . $shopCustomization->appleTouchIconUrl . "\n";
// null
echo "Custom Title: " . $shopCustomization->customTitle . "\n";
// null
echo "Color Scheme: " . $shopCustomization->colorScheme . "\n";
// null

Webhook

1. 创建 Webhook 对象
$successWebhook = new Webhook();
$successWebhook->name = Webhook::CHECKOUT_SUCCESS;
$successWebhook->callbackUrl = "http://shop.someserver.com/success";
2. Webhook 方法
  • 注册 Webhook - 用于注册基于事件的 Webhook。
$successWebhook->register();
  • 更新 Webhook - 用于更新现有的基于事件的 Webhook。
$successWebhook->callbackUrl .= "Updated";
$successWebhook->update();

// $successWebhook->callbackUrl = "http://shop.someserver.com/successUpdated"
  • 删除 Webhook - 用于删除现有的 Webhook。您无法撤销此操作。
$successWebhook->delete();
  • 检索 Webhook - 用于检索商户已注册的 Webhook 列表。
Webhook::retrieve();

总结

  • SDK 中的这些文档包括用法概述、分步集成说明和示例代码。
  • 项目中的示例文件夹包含一个示例应用程序。
  • 目前可用的结账 API 文档支付 API 文档涵盖了错误代码和服务器端集成说明。

贡献

  • 如果您想贡献,请分支存储库并发送拉取请求。