【发布时间】:2016-08-02 15:07:06
【问题描述】:
CCAvenue 不提供 Salesforce Apex 语言的集成工具包。他们提供 Asp.net、Java、NodeJS、iOS、Android、Windows。
我们如何加密数据并请求 CCAvenue 支付网关?
【问题讨论】:
标签: salesforce payment-gateway payment apex ccavenue
CCAvenue 不提供 Salesforce Apex 语言的集成工具包。他们提供 Asp.net、Java、NodeJS、iOS、Android、Windows。
我们如何加密数据并请求 CCAvenue 支付网关?
【问题讨论】:
标签: salesforce payment-gateway payment apex ccavenue
经过大量努力,我们设法在 salesforce apex 中加密和 dcrypt 数据。
这里是加密:
/*
此 PLAIN_TEXT 是从您的顶级表单收集的数据。很少的值是必需的,许多值是可选的。请阅读 ccavenue 提供的文档。
*/
的字符串PLAIN_TEXT =“TID = XXXX&MERCHANT_ID = XXXX&ORDER_ID = XXXX&量= XX&货币= INR&REDIRECT_URL = XXXX&cancel_url = XXXX&语言= 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提供的key。
Blob cryptoKey = Blob.valueOf('WORKING_KEY');
Blob 哈希 = Crypto.generateDigest('MD5', cryptoKey );
Blob 数据 = Blob.valueOf(PLAIN_TEXT);
Blob encryptedData = Crypto.encryptWithManagedIV('AES128', hash , data);
字符串 encRequest = EncodingUtil.convertToHex(encryptedData);
/*使用 visualforce FORM 将这个带有 access_code 的 encRequest 传递给https://secure.ccavenue.com/transaction/transaction.do?command=initiateTransaction */
这里是解密:
Blob cryptoKey = Blob.valueOf('WORKING_KEY');
Blob 哈希 = Crypto.generateDigest('MD5', cryptoKey);
Blob 数据 = EncodingUtil.convertFromHex('ENC_RESPONSE'); //收到来自 ccAvenue 的响应
Blob decryptedText = Crypto.decryptWithManagedIV('AES128', hash, data);
String PLAIN_TEXT = decryptedText.toString();
【讨论】: