我正在尝试使用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.
>在生产模式下,应用程序获取支付关键字
>将其附加到Paypal URL,然后将其重定向到他们的网站
>在网站加载时,我收到以下消息
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; } }
这是从他们的示例实现中获取的代码,所以不确定这里出了什么问题.其他可能相关的信息
>我正在使用自适应付款来确保发件人和收件人
实际上做了交易
>我已将付款类型设置为“DIGITAL GOODS”
编辑
我已经附上了附带付款密钥的示例网址
https://www.paypal.com/webapps/adaptivepayment/flow/pay?paykey=AP-0H388650F08226841