【问题标题】:Braintree Payment Gateway : Marketplace Sub Merchant Creation and Proper Error ReportingBraintree 支付网关:市场子商户创建和正确的错误报告
【发布时间】:2016-11-18 07:40:35
【问题描述】:

这是我用来在我的 Braintree 帐户中创建子商户帐户的代码,用于在我的本地机器上使用邮递员进行测试。 sub_merchant 创建调用将来自使用自定义表单的 Android 或 iOS 设备。在本地,此代码与邮递员一起工作正常,如果与我们从 $result 传递给 Braintree 的任何字段相关联,任何人都可以建议我如何捕获错误消息对象返回并以简洁的方式显示回客户端屏幕?

    <?php
    include("../connection.php");

    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);

    require_once 'braintree_environment_settings.php';

    $dataReceived = json_decode(file_get_contents('php://input'), true);
    //var_dump($dataReceived);

    if((json_last_error() == JSON_ERROR_NONE))
    {
       // code to handle iOS call
       $firstName = $dataReceived['firstName'];
       $lastName = $dataReceived['lastName'];
       $email = $dataReceived['email'];
       $dateOfBirth = $dataReceived['dateOfBirth'];
       $streetAddress = $dataReceived['streetAddress'];
       $locality = $dataReceived['locality'];
       $region = $dataReceived['region'];
       $postalCode = $dataReceived['postalCode'];
       $accountNumber = $dataReceived['accountNumber'];
       $routingNumber = $dataReceived['routingNumber'];
    }
    else {
       // code to handle Android call
       $firstName = $_POST['firstName'];
       $lastName = $_POST['lastName'];
       $email = $_POST['email'];
       $dateOfBirth = $_POST['dateOfBirth'];
       $streetAddress = $_POST['streetAddress'];
       $locality = $_POST['locality'];
       $region = $_POST['region'];
       $postalCode = $_POST['postalCode'];
       $accountNumber = $_POST['accountNumber'];
       $routingNumber = $_POST['routingNumber'];
    }


    $merchantAccountParams = [
      'individual' => [
        'firstName' => $firstName,  
        'lastName' => $lastName,
        'email' => $email,
        'dateOfBirth' => $dateOfBirth,
        'address' => [
          'streetAddress' => $streetAddress,
          'locality' => $locality,
          'region' => $region,
          'postalCode' => $postalCode
        ]
      ],

      'funding' => [
        'destination' => Braintree_MerchantAccount::FUNDING_DESTINATION_BANK,
        'accountNumber' => $accountNumber,
        'routingNumber' => $routingNumber
      ],
      'tosAccepted' => true,
      'masterMerchantAccountId' => 'zeefasys'
      // 'id' => "Praveens_caffe_store"
    ];

    $result = Braintree_MerchantAccount::create($merchantAccountParams);
$responseData = array('Merchant_ID' => $result->merchantAccount->id, "message" => "Success");

header('Content-type: application/json');
echo json_encode($responseData);
?>

【问题讨论】:

    标签: php braintree braintree-sandbox


    【解决方案1】:

    全面披露:我在 Braintree 工作。如果您还有任何问题,请随时联系support

    MerchantAccount::create() 等 API 调用失败时,Braintree 将向您发送 details on what went wrong in the result object。为了确定响应是否包含商家帐户对象或错误信息,请检查$result-&gt;success 属性。如果为真,您可以从结果对象中提取结果商家帐户。如果它是假的,你会想要loop through the errors Braintree returned。与您传递的字段相关的任何错误都将包含在此处。

    $result = Braintree_MerchantAccount::create($merchantAccountParams);
    if ($result->success == true) {
        $responseData = array('Merchant_ID' => $result->merchantAccount->id, 'message' => "success");
    elseif ($result->success == false) {
        foreach($result->errors->deepAll() as $error) {
            $message .= $error->attribute . ": " . $error->code . " " . $error->message . "\n";
        }
        $responseData = array('Merchant_ID' => NULL, 'message' => $message);
    }
    

    【讨论】:

      猜你喜欢
      • 2020-03-18
      • 2021-07-12
      • 2018-05-26
      • 2022-01-13
      • 2013-05-12
      • 2011-02-27
      • 2020-04-30
      • 1970-01-01
      • 2016-07-28
      相关资源
      最近更新 更多