2016-12-04 3 views
0

私はWebストアの外にあるNSのフロントエンドを構築しています。私たちの決済ゲートウェイには、注文番号が発行されたときに支払いプロバイダが支払いを処理できるように、受注番号と認証コードを作成できるWebアプリがあり、受注に追加する必要があります。これは可能ですか、間違った木を鳴らしていますか?NetSuite:商品受注に先立ってsalesorderにクレジットカードの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

(またはどうやらちょうど同じ商人の銀行が、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を変換することはできません顧客支払いに。 salerorderは、現金、請求書、itemfulfillment、returnauthorizationとrevenuecommitmentに変換することができます。私はあなたが最初にあなたのsalerorderを請求書に変換してから、顧客支払いで顧客の支払いをしなければならないと思います。最初のステップは、同じ支払い処理をしているNetsuiteの中で自動的に外部システムと決済/キャプチャで認証を行うためには

よろしく

+0

ああ、今私は見る - セールスオーダーには特定の変換しか許されていない。私のクライアントは、注文が完了してから、これより先に承認されるまで、通常は請求書を発行しません。私はちょっと立ち往生します。 フィールドをセールスオーダーに直接追加して成功しましたが、authcodeフィールドに値を追加できませんでした。 – designreact

+0

saler orderのauthcodeフィールドに誤りがありますか?私はnetsuiteの機能的な専門家ではありませんが、それは私のように、受注は、支払いまで示されているauthCodeフィールドを示すことはできません。しかし、クライアントが必要な場合は、受注でカスタム項目を作成し、そこでauthCodeを配置することができます。 答えが正しいかどうかを確認してください –

+0

請求書を発行すると支払いが履行に先立って行われる必要があると考えられます。私のクライアントのセットアップでは、注文が完了した後、最初に認証を要求し、それが可能であったWebストアを使用して請求書を提出します。 authcodeに固有のエラーはありませんでした。私はいくつかの角度を試して、あなたが私のやり方を教えてくれるでしょう - 助けてくれてありがとう – designreact

0

@bknights @ pedro-bustosお手数ですが両方ともおねがいします。

私はそれを理解しました!主にあなたの答えに基づいています。

最初に販売注文を作成するときに、authcodeなどを追加することができます。これは少しリファクタリングする必要があることを意味しますが、今では認証コードとpn refを追加できます。

関連する問題