dongwen9947 2018-06-27 06:01
浏览 77

Square API - 无效字符'C'寻找值的开头

I am using Square Charge API, and following is my request object for a test card -

enter image description here

I am using Square provided PHP client to connect to the API. And I am receiving following response for "Charge" endpoint -

[HTTP/1.1 400 Bad Request] {"errors":[{"category":"INVALID_REQUEST_ERROR","code":"BAD_REQUEST","detail":"invalid character 'C' looking for beginning of value (line 1, character 1)"}]}

Following is my code in PHP -

public function chargeCustomerCard($userId, $custId, $cardId, $note, $billingAddres, $amount, $idempotencyKey){
        $billingAddrRequest = array("address_line_1" => $billingAddres->addr1, "address_line_2" => $billingAddres->addr2, "locality" => $billingAddres->city, "administrative_district_level_1" => $billingAddres->state, "postal_code" => $billingAddres->zip, "country" => $billingAddres->country);
        $billingAddressReq = new \SquareConnect\Model\Address($billingAddrRequest);
        $moneyRequest = array("amount" => $amount, "currency" => "USD");
        $money = new \SquareConnect\Model\Money($moneyRequest);
        $request = array("idempotency_key" => $idempotencyKey, "customer_id" => $custId, "customer_card_id" => $cardId, "delay_capture" => false, "amount_money" => $money, "billing_address" => $billingAddressReq, "note" => $note, "reference_id" => $userId);
        $charge = new \SquareConnect\Model\ChargeRequest($request);
        $response = null;

        try{
            $charge_api = new \SquareConnect\Api\TransactionsApi();
            $response = $charge_api->charge($this->authtoken, $this->locationId, $charge);
            if($response != null && count($response->getErrors()) == 0){
                $transaction = $response->getTransaction();
                $data = array();
                $data['transactionId'] = $transaction->getId();
                $data['created'] = $transaction->getCreatedAt();
                $data['referenceId'] = $transaction->getReferenceId();  //this should be equal to userid
                $tender = $transaction->getTenders()[0];    
                $data['tenderId'] = $tender->getId();
                $data['note'] = $tender->getNote();
                $data['amount'] = ($tender->getAmountMoney()->getAmount())/100;
                $data['currency'] = $tender->getAmountMoney()->getCurrency();
                $processingFee = $tender->getProcessingFeeMoney();
                if(isset($processingFee) && !empty($processingFee)){
                    $data['processingFee'] = $tender->getProcessingFeeMoney()->getAmount();
                }else{
                    $data['processingFee'] = 0;
                }
                $data['tendertype'] = $tender->getType();
                $data['cardStatus'] = $tender->getCardDetails()->getStatus();
                $data['cardBrand'] = $tender->getCardDetails()->getCard()->getCardBrand();
                $data['cardLast4'] = $tender->getCardDetails()->getCard()->getLast4();
                $data['idempotencyKey'] = $idempotencyKey;
                $data['customerPayId'] = $custId;
                $data['customerCardId'] = $cardId;
                return $this->generateReturnData(PAY_API_SUCCESS, '', $data);
            }else{
                return $this->generateReturnData(PAY_API_FAIL, '', $response->getErrors());
            }
        }catch(Exception  $e) {
            return $e->getMessage();
        }
    }

Can someone please point out to me what am I doing wrong here. I am really stuck here. Other API endpoints are working fine, such as, Create Customer, Create Customer Card API endpoints, using the same approach and same PHP client provided by square.

PS - this is on sandbox

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
    • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
    • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
    • ¥30 3天&7天&&15天&销量如何统计同一行
    • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
    • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
    • ¥15 vs2019中数据导出问题
    • ¥20 云服务Linux系统TCP-MSS值修改?
    • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
    • ¥20 怎么在stm32门禁成品上增加查询记录功能