ryuamy/trs-emas-php

财政部PHP API第三方库

dev-master 2021-07-22 10:21 UTC

This package is auto-updated.

Last update: 2024-09-22 17:35:51 UTC


README

license release

使用财政部 API v2.2,请确保使用您打算使用的财政部API版本,并阅读以下关于注册和交易流程的API步骤

安装

通过以下命令使用composer安装包

composer require ryuamy/trs-emas-php

调用包

在您的项目上添加以下代码

use Ryuamy\TrsEmas;

用法

TrsEmas\Class::function( $productionFlag, $bodyParameters, $token );

参数详情

  • $productionFlag: 如果设置为true,则包将调用财政部生产API,如果为false,则调用财政部测试API。所有类均必须设置。
  • $bodyParameters: 请求体参数。一些类中为可选。
  • $token: 从客户端登录(用于用户注册)或用户登录(用于API的其余部分)获取的bearer令牌。一些类中为可选。

请参考示例以了解每个类对参数的要求。

示例

认证

客户端登录

$bodyParameters = [
    'client_id' => '(Treasury client id)',
    'client_secret' => '(Treasury client secret)',
];

$Tresury = TrsEmas\Authentication::loginClient( true, $bodyParameters );

用户注册

$bodyParameters = [
    'name' => 'Ryu Amy',
    'email' => 'ryuamy.mail@gmail.com',
    'password' => '(My Password)',
    'password_confirmation' => '(My Password)',
    'gender' => 'female',
    'birthday' => '1991-01-01',
    'referral_code' => '',
    'phone' => '081312345678',
    'security_question' => 'KQxz9YXazA14VEO',
    'security_question_answer' => 'Sebastian Michaelis',
    'selfie_scan' => '/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQ...',
    'id_card_scan' => '/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQ...',
    'owner_name' => 'Ryu Amy',
    'account_number' => '123456',
    'bank_code' => 'string',
    'branch' => 'Jakarta',
    'customer_concern' => false
];

$Tresury = TrsEmas\Authentication::register( true, $bodyParameters, '(Bearer Token)' );

注意

用户登录

$bodyParameters = [
    'client_id' => '(Treasury client id)',
    'client_secret' => '(Treasury client secret)',
    'email' => 'ryuamy.mail@gmail.com',
    'password' => '(My Password)',
];

$Tresury = TrsEmas\Authentication::login( true, $bodyParameters );

交易

黄金价格

$bodyParameters = [
    'start_date' => '2021-03-03 09:00:00',
    'end_date' => '2021-03-03 10:00:00'
];

$Tresury = TrsEmas\Transaction::goldRate( true, $bodyParameters, '(Bearer Token)' );

计算购买金额类型货币

$bodyParameters = [
    'amount_type' => 'currency',
    'amount' => 400000,
    'payment_method' => 'bca',
];

$Tresury = TrsEmas\Transaction::calculateBuy( true, $bodyParameters, '(Bearer Token)' );

计算购买金额类型黄金

$bodyParameters = [
    'amount_type' => 'gold',
    'amount' => 0.582,
    'payment_method' => 'bca',
];

$Tresury = TrsEmas\Transaction::calculateBuy( true, $bodyParameters, '(Bearer Token)' );

计算销售金额类型货币

$bodyParameters = [
    'amount_type' => 'currency',
    'amount' => 50000,
];

$Tresury = TrsEmas\Transaction::calculateSell( true, $bodyParameters, '(Bearer Token)' );

计算销售金额类型黄金

$bodyParameters = [
    'amount_type' => 'gold',
    'amount' => 0.015,
];

$Tresury = TrsEmas\Transaction::calculateSell( true, $bodyParameters, '(Bearer Token)' );

计算合作伙伴购买金额类型货币

$bodyParameters = [
    'amount_type' => 'currency',
    'amount' => 400000,
];

$Tresury = TrsEmas\Transaction::calculateBuyPartner( true, $bodyParameters, '(Bearer Token)' );

计算合作伙伴购买金额类型黄金

