php – Paypal Adaptive Payments在沙箱模式下工作,但不在生产中
|
我正在尝试使用Paypal的自适应支付API,并且很难将其转换为生产.一切都按预期在沙盒模式下工作,我得到一个正确的响应,但当我切换到我的实时APP ID时,它不起作用.
这些是我用于沙箱的配置值 PayPal URL : https://www.sandbox.paypal.com/webapps/adaptivepayment/flow/pay?paykey=[TOKEN_HERE] Application ID : APP-80W284485P519543T 这些值在沙箱模式下适用于我.但是当我切换到下面的生产值时,它就会停止工作 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. >在生产模式下,应用程序获取支付关键字 This transaction has already been approved. Please visit your PayPal Account Overview to see the details 最终的最终网址 – https://ic.paypal.com/webapps/adaptivepayment/flow/payinit?execution=e6s1 截图 – http://screencast.com/t/28qJZ9CIk 那里还有一个“返回”按钮,当我点击它时,我每次都会被带到另一个站点(看起来我被发送到随机的failUrls) 我已经包含了我在下面使用的代码 $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;
}
}
这是从他们的示例实现中获取的代码,所以不确定这里出了什么问题.其他可能相关的信息 >我正在使用自适应付款来确保发件人和收件人 编辑 我已经附上了附带付款密钥的示例网址 https://www.paypal.com/webapps/adaptivepayment/flow/pay?paykey=AP-0H388650F08226841
我发现这个问题给了我所有这些悲伤.
Paypal SDK使用了几个常量,这些常量在/ sdk / lib / Config / paypal_sdk_clientproperties中定义 常量包含用户名,密码,application_id API URL和其他一些.这些直接在文件/ sdk / lib / CallerServices,php中使用.因此,与您在API中所期望的相反,这些值不会在设置阶段注入,因此如果您没有注意到该文件并更改了值,则上述代码将不起作用. 要解决此问题,只需更新文件中定义的值即可. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
