通联宝支付测试
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
package localjx
|
||||
|
||||
import (
|
||||
"crypto/md5"
|
||||
"crypto/rand"
|
||||
"crypto/rsa"
|
||||
"crypto/x509"
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"encoding/pem"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
@@ -47,19 +47,20 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp
|
||||
result, err := api.TLpayAPI.CreateUnitorderOrder(param)
|
||||
result2 := &tonglianpayapi.PayInfo{}
|
||||
json.Unmarshal([]byte(result.PayInfo), &result2)
|
||||
file, err := ioutil.ReadFile("conf/rsa_key.pem")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
prk, err := x509.ParsePKCS1PrivateKey(file)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
paySign, err := rsa.DecryptOAEP(md5.New(), rand.Reader, prk, []byte(result2.PaySign), nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result2.PaySign = string(paySign)
|
||||
plainText, err := RSADecrypt([]byte(result2.PaySign))
|
||||
// file, err := ioutil.ReadFile("conf/rsa_key.pem")
|
||||
// if err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
// prk, err := x509.ParsePKCS1PrivateKey(file)
|
||||
// if err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
// paySign, err := rsa.DecryptOAEP(md5.New(), rand.Reader, prk, []byte(result2.PaySign), nil)
|
||||
// if err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
result2.PaySign = string(plainText)
|
||||
str, err := json.Marshal(result2)
|
||||
result.PayInfo = string(str)
|
||||
if err == nil {
|
||||
@@ -82,6 +83,29 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp
|
||||
return orderPay, err
|
||||
}
|
||||
|
||||
func RSADecrypt(pub []byte) (plainText []byte, err error) {
|
||||
//打开文件
|
||||
file, err := os.Open("conf/rsa_key.pem")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer file.Close()
|
||||
//获取文件内容
|
||||
info, _ := file.Stat()
|
||||
buf := make([]byte, info.Size())
|
||||
file.Read(buf)
|
||||
//pem解码
|
||||
block, _ := pem.Decode(buf)
|
||||
//X509解码
|
||||
privateKey, err := x509.ParsePKCS1PrivateKey(block.Bytes)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
//对密文进行解密
|
||||
plainText, err = rsa.DecryptPKCS1v15(rand.Reader, privateKey, pub)
|
||||
return plainText, err
|
||||
}
|
||||
|
||||
func OnTLPayCallback(msg *wxpayapi.CallbackMsg) (err error) {
|
||||
globals.SugarLogger.Debugf("OnTLPayCallback msg:%s", utils.Format4Output(msg, true))
|
||||
switch msg.MsgType {
|
||||
|
||||
Reference in New Issue
Block a user