通联宝支付测试
This commit is contained in:
@@ -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解码
|
||||||
|
|||||||
@@ -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-----
|
||||||
|
|||||||
Reference in New Issue
Block a user