1
我只是試圖讓測試工作,似乎無法做到任何幫助將不勝感激。我不斷收到一個條帶無效的請求錯誤。我嘗試了很多東西,但無法讓它工作。將條紋標記傳遞給服務器並在服務器上處理
的Android代碼:
private void deposit() throws AuthenticationException {
//bp.purchase("android.test.purchased");
//bp.consumePurchase("android.test.purchased");
Card card = new Card("4242-4242-4242-4242", 12, 2016, "123");
if (!card.validateCard()) {
// Show errors
Toast.makeText(getApplicationContext(), "Incorrect card Information", Toast.LENGTH_SHORT).show();
}
else {
Stripe stripe = new Stripe("pk_test_t9ODKMyhv3BwKiEHdQE0bmHi");
stripe.createToken(
card,
new TokenCallback() {
public void onSuccess(Token token) {
// Send token to your server
String url = "/BettingXChange/charge.php";
//populate json object with user entered data
try {
chargeInfo.put("stripeToken", token);
Log.e("token", String.valueOf(token));
chargeInfo.put("user", savedUserID);
} catch (JSONException e) {
//Log the exception
Log.e("JSON Exception", e.toString());
}
//Set the response listener
Response.Listener responseListener = new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
//Handle the json response
try {
//Assign member variables upon Json Response
responseSuccess = response.getInt("success");
} catch (JSONException e) {
//Log the exception
Log.e("JSON Exception", e.toString());
}
//If charge successful, move to main app
if (responseSuccess == 1) {
Toast.makeText(getApplicationContext(), "YAYY", Toast.LENGTH_SHORT).show();
}
}
};
//Set the error response listener
Response.ErrorListener responseErrorListener = new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//Log the error
Log.e("Response Error", error.toString());
//Make a toast
Toast.makeText(getApplicationContext(),
"sorry",
Toast.LENGTH_SHORT).show();
}
};
//Use the request handler to send the Volley json POST request
requestHandler.post(url, chargeInfo, responseListener, responseErrorListener);
}
public void onError(Exception error) {
// Show localized error message
/*\
Toast.makeText(getContext(),
error.getLocalizedString(getContext()),
Toast.LENGTH_LONG
).show();*/
}
}
);
}
}
PHP代碼:
<?php
require_once("stripe-php-1.17.5/lib/Stripe.php");
mysql_connect("localhost","root","password");
mysql_select_db("testapp");
$body = file_get_contents('php://input');
$postvars = json_decode($body, true);
$token = $postvars["stripeToken"];
$user = $postvars["user"];
// Set your secret key: remember to change this to your live secret key in production
// See your keys here https://dashboard.stripe.com/account
Stripe::setApiKey("sk_test_BrWE3ndM19knCYGAGj27Wix7");
// Create the charge on Stripe's servers - this will charge the user's card
try {
$charge = Stripe_Charge::create(array(
"amount" => 1000, // amount in cents, again
"currency" => "usd",
"card" => $token,
"description" => "[email protected]")
);
//add money to users account
//get total money from people involved in bet
$sql = mysql_query("SELECT currency FROM `people` WHERE id = '".$user."'");
while($e=mysql_fetch_assoc($sql)){
$output1[]=$e;
}
$userAmount = $output1[0]['currency'];
$remainingUserBalance = (1000/100.0)+$userAmount;
$sql = "UPDATE `people` set currency = '".$remainingUserBalance."' WHERE id = '".$user."'";
if(mysql_query($sql)){
$response["success"] = $token;
echo $response;
}
} catch(Stripe_CardError $e) {
// The card has been declined
echo "carderror";
}
catch (Stripe_InvalidRequestError $e) {
// You screwed up in your programming. Shouldn't happen!
echo "uh oh";
}
catch(Stripe_Error $e){
//
//echo "stripe error";
//echo $e;
}
mysql_close();
?>
能否請你告訴我你是怎麼實現的響應類。我也正在編寫一個帶有條紋實現的應用程序。 – 2015-06-05 12:02:09