支付宝服务端签名java,支付宝移动接口服务端生成签名串代码

1 $ali = array(

2 ‘service‘ => ‘mobile.securitypay.pay‘,

3 ‘partner‘ => ‘xxxxxxxxxx‘,//

4 ‘_input_charset‘ => ‘utf-8‘,

5 ‘sign_type‘ => ‘RSA‘,

6 ‘sign‘ => ‘‘,

7 ‘notify_url‘ => urlencode($url),//回调地址

8 ‘out_trade_no‘ => $ordernu,//商户网站唯一订单号

9 ‘subject‘ => $cpPayName,//商品名称

10 ‘payment_type‘ => 1,//支付类型

11 ‘seller_id‘ => ‘‘,//支付宝账号

12 ‘total_fee‘ => $cpPrice,//总金额

13 ‘body‘ => $cpPayName,//商品详情

14 );

15 $ali = argSort($ali);

16 $str = ‘‘;

17

18 foreach($ali as $key=>$val){

19   if($key == ‘sign_type‘ || $key == ‘sign‘){

20    continue;

21   }else{

22     if($str == ‘‘){

23   $str = $key.‘=‘.‘"‘.$val.‘"‘;

24   }else{

25   $str = $str.‘&‘.$key.‘=‘.‘"‘.$val.‘"‘;

26   }

27   }

28 }

29

30

31 $sign = urlencode(sign($str));

32 $str = $str.‘&sign=‘.‘"‘.$sign.‘"‘.‘&sign_type=‘.‘"‘.$ali[‘sign_type‘].‘"‘;//传给支付宝接口的数据

33

34 35 function argSort($para) {

35 ksort($para);

36 reset($para);

37 return $para;

38 }

39

40 //RSA签名

41 function sign($data) {

42

43 //读取私钥文件

44

45 $priKey = file_get_contents(‘key/rsa_private_key.pem‘);//私钥文件路径

46 //转换为openssl密钥,必须是没有经过pkcs8转换的私钥

47

48 $res = openssl_get_privatekey($priKey);

49

50 //调用openssl内置签名方法,生成签名$sign

51

52 openssl_sign($data, $sign, $res);

53

54

55 //释放资源

56

57 openssl_free_key($res);

58

59

60 //base64编码

61

62 $sign = base64_encode($sign);

63

64 return $sign;

65

66 }

时间: 01-05

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然可以!以下是一个简单的支付宝支付下单服务端Java代码示例: ```java import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.request.AlipayTradePagePayRequest; import com.alipay.api.response.AlipayTradePagePayResponse; public class AlipayService { // 支付宝网关地址 private static final String ALIPAY_GATEWAY = "https://openapi.alipay.com/gateway.do"; // 应用ID private static final String APP_ID = "your_app_id"; // 商户私钥 private static final String PRIVATE_KEY = "your_private_key"; // 支付宝公钥 private static final String ALIPAY_PUBLIC_KEY = "alipay_public_key"; // 编码格式 private static final String CHARSET = "UTF-8"; // 返回格式 private static final String FORMAT = "json"; // 签名类型 private static final String SIGN_TYPE = "RSA2"; public String createOrder(String outTradeNo, String totalAmount, String subject, String body) throws AlipayApiException { AlipayClient alipayClient = new DefaultAlipayClient(ALIPAY_GATEWAY, APP_ID, PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY, SIGN_TYPE); AlipayTradePagePayRequest request = new AlipayTradePagePayRequest(); request.setReturnUrl("your_return_url"); request.setNotifyUrl("your_notify_url"); request.setBizContent("{" + "\"out_trade_no\":\"" + outTradeNo + "\"," + "\"total_amount\":\"" + totalAmount + "\"," + "\"subject\":\"" + subject + "\"," + "\"body\":\"" + body + "\"," + "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"" + "}"); AlipayTradePagePayResponse response = alipayClient.pageExecute(request); return response.getBody(); } } ``` 这段代码使用了支付宝提供的Java SDK,首先需要在支付宝开放平台注册应用并获取到应用ID、商户私钥和支付宝公钥。然后,通过`AlipayClient`创建一个支付宝客户端实例,设置相关参数,最后调用`pageExecute`方法发起支付请求,并返回支付页面的HTML代码。 请注意,上述代码中的`your_app_id`、`your_private_key`、`alipay_public_key`、`your_return_url`和`your_notify_url`需要替换为你自己的实际值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值