$bodyParameters = [
    'amount_type' => 'gold',
    'amount' => 0.582,
];

$Tresury = TrsEmas\Transaction::calculateBuyPartner( true, $bodyParameters, '(Bearer Token)' );

计算合作伙伴销售金额类型货币

$bodyParameters = [
    'amount_type' => 'currency',
    'amount' => 50000,
];

$Tresury = TrsEmas\Transaction::calculateSellPartner( true, $bodyParameters, '(Bearer Token)' );

计算合作伙伴销售金额类型黄金

$bodyParameters = [
    'amount_type' => 'gold',
    'amount' => 0.015,
];

$Tresury = TrsEmas\Transaction::calculateSellPartner( true, $bodyParameters, '(Bearer Token)' );

支付方式

$Tresury = TrsEmas\Transaction::paymentMethod( true, '(Bearer Token)' );

购买黄金

$bodyParameters = [
    'unit' => 1.8766253,
    'total' => 796169,
    'payment_channel' => 'BRIN',
    'latitude' => '-6.914744',
    'longitude' => '107.609810'
];

$Tresury = TrsEmas\Transaction::buy( true, $bodyParameters, '(Bearer Token)' );

为合作伙伴购买黄金

$bodyParameters = [
    'invoice_number' => 'TRS42154451',
    'unit' => 1.8766253,
    'total' => 796169,
    'payment_channel' => 'BRIN',
    'latitude' => '-6.914744',
    'longitude' => '107.609810'
];

$Tresury = TrsEmas\Transaction::buyPartner( true, $bodyParameters, '(Bearer Token)' );

申请优惠券购买黄金

$bodyParameters = [
    'code' => 'TRSVCR1',
];

$Tresury = TrsEmas\Transaction::applyVoucher( true, $bodyParameters, '(Bearer Token)' );

合作伙伴支付通知

$bodyParameters = [
    'invoice_number' => 'TRS42154451',
    'payment_note' => 'Payment to BRI'
];

$Tresury = TrsEmas\Transaction::paymentNotify( true, $bodyParameters, '(Bearer Token)' );

出售黄金

$bodyParameters = [
    'total' => 31587,
    'unit' => 0.0432,
    'latitude' => '-6.914744',
    'longitude' => '107.609810'
];

$Tresury = TrsEmas\Transaction::sell( true, $bodyParameters, '(Bearer Token)' );

铸币

合作伙伴铸币

$Tresury = TrsEmas\Minting::mintingPartner( true, '(Bearer Token)' );

铸币费

$bodyParameters = [
    'minting_partner' => 'x6A3lOoJXL59zDd'
];

$Tresury = TrsEmas\Minting::mintingFee( true, $bodyParameters, '(Bearer Token)' );

注意

铸币件

$bodyParameters = [
    'minting_partner' => 'x6A3lOoJXL59zDd'
];

$Tresury = TrsEmas\Minting::mintingPiece( true, $bodyParameters, '(Bearer Token)' );

注意

铸币运输

$bodyParameters = [
    'minting_partner' => 'x6A3lOoJXL59zDd'
];

$Tresury = TrsEmas\Minting::mintingShipping( true, $bodyParameters, '(Bearer Token)' );

注意

计算铸币

$bodyParameters = [
    'minting_partner' => 'x6A3lOoJXL59zDd',
    'minting_fee' => 'JGYPjrXW7XDw2mE',
    'minting_piece' => 'KQxz9YXazA14VEO',
    'minting_shipping' => '7Jb1VXLrzpm69xv'
];

$Tresury = TrsEmas\Minting::calculateMinting( true, $bodyParameters, '(Bearer Token)' );

注意

黄金铸币

$bodyParameters = [
    'minting_partner' => 'x6A3lOoJXL59zDd',
    'minting_fee' => 'JGYPjrXW7XDw2mE',
    'minting_piece' => 'KQxz9YXazA14VEO',
    'minting_shipping' => '7Jb1VXLrzpm69xv',
    'shipping_address' => 'Jalan Prapanca, Jakarta Selatan',
    'payment_channel' => 'BRIN',
    'latitude' => '-6.914744',
    'longitude' => '107.609810',
];

