過去 3 日間から、BeanStream 支払いゲートウェイを製品に統合しようとしています。残念ながら、毎回 401 認証エラーが発生します。次の手順を実行しました。
- 1) テスト アカウントを作成しました。
- 2) 構成 -> 支払いプロファイル構成 -> セキュリティ設定から生成された API パス コード。
- 3) トップ セクションからマーチャント ID を取得します。
4) BeanStream 開発者ポータルで提供されているサンプル コードを使用して HttpWeb リクエストを作成しました。以下はそのためのコードです。
string url = "https://www.beanstream.com/api/v1/payments"; BeanStreamRequest req = new BeanStreamRequest { order_number = "10000123", amount = 100.00m, payment_method = "", card = new Card { name = "abc", number = "5100000010001004", expiry_month = "02", expiry_year = "18", cvd = "642" } }; JavaScriptSerializer js = new JavaScriptSerializer(); string jsonString = js.Serialize(req); string merchantId = "MERCHANT_ID"; string apiPassCode = "API_PASS_CODE"; string base64_encode = String.Format("{0}{1}{2}",merchantId,":",apiPassCode); string authorization = String.Format("{0}{1}", "Passcode ", Convert.ToBase64String(Encoding.ASCII.GetBytes(base64_encode))); HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url); webRequest.Method = "POST"; webRequest.Accept = "*/*"; webRequest.Headers[HttpRequestHeader.Authorization] = authorization; //webRequest.Headers.Add("Authorization ", authorization); webRequest.ContentType = "application/json"; webRequest.ContentLength = jsonString.Length; StreamWriter writer = null; writer = new StreamWriter(webRequest.GetRequestStream()); writer.Write(jsonString); writer.Close(); string responseString; try { using (HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse()) { using (StreamReader responseStream = new StreamReader(webResponse.GetResponseStream())) { responseString = responseStream.ReadToEnd(); } } } catch (WebException ex) { if (ex.Response != null) { using (HttpWebResponse errorResponse = (HttpWebResponse)ex.Response) { using (StreamReader reader = new StreamReader(errorResponse.GetResponseStream())) { string remoteEx = reader.ReadToEnd(); } } } }
何か助けはありますか?