带有 Salesforce Apex 的支付网关 CCAvanue
Payment Gateway CCAvanue with Salesforce Apex
CCAvenue 不提供 Salesforce Apex 语言的集成工具包。他们提供 Asp.net, Java, NodeJS, iOS, Android, Windows.
我们如何加密数据并向 CCAvenue 支付网关发出请求?
经过多次努力,我们成功地在 salesforce apex 中加密和解密数据。
这里是加密:
/*
此 PLAIN_TEXT 是从您的 apex 表单收集的数据。需要的值很少,很多值是可选的。请阅读 ccavenue 提供的文档。
*/
字符串 PLAIN_TEXT = 'tid=XXXX&merchant_id=XXXX&order_id=XXXX&amount=XX¤cy=INR&redirect_url=XXXX&cancel_url=XXXX&language=EN&billing_name=XXXX&billing_address=XXXX&billing_city=XXXX&billing_state=XX&billing_zip=XXXX&billing_country=XXXX&billing_tel=XXXX&billing_email=XXXX&delivery_name=XXXX&delivery_address=XXXX&delivery_city=XXXX&delivery_state=XXXX&delivery_zip=XXXX&delivery_country=XXXX&delivery_tel=XXXX&merchant_param1=XXXX&merchant_param2=XXXX&merchant_param3=XXXX&merchant_param4=XXXX&merchant_param5=XXXX&promo_code=&customer_identifier=&';
//WORKING_KEY 是CCAvenue 在您注册为商家时提供的密钥。
Blob 加密密钥 = Blob.valueOf('WORKING_KEY');
Blob 哈希 = Crypto.generateDigest('MD5', cryptoKey );
Blob 数据 = Blob.valueOf(PLAIN_TEXT);
Blob encryptedData = Crypto.encryptWithManagedIV('AES128', 散列, 数据);
字符串加密请求 = EncodingUtil.convertToHex(加密数据);
/*使用 visualforce FORM 将此带有 access_code 的 encRequest 传递给 https://secure.ccavenue.com/transaction/transaction.do?command=initiateTransaction
*/
解密如下:
Blob 加密密钥 = Blob.valueOf('WORKING_KEY');
Blob 哈希 = Crypto.generateDigest('MD5', cryptoKey);
Blob 数据 = EncodingUtil.convertFromHex('ENC_RESPONSE'); //从ccAvenue收到响应
Blob decryptedText = Crypto.decryptWithManagedIV('AES128', hash, data);
字符串 PLAIN_TEXT = decryptedText.toString();
CCAvenue 不提供 Salesforce Apex 语言的集成工具包。他们提供 Asp.net, Java, NodeJS, iOS, Android, Windows.
我们如何加密数据并向 CCAvenue 支付网关发出请求?
经过多次努力,我们成功地在 salesforce apex 中加密和解密数据。
这里是加密:
/*
此 PLAIN_TEXT 是从您的 apex 表单收集的数据。需要的值很少,很多值是可选的。请阅读 ccavenue 提供的文档。
*/
字符串 PLAIN_TEXT = 'tid=XXXX&merchant_id=XXXX&order_id=XXXX&amount=XX¤cy=INR&redirect_url=XXXX&cancel_url=XXXX&language=EN&billing_name=XXXX&billing_address=XXXX&billing_city=XXXX&billing_state=XX&billing_zip=XXXX&billing_country=XXXX&billing_tel=XXXX&billing_email=XXXX&delivery_name=XXXX&delivery_address=XXXX&delivery_city=XXXX&delivery_state=XXXX&delivery_zip=XXXX&delivery_country=XXXX&delivery_tel=XXXX&merchant_param1=XXXX&merchant_param2=XXXX&merchant_param3=XXXX&merchant_param4=XXXX&merchant_param5=XXXX&promo_code=&customer_identifier=&';
//WORKING_KEY 是CCAvenue 在您注册为商家时提供的密钥。
Blob 加密密钥 = Blob.valueOf('WORKING_KEY');
Blob 哈希 = Crypto.generateDigest('MD5', cryptoKey );
Blob 数据 = Blob.valueOf(PLAIN_TEXT);
Blob encryptedData = Crypto.encryptWithManagedIV('AES128', 散列, 数据);
字符串加密请求 = EncodingUtil.convertToHex(加密数据);
/*使用 visualforce FORM 将此带有 access_code 的 encRequest 传递给 https://secure.ccavenue.com/transaction/transaction.do?command=initiateTransaction */
解密如下:
Blob 加密密钥 = Blob.valueOf('WORKING_KEY');
Blob 哈希 = Crypto.generateDigest('MD5', cryptoKey);
Blob 数据 = EncodingUtil.convertFromHex('ENC_RESPONSE'); //从ccAvenue收到响应
Blob decryptedText = Crypto.decryptWithManagedIV('AES128', hash, data);
字符串 PLAIN_TEXT = decryptedText.toString();