通联宝支付测试

This commit is contained in:
苏尹岚
2020-02-27 14:33:36 +08:00
parent cc5e35caa6
commit a782f2ad49
2 changed files with 16 additions and 14 deletions

View File

@@ -6,7 +6,8 @@ import (
"crypto/x509" "crypto/x509"
"encoding/json" "encoding/json"
"encoding/pem" "encoding/pem"
"os" "io/ioutil"
"strings"
"time" "time"
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
@@ -37,7 +38,7 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp
if err == nil { if err == nil {
var result2 tonglianpayapi.PayInfo var result2 tonglianpayapi.PayInfo
json.Unmarshal([]byte(result.PayInfo), &result2) json.Unmarshal([]byte(result.PayInfo), &result2)
globals.SugarLogger.Debugf("pay4OrderByTL, [%v]", result2) prePayID := result2.Package[strings.LastIndex(result2.Package, "=")+1 : len(result2.Package)]
orderPay = &model.OrderPay{ orderPay = &model.OrderPay{
PayOrderID: param.Reqsn, PayOrderID: param.Reqsn,
PayType: model.PayTypeTL, PayType: model.PayTypeTL,
@@ -47,31 +48,33 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp
VendorID: order.VendorID, VendorID: order.VendorID,
Status: 0, Status: 0,
PayCreatedAt: payCreatedAt, PayCreatedAt: payCreatedAt,
PrepayID: result2.PrepayID, PrepayID: prePayID,
CodeURL: utils.LimitUTF8StringLen(result.PayInfo, 3200), CodeURL: utils.LimitUTF8StringLen(result.PayInfo, 3200),
TotalFee: int(order.ActualPayPrice), TotalFee: int(order.ActualPayPrice),
} }
plainText, err2 := RSADecrypt([]byte(result2.PaySign)) plainText, err2 := RSADecrypt([]byte(result2.PaySign))
result2.PaySign = string(plainText) result2.PaySign = string(plainText)
globals.SugarLogger.Debugf("pay4OrderByTL2, [%v]", string(plainText))
str, err2 := json.Marshal(result2) str, err2 := json.Marshal(result2)
result.PayInfo = string(str) result.PayInfo = string(str)
err = err2 err = err2
} }
globals.SugarLogger.Debugf("pay4OrderByTL2, [%v]", *result)
return orderPay, err return orderPay, err
} }
func RSADecrypt(pub []byte) (plainText []byte, err error) { func RSADecrypt(pub []byte) (plainText []byte, err error) {
//打开文件 //打开文件
file, err := os.Open("conf/rsa_key.pem") // file, err := os.Open("conf/rsa_key.pem")
if err != nil { // if err != nil {
panic(err) // panic(err)
} // }
defer file.Close() // defer file.Close()
//获取文件内容 // //获取文件内容
info, _ := file.Stat() // info, _ := file.Stat()
buf := make([]byte, info.Size()) // buf := make([]byte, info.Size())
file.Read(buf) // file.Read(buf)
buf, err := ioutil.ReadFile("conf/rsa_key.pem")
globals.SugarLogger.Debugf("pay4OrderByTL3, [%v]", string(buf))
//pem解码 //pem解码
block, _ := pem.Decode(buf) block, _ := pem.Decode(buf)
//X509解码 //X509解码

View File

@@ -1,4 +1,3 @@
-----BEGIN PRIVATE KEY----- -----BEGIN PRIVATE KEY-----
MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAKIw2F9MViiwGt3Sc8V2BCLeyW486K9klCRgprq57amgrbRy/dIcR2i7MCy01oNkf4S3XMKOlDK3cH5cXm4cV3Sa3WOkgumjczcd/sXOFRuvItJc39OCn1+WxUlIDu6nfmSpvOFqgQVbCD2Axo6Eq6t8wrhw6qx8m73KlkulCOx3AgMBAAECgYAxfQ/4fBVqEtoPxzBWFv2KGkqCHYmuQtVFCEy3exX+hS2bet7h5okPdtZrPb6alual+0ENiG3Fz90+YTbbCEDSsgrNxrh/5ZaJaPgosKlgPiJ418BVZW8YXdGEMaJDXr3xRsQH3VHmwGXLJ9WyFzzMof1WsRk8k9HY87Uy+ZMKmQJBANb8cpAhJ8oq6dPK8d5n+K+L1Ld/bmMIxtq+hTrz4/ZOJJOuvBFsR+JWiEe3+kO2bgE7galanFg42JeCRFD9eMMCQQDBIfcJ4Xlc+GEqLXT2Cbv2Rg6uuD1qMQqiX3UWR1ypq3SuIBYLkYG4mCk2iXCqTm7MWNl5OozlaIFmxTyjbeI9AkEAs3uLQZ0MlRICqRkTmLSAwD4jVxcCV5fqPJE2taMMPIO8sbb9uCYIVYQcvpNwUrupV0oQ1Ayb3mOHH+ZXlq4m9QJBAL2j/E9XdzQzMDWaLR7qsAZDBGfLwYJkZWzLDs2xhOuV0ByqpPr3Bcmcn9tNWbPhECrXk7PWKkOZOncPdVuEqoECQQCo/VmPU3rPqK4l1Gwi2vlf6CE09GZJGrKk94rPfechqkzhmziX8RLF1XpxZOWWgCM9ld2g2YwtBcgVmVc0M8bM MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAKIw2F9MViiwGt3Sc8V2BCLeyW486K9klCRgprq57amgrbRy/dIcR2i7MCy01oNkf4S3XMKOlDK3cH5cXm4cV3Sa3WOkgumjczcd/sXOFRuvItJc39OCn1+WxUlIDu6nfmSpvOFqgQVbCD2Axo6Eq6t8wrhw6qx8m73KlkulCOx3AgMBAAECgYAxfQ/4fBVqEtoPxzBWFv2KGkqCHYmuQtVFCEy3exX+hS2bet7h5okPdtZrPb6alual+0ENiG3Fz90+YTbbCEDSsgrNxrh/5ZaJaPgosKlgPiJ418BVZW8YXdGEMaJDXr3xRsQH3VHmwGXLJ9WyFzzMof1WsRk8k9HY87Uy+ZMKmQJBANb8cpAhJ8oq6dPK8d5n+K+L1Ld/bmMIxtq+hTrz4/ZOJJOuvBFsR+JWiEe3+kO2bgE7galanFg42JeCRFD9eMMCQQDBIfcJ4Xlc+GEqLXT2Cbv2Rg6uuD1qMQqiX3UWR1ypq3SuIBYLkYG4mCk2iXCqTm7MWNl5OozlaIFmxTyjbeI9AkEAs3uLQZ0MlRICqRkTmLSAwD4jVxcCV5fqPJE2taMMPIO8sbb9uCYIVYQcvpNwUrupV0oQ1Ayb3mOHH+ZXlq4m9QJBAL2j/E9XdzQzMDWaLR7qsAZDBGfLwYJkZWzLDs2xhOuV0ByqpPr3Bcmcn9tNWbPhECrXk7PWKkOZOncPdVuEqoECQQCo/VmPU3rPqK4l1Gwi2vlf6CE09GZJGrKk94rPfechqkzhmziX8RLF1XpxZOWWgCM9ld2g2YwtBcgVmVc0M8bM
-----END PRIVATE KEY----- -----END PRIVATE KEY-----