嗨,我正在尝试创建一个使用2checkout api的付款
我按照2co在文档中提供的指示操作,一切似乎都正常,但我从未收到订单完成的确认消息,我在sandbox上创建了一个帐户,我使用了那里的信息,但仍然没有成功。
现在看这是第一个包含表单和2co.js文件的代码
<!DOCTYPE html>
<html lang="en">
<head>
<title>Example Form</title>
<script type="text/javascript" src="https://www.2checkout.com/checkout/api/2co.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
</head>
<body>
<form id="myCCForm" action="test3.php" method="post">
<input name="token" type="hidden" value="" />
<div>
<label>
<span>Card Number</span>
<input id="ccNo" type="text" value="" autocomplete="off" required />
</label>
</div>
<div>
<label>
<span>Expiration Date (MM/YYYY)</span>
<input id="expMonth" type="text" size="2" required />
</label>
<span> / </span>
<input id="expYear" type="text" size="4" required />
</div>
<div>
<label>
<span>CVC</span>
<input id="cvv" type="text" value="" autocomplete="off" required />
</label>
</div>
<input type="submit" value="Submit Payment" />
</form>
<script>
// Called when token created successfully.
var successCallback = function(data) {
var myForm = document.getElementById('myCCForm');
// Set the token as the value for the token input
myForm.token.value = data.response.token.token;
// IMPORTANT: Here we call `submit()` on the form element directly instead of using jQuery to prevent and infinite token request loop.
myForm.submit();
};
// Called when token creation fails.
var errorCallback = function(data) {
// Retry the token request if ajax call fails
if (data.errorCode === 200) {
// This error code indicates that the ajax call failed. We recommend that you retry the token request.
} else {
alert(data.errorMsg);
}
};
var tokenRequest = function() {
// Setup token request arguments
var args = {
sellerId: "901249656",
publishableKey: "0A0C4A4D-FE71-41D0-A960-7C637F347785",
ccNo: $("#ccNo").val(),
cvv: $("#cvv").val(),
expMonth: $("#expMonth").val(),
expYear: $("#expYear").val()
};
// Make the token request
TCO.requestToken(successCallback, errorCallback, args);
};
$(function() {
// Pull in the public encryption key for our environment
TCO.loadPubKey('sandbox', function() {
// Execute when Public Key is available
});
$("#myCCForm").submit(function(e) {
// Call our token request function
tokenRequest();
// Prevent form from submitting
return false;
});
});
</script>
</body>
</html>
我的
sellerId: "901249656",
和publishableKey: "0A0C4A4D-FE71-41D0-A960-7C637F347785",
来自我的沙盒演示帐户。现在这是另一个页面“test3.php”
<?php
require_once("2checkout-php-master/lib/Twocheckout.php");
Twocheckout::privateKey('4D67BA12-CE09-4F1D-AB20-0133F24E3472');
Twocheckout::sellerId('901249656');
Twocheckout::sandbox(true); #Uncomment to use Sandbox
try {
$charge = Twocheckout_Charge::auth(array(
"merchantOrderId" => "123",
"token" => 'Y2U2OTdlZjMtOGQzMi00MDdkLWJjNGQtMGJhN2IyOTdlN2Ni',
"currency" => 'USD',
"total" => '10.00',
"billingAddr" => array(
"name" => 'Testing Tester',
"addrLine1" => '123 Test St',
"city" => 'Columbus',
"state" => 'OH',
"zipCode" => '43123',
"country" => 'USA',
"email" => '[email protected]',
"phoneNumber" => '555-555-5555'
),
"shippingAddr" => array(
"name" => 'Testing Tester',
"addrLine1" => '123 Test St',
"city" => 'Columbus',
"state" => 'OH',
"zipCode" => '43123',
"country" => 'USA',
"email" => '[email protected]',
"phoneNumber" => '555-555-5555'
)
), 'array');
if ($charge['response']['responseCode'] == 'APPROVED') {
echo "Thanks for your Order!";
}
} catch (Twocheckout_Error $e) {
$e->getMessage();
}
我从他们提供的链接下载了twocheckout.php。
现在的问题是
它假设如果页面上有任何错误,它会给我“未经授权”。
因此,如果没有错误,一切正常,它应该给我'授权'。
发生的情况是,我进入“test3.php”并在那里停止,没有任何错误或注释,只是白色的页面,当尝试刷新时,它会给出“重新发送”
有什么帮助吗?
我错在哪里?
我假设当我提交这些信息时,我会看到有人在我的演示页面“沙盒帐户”中下了一个新订单
最佳答案
请检查https://www.2checkout.com/checkout/api/2co.min.js是否已完全加载,然后只需要调用
TCO.loadPubKey('sandbox', function() {
// Execute when Public Key is available
});
使用此代码
$.getScript('https://www.2checkout.com/checkout/api/2co.min.js', function() {
try {
// Pull in the public encryption key for our environment
TCO.loadPubKey('sandbox');
} catch(e) {
alert(e.toSource());
}
});
关于javascript - 2checkout Payment API不给我成功回调,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23782448/