VFP开发微信、支付宝扫码支付

&& Vfp 微信、支付宝生成二维码、提交付款码支付

&& QQ:954486673

&& 微信:13822155058

&& 淘宝:https://shop73172356.taobao.com/

&&下载地址:https://download.csdn.net/download/zhangjin7422/14946979

 

Lockappid = ALLTRIM(thisform.cont1.text2.Value)     &&微信公众号
Lockmchid = ALLTRIM(thisform.cont1.text3.Value)     &&商户号
IF thisform.cont1.opg3.option2.Value =1             &&registered=1 公众号、商户号已加密授权  =0 原始公众号、原始商户号
    registered=1
ELSE
    registered=0
ENDIF

Idkey = ALLTRIM(thisform.cont1.text4.Value)         &&KEY
IF thisform.cont1.opg2.option2.Value =1             &&Idkeylock=1  KEY加密,否则KEY不加密
    Idkeylock=1
ELSE
    Idkeylock=0
ENDIF

OrdNum=ALLTRIM(thisform.text1.Value)
TotalFee=ALLTRIM(thisform.text2.Value)
AuthCode=ALLTRIM(thisform.text3.Value)
inbody=ALLTRIM(thisform.text6.Value)

IF OrdNum<>""
    messagebox("请输入商户号内的唯一订单编号!",0+16+0,'提示')
    thisform.text1.SetFocus 
    return
ENDIF

IF LEN(AuthCode)<>18
    messagebox("请扫描或输入有效的微信付款码!",0+16+0,'提示')
    thisform.text3.SetFocus 
    return
ENDIF

answ=MESSAGEBOX("  本次支付将从微信账号扣款,此扣款不能退回,确定要继续吗?",1+32+0,'警告')
IF answ=1 
    &&retuinf=Replicate(CHR(0), 1000)
    retuinf="正在进行微信付款码支付,请稍后..."+SPACE(1000)    
    outinf=VarPtr(retuinf)
    thisform.text4.Value =""
    thisform.command7.Enabled = .F. 
    thisform.command7.Caption ="正在支付中,请稍后..."
    thisform.Refresh 
    DOEVENTS


    result=WeiXinPayCodeEx2(Lockappid, Lockmchid,registered,Idkey,Idkeylock, AuthCode, OrdNum, TotalFee,inbody,@outinf)      &&第二代函数
    
    DO case
       CASE result=0
               thisform.text4.Value="微信支付单号‘"+OrdNum+ "’支付成功!,API接口返回信息:"+sys(2600,outinf,1000)       
               answ=MESSAGEBOX("微信支付单号‘"+OrdNum+ "’支付成功!是否要生成新的支付单号继续?",1+32+0,'警告')
               IF answ=1
                   thisform.text1.value=ALLTRIM(str(YEAR(DATE())))+RIGHT(str(100+month(DATE())),2)+RIGHT(str(100+day(DATE())),2)+SUBSTR(TIME(),1,2)+SUBSTR(TIME(),4,2)+SUBSTR(TIME(),7,2)+"00001"
                   thisform.text3.Value=""
                   thisform.text3.SetFocus 
               ENDIF                                      
       CASE result=1
               thisform.text4.Value="微信支付单号‘"+OrdNum+ "’正在支付中...请稍后查询此单支付状态,API接口返回信息:"+sys(2600,outinf,1000)
       OTHERWISE
               thisform.text4.Value="微信支付单号‘"+OrdNum+ "’支付失败!,API接口返回信息:"+sys(2600,outinf,1000)
    ENDCASE
    
    thisform.command7.Enabled = .t. 
    thisform.command7.Caption ="微信付款码支付"
ENDIF

&&-------------------------------------------------------------------------------------------------

Lockappid = ALLTRIM(thisform.cont1.text1.Value)     &&支付宝APPID
IF thisform.cont1.opg3.option2.Value =1                    &&registered=1 APPID已加密授权  =0 原始APPID
    registered=1
ELSE
    registered=0
ENDIF

OrdNum=ALLTRIM(thisform.text1.Value)
TotalFee=ALLTRIM(STR(VAL(thisform.text2.Value)/100,10,2))    &&这个参数是元为单位,0.01为1分 钱
AuthCode=ALLTRIM(thisform.text3.Value)
inbody=ALLTRIM(thisform.text6.Value)

IF OrdNum<>""
    messagebox("请输入APPID内的唯一订单编号!",0+16+0,'提示')
    thisform.text1.SetFocus 
    return
ENDIF

IF LEN(AuthCode)<>18
    messagebox("请扫描或输入有效的支付宝付款码!",0+16+0,'提示')
    thisform.text3.SetFocus 
    return
ENDIF

answ=MESSAGEBOX("  本次支付将从支付宝账号扣款,此扣款不能退回,确定要继续吗?",1+32+0,'警告')
IF answ=1 
    retuinf="正在进行支付宝付款码支付,请稍后..."+SPACE(1000)    
    outinf=VarPtr(retuinf)
    thisform.text4.Value =""
    thisform.command5.Enabled = .F. 
    thisform.command5.Caption ="正在支付中,请稍后..."
    thisform.Refresh 
    DOEVENTS

&&    result=ZhiFuBaoPayCodeEx1(Lockappid, AuthCode, OrdNum, TotalFee,inbody,@outinf)               &&第一代函数
    result=ZhiFuBaoPayCodeEx2(Lockappid,registered,AuthCode,OrdNum, TotalFee,inbody,@outinf)     &&第二代函数
        
    DO case
       CASE result=0
               thisform.text4.Value="支付宝支付单号‘"+OrdNum+ "’支付成功!"+sys(2600,outinf,1000)       
               answ=MESSAGEBOX("支付宝支付单号‘"+OrdNum+ "’支付成功!是否要生成新的支付单号继续?",1+32+0,'警告')
               IF answ=1
                   thisform.text1.value=ALLTRIM(str(YEAR(DATE())))+RIGHT(str(100+month(DATE())),2)+RIGHT(str(100+day(DATE())),2)+SUBSTR(TIME(),1,2)+SUBSTR(TIME(),4,2)+SUBSTR(TIME(),7,2)+"00001"
                   thisform.text3.Value=""
                   thisform.text3.SetFocus 
               ENDIF                                      
       CASE result=1
               thisform.text4.Value="支付宝支付单号‘"+OrdNum+ "’正在支付中...请稍后查询此单支付状态,API接口返回信息:"+sys(2600,outinf,1000)
       OTHERWISE
               thisform.text4.Value="支付宝支付单号‘"+OrdNum+ "’支付失败!API接口返回信息:"+sys(2600,outinf,1000)
    ENDCASE
    
    thisform.command5.Enabled = .t. 
    thisform.command5.Caption ="支付宝付款码支付"
ENDIF

猜你喜欢

转载自blog.csdn.net/zhangjin7422/article/details/113181189