wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改。本文分享支付宝接口RSA函数,RSA签名、验签、解密等,供技术员参考学习。
以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码,该代码仅供学习和研究支付宝接口使用,只是提供一个参考。
wemall官网地址:http://www.wemallshop.com
点击(此处)折叠或打开
- <?php
- /**
- * RSA签名
- * @param $data 待签名数据
- * @param $private_key_path 商户私钥文件路径
- * return 签名结果
- */
- function rsaSign($data, $private_key_path) {
- $priKey = file_get_contents($private_key_path);
- $res = openssl_get_privatekey($priKey);
- openssl_sign($data, $sign, $res);
- openssl_free_key($res);
- //base64编码
- $sign = base64_encode($sign);
- return $sign;
- }
- /**
- * RSA验签
- * @param $data 待签名数据
- * @param $ali_public_key_path 支付宝的公钥文件路径
- * @param $sign 要校对的的签名结果
- * return 验证结果
- */
- function rsaVerify($data, $ali_public_key_path, $sign) {
- $pubKey = file_get_contents($ali_public_key_path);
- $res = openssl_get_publickey($pubKey);
- $result = (bool)openssl_verify($data, base64_decode($sign), $res);
- openssl_free_key($res);
- return $result;
- }
- /**
- * RSA解密
- * @param $content 需要解密的内容,密文
- * @param $private_key_path 商户私钥文件路径
- * return 解密后内容,明文
- */
- function rsaDecrypt($content, $private_key_path) {
- $priKey = file_get_contents($private_key_path);
- $res = openssl_get_privatekey($priKey);
- //用base64将内容还原成二进制
- $content = base64_decode($content);
- //把需要解密的内容,按128位拆开解密
- $result = '';
- for($i = 0; $i < strlen($content)/128; $i++ ) {
- $data = substr($content, $i * 128, 128);
- openssl_private_decrypt($data, $decrypt, $res);
- $result .= $decrypt;
- }
- openssl_free_key($res);
- return $result;
- }
- ?>
wemall官网地址:http://www.wemallshop.com
原文详情地址:http://Git.oschina.NET/zzunet/wemall-doraemon/commit/e8f303df5663dc69fe47bb9623222149d40e3956
wemall doraemonAndroid app商城详情地址:http://www.koahub.com/home/product/55
WeMall - 开源微商城 微信商城 商城源码 分销商城 b2b2c商城系统