1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-20 20:40:56 +01:00
phorge-phorge/src/applications/phortune/provider/PhortuneTestPaymentProvider.php
epriestley b170d1c15f Make it easier to add payment methods for subscription autopay
Summary:
Fixes T7424. Ref T6308.

Currently, there's no option to just add a card directly from the autopay UI. Add a button so this works.

Also, chip away at T6308 a bit. This isn't perfect but looks a little less out of place.

Test Plan:
{F327637}

- Added a payment method, then set it as autopay.

Reviewers: chad, btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T6308, T7424

Differential Revision: https://secure.phabricator.com/D11935
2015-03-02 13:01:08 -08:00

160 lines
3.3 KiB
PHP

<?php
final class PhortuneTestPaymentProvider extends PhortunePaymentProvider {
public function isAcceptingLivePayments() {
return false;
}
public function getName() {
return pht('Test Payments');
}
public function getConfigureName() {
return pht('Test Payments');
}
public function getConfigureDescription() {
return pht(
'Adds a test provider to allow you to test payments. This allows '.
'users to make purchases by clicking a button without actually paying '.
'any money.');
}
public function getConfigureProvidesDescription() {
return pht('This merchant accepts test payments.');
}
public function getConfigureInstructions() {
return pht('This providers does not require any special configuration.');
}
public function canRunConfigurationTest() {
return false;
}
public function getPaymentMethodDescription() {
return pht('Add Mountain of Virtual Wealth');
}
public function getPaymentMethodIcon() {
return 'TestPayment';
}
public function getPaymentMethodProviderDescription() {
return pht('Infinite Free Money');
}
public function getDefaultPaymentMethodDisplayName(
PhortunePaymentMethod $method) {
return pht('Vast Wealth');
}
protected function executeCharge(
PhortunePaymentMethod $payment_method,
PhortuneCharge $charge) {
return;
}
protected function executeRefund(
PhortuneCharge $charge,
PhortuneCharge $refund) {
return;
}
public function updateCharge(PhortuneCharge $charge) {
return;
}
public function getAllConfigurableProperties() {
return array();
}
public function getAllConfigurableSecretProperties() {
return array();
}
public function processEditForm(
AphrontRequest $request,
array $values) {
$errors = array();
$issues = array();
$values = array();
return array($errors, $issues, $values);
}
public function extendEditForm(
AphrontRequest $request,
AphrontFormView $form,
array $values,
array $issues) {
return;
}
/* -( Adding Payment Methods )--------------------------------------------- */
public function canCreatePaymentMethods() {
return true;
}
public function translateCreatePaymentMethodErrorCode($error_code) {
return $error_code;
}
public function getCreatePaymentMethodErrorMessage($error_code) {
return null;
}
public function validateCreatePaymentMethodToken(array $token) {
return true;
}
public function createPaymentMethodFromRequest(
AphrontRequest $request,
PhortunePaymentMethod $method,
array $token) {
$method
->setExpires('2050', '01')
->setBrand('FreeMoney')
->setLastFourDigits('9999')
->setMetadata(
array(
'type' => 'test.wealth',
));
return array();
}
/**
* @task addmethod
*/
public function renderCreatePaymentMethodForm(
AphrontRequest $request,
array $errors) {
$ccform = id(new PhortuneCreditCardForm())
->setSecurityAssurance(
pht('This is a test payment provider.'))
->setUser($request->getUser())
->setErrors($errors);
Javelin::initBehavior(
'test-payment-form',
array(
'formID' => $ccform->getFormID(),
));
return $ccform->buildForm();
}
}