2016-12-04 5 views
0

Я строю интерфейс для NS, который находится за пределами Web-магазина. У нашего платежного шлюза есть веб-приложение, способное создавать номер ref и auth-код, их необходимо добавить к торговому ордеру, чтобы поставщик платежей мог обработать платеж, когда заказ был отправлен. Возможно ли это, или я лаяю неправильное дерево?NetSuite: преобразование торгового заказа с добавлением кредитной карты authCode и pnRefNum перед выполнением элемента

Я довольно новичок в NS, извиняюсь, если ответ очевиден!

Сообщение об ошибке я получаю:

Code: INVALID_RCRD_TRANSFRM Details: That type of record transformation is not allowed. Please see the documentation for a list of supported transformation types. 

и вот код, который я пытаюсь использовать в моем Restlet:

function authorizeCreditCard(dataIn) { 
    nlapiLogExecution('DEBUG', 'Pre Transform', JSON.stringify(dataIn)); 
    var customerpayment, paymentrecord 
    try { 
    customerpayment = nlapiTransformRecord('salesorder', dataIn.id, 'customerpayment', { 
     "memo": dataIn.memo, 
     "authCode": dataIn.authCode, 
     "pnRefNum": dataIn.pnRefNum, 
     "ccApproved": dataIn.ccApproved, 
     "ccAvsStreetMatch": dataIn.ccAvsStreetMatch, 
     "ccAvsZipMatch": dataIn.ccAvsZipMatch, 
     "ccSecurityCodeMatch": dataIn.ccSecurityCodeMatch 
    }); 
    paymentrecord = nlapiSubmitRecord(customerpayment); 
    } catch (e) { 
    nlapiLogExecution('ERROR', 'Transform failed', e); 
    } 
    nlapiLogExecution('DEBUG', 'Post Transform: CP', JSON.stringify(customerpayment)); 
    nlapiLogExecution('DEBUG', 'Post Transform: PR', JSON.stringify(paymentrecord)); 

    if (paymentrecord) { 
    return { 
     status: 'success', 
     data: paymentrecord 
    } 
    } 
    return { 
    status: 'error', 
    message: 'something went wrong' 
    } 
} 

ответ

0

Для того, чтобы сделать разрешение во внешней системе и расчеты/захвате автоматически в NetSuite первого шаг, имеющий такой же процессор оплаты (или, по-видимому так же, коммерческий банк, но YMMMV) для авторизации внешней системы ,

Следующие фрагменты работают для создания заказа клиента, имеющего авторизацию. Позже, когда вы выполните заказ, результирующая продажа наличных денег приведет к поселению и захвату. Если вы не можете сконфигурировать тот же процессор в NS, который использовался для авторизации, большинство банков-торговцев используют действительно простой для настройки API.

function dummyExpDate() { 
    var d = new Date(); 
    return ('0' + (d.getMonth() + 1)).slice(-2) + '/' + (d.getFullYear() + 1); // some future date 
} 
var soRec = nlapiTransformRecord('customer', custId, 'salesorder, {recordmode: 'dynamic'}); 
soRec.setFieldValue('paymentmethod', 'somepaymentmethodid_Visa_works'); // some payment method id for NS happiness 
soRec.setFieldValue('ccnumber', '4111111111111111'); // dummy valid visa for NS happiness 
soRec.setFieldValue('ccexpiredate', dummyExpDate()); 
soRec.setFieldValue('pnrefnum', pnref); 
soRec.setFieldValue('ccapproved', 'T'); 
+0

Мы используем один и тот же шлюз для авторизации и обработки, чтобы эта часть, надеюсь, просто сработала. Вам не хватает кода authcode из вашего примера, не нужно ли брать платеж? – designreact

+0

Нет, просто p/n ref – bknights

0

Это не представляется возможным преобразовать salerorder в клиентскую оплату. Салерный порт может трансформироваться только в cashsale, invoice, itemfulfillment, returnauthorization и revenuecommitment. Я думаю, вы должны сначала преобразовать свой salerorder в счет-фактуру, а затем произвести оплату клиента с оплатой клиента.

рассматривает

+0

А да, теперь я вижу - разрешено только определенные преобразования для торгового заказа. Мой клиент обычно не выставляет счет до тех пор, пока заказ не будет выполнен, но они берут auth перед этим, оставляет меня немного застрявшим. У меня был некоторый успех, добавив поля непосредственно в торговый блок, но не смог добавить значение в поле authcode. – designreact

+0

Есть ли у вас какие-либо ошибки при указании поля authcode в заказе saler? Я не являюсь функциональным экспертом в netsuite, но мне кажется, что в заказе клиента не указывается поле authCode, которое указывается до момента оплаты. Но если ваш клиент необходим, вы можете создать настраиваемое поле в заказе клиента и разместить там authCode. Пожалуйста, проверьте правильность ответа –

+0

Я считаю, что привлечение счета-фактуры означало бы, что платеж должен быть взят перед выполнением. В моей настройке клиентов им требуется авторизация сначала, а затем они выставляют счет-фактуру после выполнения заказа, используя веб-магазин, это было возможно. У меня не было ошибок, специфичных для authcode. У меня есть еще несколько моментов, чтобы попытаться, сообщит вам, как я получаю - спасибо за вашу помощь. – designreact

0

@ bknights @ pedro-bustos Спасибо и за вашу помощь.

Я понял это! Во многом благодаря вашему ответу.

Вы можете добавлять только код authcode и т. Д., Когда вы впервые создаете торговый заказ. Это означает, что мне нужно немного реорганизовать вещи, но теперь я могу добавить коды auth и pn refs.