$Tresury = TrsEmas\Minting::goldMinting( true, $bodyParameters, '(Bearer Token)' );

为合作伙伴铸币

$bodyParameters = [
    'minting_partner' => 'x6A3lOoJXL59zDd',
    'minting_fee' => 'JGYPjrXW7XDw2mE',
    'minting_piece' => 'KQxz9YXazA14VEO',
    'minting_shipping' => '7Jb1VXLrzpm69xv',
    'shipping_address' => 'Jalan Prapanca, Jakarta Selatan',
    'payment_channel' => 'BRIN',
    'latitude' => '-6.914744',
    'longitude' => '107.609810',
];

$Tresury = TrsEmas\Minting::goldMintingPartner( true, $bodyParameters, '(Bearer Token)' );

用户

获取个人资料

$Tresury = TrsEmas\User::profile( true, '(Bearer Token)' );

更新个人资料

仅获取财政部更新个人资料URL

$Tresury = TrsEmas\User::updateProfile( true, '(Bearer Token)' );

更新密码

$bodyParameters = [
    'email' => 'ryuamy.mail@gmail.com',
    'password' => '(New Password)',
    'password_confirmation' => '(New Password)',
    'pin' => '12345',
];

$Tresury = TrsEmas\User::updatePassword( true, $bodyParameters, '(Bearer Token)' );

历史记录

购买黄金历史记录

$Tresury = TrsEmas\History::buyGoldHistory( true, '(Bearer Token)' );

出售黄金历史记录

$Tresury = TrsEmas\History::sellGoldHistory( true, '(Bearer Token)' );

黄金铸币历史记录

$Tresury = TrsEmas\History::goldMintingHistory( true, '(Bearer Token)' );

购买黄金详情历史记录

$bodyParameters = [
    'invoice_no' => 'TRS42154451',
];

$Tresury = TrsEmas\History::buyGoldDetailHistory( true, $bodyParameters, '(Bearer Token)' );

出售黄金详情历史记录

$bodyParameters = [
    'invoice_no' => 'TRS42154451',
];

$Tresury = TrsEmas\History::sellGoldDetailHistory( true, $bodyParameters, '(Bearer Token)' );

黄金铸币详情历史记录

$bodyParameters = [
    'invoice_no' => 'TRS42154451',
];

$Tresury = TrsEmas\History::goldMintingDetailHistory( true, $bodyParameters, '(Bearer Token)' );

附加

检查电子邮件可用性

$bodyParameters = [
    'email' => 'ryuamy.mail@gmail.com',
];

$Tresury = TrsEmas\Additional::checkEmailAvailability( true, $bodyParameters );

安全问题

$Tresury = TrsEmas\Additional::securityQuestion( true );

银行列表

$Tresury = TrsEmas\Additional::bankList( true );

步骤

注册

  1. 从客户端登录API获取Bearer Token
  2. 从安全问题API获取安全码列表
  3. 从银行列表API获取银行列表
  4. 进行客户注册

黄金交易

要创建使用财政部支付方式的黄金交易,以下步骤:

  1. 获取黄金价格。
  2. 使用货币或单位计算黄金交易。黄金单位支持最多4位数字。
  3. 获取支付方式列表以获取payment_code响应。
  4. 使用gold buy和sell gold端点进行交易。

要使用合作伙伴的支付方式创建黄金交易,以下步骤是

  1. 获取黄金价格。
  2. 使用货币或单位计算黄金交易。黄金单位支持最多4位数字
  3. 使用gold buy和sell gold端点进行交易。
  4. 触发payment notify端点以确保支付已成功。

铸币或铸金

  1. 获取铸币合作伙伴列表。
  2. 检查所选合作伙伴的铸币费用。
  3. 检查所选合作伙伴可用的铸币件。
  4. 计算总铸币支付。
  5. 获取支付方式列表以获取payment_code响应。
  6. 进行交易。