2016-11-16 6 views
0

私のリクエストに使用しているコードはここにあります。ここでPaysafeにリクエストを送信しようとすると、APIから次の応答が得られます。

{ 
    "total_amount": "1000", 
    "currency_code": "USD", 
    "merchant_ref_num": "12345678", 
    "customer_notification_email": "[email protected]", 
    "profile": { 
     "firstName": "Test", 
     "lastName": "Sample", 
     "merchantCustomerId": "12345678" 
    }, 
    "billingDetails": { 
     "city": "Montreal", 
     "country": "CA", 
     "street": "123 Main Apt 200", 
     "zip": "H1H1H1", 
     "state": "QC", 
     "phone": "555-555-5555" 
    }, 
    "extendedOptions": [ 
     { 
      "key": "authType", 
      "value": "auth" 
     }, 
     { 
      "key": "orderTimeout", 
      "value": 2592000 
     }, 
     { 
      "key": "suppressCustomerEmail", 
      "value": true 
     }, 
     { 
      "key": "silentPost", 
      "value": false 
     } 
    ], 
    "callback": [ 
     { 
      "format": "get", 
      "rel": "on_success", 
      "uri": "https://secure4137.hostgator.com/~cmedei/optimal/callbacks/callback.php", 
      "returnKeys": [ 
       "id", 
       "profile.paymentToken", 
       "profile.id", 
       "transaction.errorCode", 
       "transaction.errorMessage", 
       "transaction.confirmationNumber", 
       "transaction.amount", 
       "transaction.authType", 
       "transaction.status", 
       "transaction.currencyCode", 
       "transaction.merchantRefNum", 
       "transaction.card.brand", 
       "transaction.card.country", 
       "transaction.card.expiry", 
       "transaction.card.lastDigits", 
       "transaction.card.threeDEnrolment", 
       "transaction.card.threeDResult", 
       "transaction.card.type", 
       "transaction.paymentType", 
       "transaction.prepaidcard.lastDigits" 
      ], 
      "retries": 3, 
      "synchronous": true 
     }, 
     { 
      "format": "get", 
      "rel": "on_decline", 
      "uri": "https://secure4137.hostgator.com/~cmedei/optimal/callbacks/callback.php", 
      "returnKeys": [ 
       "id", 
       "profile.paymentToken", 
       "profile.id", 
       "transaction.errorCode", 
       "transaction.errorMessage", 
       "transaction.confirmationNumber", 
       "transaction.amount", 
       "transaction.authType", 
       "transaction.status", 
       "transaction.currencyCode", 
       "transaction.merchantRefNum", 
       "transaction.card.brand", 
       "transaction.card.country", 
       "transaction.card.expiry", 
       "transaction.card.lastDigits", 
       "transaction.card.threeDEnrolment", 
       "transaction.card.threeDResult", 
       "transaction.card.type", 
       "transaction.paymentType", 
       "transaction.prepaidcard.lastDigits" 
      ], 
      "retries": 3, 
      "synchronous": true 
     } 
    ], 
    "redirect": [ 
     { 
      "rel": "on_success", 
      "uri": "http://localhost:8080/hosted_api/main/success/", 
      "returnKeys": [ 
       "id", 
       "transaction.confirmationNumber", 
       "transaction.amount", 
       "transaction.status", 
       "transaction.errorCode", 
       "transaction.errorMessage", 
       "transaction.riskReasonCode", 
       "transaction.card.lastDigits", 
       "transaction.card.brand", 
       "transaction.card.type" 
      ] 
     }, 
     { 
      "rel": "on_decline", 
      "uri": "http://localhost:8080/hosted_api/main/failure/", 
      "returnKeys": [ 
       "id", 
       "transaction.confirmationNumber", 
       "transaction.amount", 
       "transaction.status", 
       "transaction.errorCode", 
       "transaction.errorMessage", 
       "transaction.riskReasonCode", 
       "transaction.card.lastDigits", 
       "transaction.card.brand", 
       "transaction.card.type" 
      ] 
     }, 
     { 
      "rel": "on_error", 
      "uri": "http://localhost:8080/hosted_api/main/error/", 
      "returnKeys": [ 
       "id", 
       "transaction.confirmationNumber", 
       "transaction.amount", 
       "transaction.status", 
       "transaction.errorCode", 
       "transaction.errorMessage", 
       "transaction.riskReasonCode", 
       "transaction.card.lastDigits", 
       "transaction.card.brand", 
       "transaction.card.type" 
      ] 
     }, 
     { 
      "rel": "on_timeout", 
      "uri": "http://localhost:8080/hosted_api/main/timeout/", 
      "returnKeys": [ 
       "id", 
       "transaction.confirmationNumber", 
       "transaction.amount", 
       "transaction.status", 
       "transaction.errorCode", 
       "transaction.errorMessage", 
       "transaction.riskReasonCode", 
       "transaction.card.lastDigits", 
       "transaction.card.brand", 
       "transaction.card.type" 
      ] 
     }, 
     { 
      "rel": "on_hold", 
      "uri": "http://localhost:8080/hosted_api/main/onhold/", 
      "returnKeys": [ 
       "id", 
       "transaction.confirmationNumber", 
       "transaction.amount", 
       "transaction.status", 
       "transaction.errorCode", 
       "transaction.errorMessage", 
       "transaction.riskReasonCode", 
       "transaction.card.lastDigits", 
       "transaction.card.brand", 
       "transaction.card.type" 
      ] 
     } 
    ], 
    "shoppingCart": [ 
     { 
      "amount": "1000", 
      "quantity": "1", 
      "description": "Fast Order" 
     } 
    ] 
} 

は、私は私がJSONコードを削除しても同じエラーを受け取り、応答

{ 
    "error": { 
    "code": 401, 
    "message": "Not authorised" 
    } 
} 

として戻って取得していますものです。だから私は自分の信任状が間違っていると仮定しています。

<?php 
header("Content-type:application/json"); 
header("Authorization:application/Basic Og=="); 

?> 

答えて

0

提供された情報はオフのようです。あなたのPHPヘッダのAuthorizationはかなり短いようです。いくつかの理由が考えられます。

キーにはBase64エンコードを使用する必要があります。これはヘッダーの情報を渡すために必要なことです。

base64_encode($APIKey) 

これを実行すると、情報が正しく渡されます。それはこのように見えるはずです。

<?php 
header("Content-type:application/json"); 
header("Authorization:application/Basic cTRlajZHRW5YWXJkUk9pS3JySEo6UEFBMGViNmU0M2Q2MmFkNTk5OTg"); 
?> 

さらに1つのことがあります。

使用しているエンドポイントがわかりませんが、正しい場所を指していることを確認してください。その理由は、あなたが間違った場所に送信しているときに、鍵を検証することができず、システムはあなたが何を送信しているのか分かりません。

これが役立つことを願っています!

関連する問題