Ich versuche Paypal Adaptive-Payment-API zu verwenden und es schwierig zu haben, es in Produktion zu schalten. Alles funktioniert wie erwartet im Sandbox-Modus und ich bekomme eine angemessene Antwort, aber wenn ich zu meiner Live-APP-ID wechsel, funktioniert es nicht.Paypal Adaptive Payments funktioniert im Sandbox-Modus, aber nicht Produktion
Dies sind die Konfigurationswerte I für Sandbox bin
PayPal URL : https://www.sandbox.paypal.com/webapps/adaptivepayment/flow/pay?paykey=[TOKEN_HERE]
Application ID : APP-80W284485P519543T
Diese Werte sind für mich in Sandbox-Modus arbeiten. Aber wenn ich auf die unter den Produktionswerten zu wechseln, wird er seine Arbeit
PayPal URL : https://www.paypal.com/webapps/adaptivepayment/flow/pay?paykey=[TOKEN_HERE]
Application ID : [ACTUAL APP ID]
This is what I mean by stops working.
- Im Produktionsmodus wird die Anwendung die paykey
- es auf die Paypal-URL Hängt und dann leitet es auf ihrer Website
- Vor Ort laden, erhalte ich die folgende Meldung
This transaction has already been approved. Please visit your PayPal Account Overview to see the details
Die endgültige URL es bis auf endet - https://ic.paypal.com/webapps/adaptivepayment/flow/payinit?execution=e6s1
Screenshot - http://screencast.com/t/28qJZ9CIk
Es gibt auch eine dort ‚Return‘ Taste, und wenn ich darauf klicke ich jedes Mal an einem anderen Ort getroffen zu bekommen (Sieht aus wie ich werde, um zufällige failUrls gesendet)
ich den Code enthalten habe ich unten
$payRequest = new PayRequest();
$payRequest->actionType = "PAY";
$payRequest->cancelUrl = $cancelURL; //my success and fail urls
$payRequest->returnUrl = $returnURL;
$payRequest->clientDetails = new ClientDetailsType();
$payRequest->clientDetails->applicationId = $this->config['application_id'];
$payRequest->clientDetails->deviceId = $this->config['device_id'];
$payRequest->clientDetails->ipAddress = $this->CI->input->ip_address();
$payRequest->currencyCode = $currencyCode;
$payRequest->requestEnvelope = new RequestEnvelope();
$payRequest->requestEnvelope->errorLanguage = "en_US";
//I set the receiver and the amounts. I also define that these are digital goods payments
$receiver1 = new receiver();
$receiver1->email = $opts['receiver_email'];
$receiver1->amount = $opts['amount'];
$receiver1->paymentType = 'DIGITALGOODS';
$payRequest->receiverList = new ReceiverList();
$payRequest->receiverList = array($receiver1);
//Then I make the call
$ap = new AdaptivePayments();
$response = $ap->Pay($payRequest);
if(strtoupper($ap->isSuccess) == 'FAILURE') {
log_message('error', "PAYMENT_FAIL : " . print_r($ap->getLastError(), true));
return false;
} else {
if($response->paymentExecStatus == "COMPLETED") {
header("Location: " . $this->config['success_url']);
exit;
} else {
$token = $response->payKey;
$payPalURL = $this->config['paypal_redirect_url'] . 'paykey='.$token;
header("Location: ".$payPalURL);
exit;
}
}
Dieser Code aus ihrer Beispielimplementierung genommen wird, also nicht wirklich sicher Was läuft hier falsch? Weitere Informationen, die relevant sein könnten
I adaptive Zahlungen bin mit sicher zu stellen, dass der Sender und der Empfänger tatsächlich die Transaktion hat
ich die Zahlungsart als ‚DIGITAL WAREN‘ gesetzt haben
EDIT
ich eine Beispiel-URL mit t enthalten haben er bezahlt Schlüssel beigefügt
https://www.paypal.com/webapps/adaptivepayment/flow/pay?paykey=AP-0H388650F08226841
Können Sie ein Echo von $ paypalURL einbeziehen? – Robert
@Robert sicher, ich habe die Frage mit dieser Info aktualisiert. – JohnP