我正在尝试发布到Converge演示API,但出现4000错误。消息为“授权请求中未提供VirtualMerchant ID。”
我正在Vuex中使用axios。由于是演示,因此我暂时尝试在Vuex上发布帖子。我将其与TLSv1.2_2018一起使用。
这是我正在使用的代码的简化版本。
let orderDetails = {
ssl_merchant_id:'******',
ssl_user_id:'***********',
ssl_pin: '****...',
ssl_transaction_type: 'ccsale',
ssl_amount: '5.47',
ssl_card_number: '4124939999999990',
ssl_cvv2cvc2: '123',
ssl_exp_date: '1219',
ssl_first_name: 'No Named Man',
ssl_test_mode: true
}
let orderJSON = JSON.stringify(orderDetails)
let config = {
headers: {
'Access-Control-Allow-Methods': 'PUT, POST, PATCH, DELETE, GET',
'Content-Type': 'application/x-www-form-urlencoded'
}
}
axios.post('https://api.demo.convergepay.com/VirtualMerchantDemo/process.do', orderJSON, config)
.then(res => {
console.log('res', res.data)
})
.catch(e => {
console.log('e', e)
})
有人解决了这个问题和/或能够分享一些智慧吗?
答案 0 :(得分:0)
我认为您以错误的方式发送值,这就是为什么您收到缺少参数的消息的原因。 endpoing process.do希望收到一个键值对格式化请求
ssl_merchant_id=******&ssl_user_id=***********&ssl_pin=****&ssl_transaction_type=ccsale&ssl_amount=5.47&ssl_card_number=4124939999999990&ssl_cvv2cvc2=123&ssl_exp_date=1219&ssl_first_name=No Named Man&ssl_test_mode=true
从Converge网站(https://developer.elavon.com)
Converge当前支持两种不同的集成方式:
使用process.do(用于单个事务)或processBatch.do(用于批处理文件)的键值对格式化请求,并具有以下内容 语法:ssl_name_of_field =字段值(例如:ssl_amount = 1.00)
或
使用processxml.do(用于单个事务)或accountxml.do(用于Admin请求)的XML格式的请求,该事务 XML语法格式的数据必须包含所有支持的事务 元素嵌套在一个开始元素和结束元素之间, 数据包含在xmldata变量中。